MySpace Portfolio

MySpace.com

UK / IE Interstitial

MySpace.com has many international versions of their site. Through website usage statistics, it was noticed that many of our United Kingdom and Ireland users were viewing the USA version of the site. I created a web page that notifies these users that there is a localized version of MySpace.com for them. The page needed to be viewed after a UK or IE user logs into the site. Due to this, I was responsible for adding the business logic of the interstitial to the ColdFusion login process of MySpace.com. Since the user-base of our IE and UK users is in the millions, the page was written in HTML and uses JavaScript. A SQL component was created that tracked how many times the interstitial was viewed. Within just a couple of days, a majority of the MySpace.com UK and IE users switched their preferred culture so they can view their countries respective MySpace.com site.

Resource Manager

The Resource Manager is an intranet application that allows developers and product managers to manage RESX files that are used to localize MySpace.com. My role was to develop the compare functionality. This included creating algorithms that compared RESX files so users of the application will know which cultures had missing and extra keys. The Resource Manager was developed with Visual Studio .NET 2005 and is written in C# 2.0. ASP.NET 2.0 masterpages were used to maintain a consistent look-and-feel while JavaScript was used to create context menu functionality.

Address Book Importer

Created the address book importer module for MySpace.com that allows users to invite and add their contacts found in their Yahoo!, Hotmail, GMail or AOL email account(s) to MySpace. The user enters their login credentials and a request is made (on behalf of the user) behind-the-scenes that authenticates the user and parses their contacts. Based on a contact's email address, the module queries MySpace's vast user database and determines whether their contact is already a friend of the user or not. If the contact is not found, then the user can invite their contact to join MySpace. This module was developed using Microsoft Visual Studio .NET 2005 and written in C# 2.0. HTTP requests are performed using the Microsoft.Net system library and HTML parsing is accomplished by using the open-source package, HTML Agility Pack. The modules front-end utilizes ASP.NET 2.0 masterpages.

Country and Culture Mapping

Created the culture-to-country mappings for MySpace.com that allows site-wide configurations via a XML file. This was written in C# 2.0 and utilizes XML deserialization techniques to expose the configuration settings in an Object-Oriented manner. A rich API was written with the use of provider classes so other developers may configure their applications for the international versions of MySpace.com.

Japan Groups API

Developed an API for MySpace Groups to be used by Japanese developers. This involved creating stored procedures in SQL Server 2005, data access objects that queried the database, provider classes that exposed the methods to retrieve the data and domain objects to define the data. In addition, UML class diagrams were created with Visual Studio 2005 to depict the API usage.

AJAX

Working with a small yet very talented group of developers, implemented AJAX functionality throughout the MySpaceTV site. Adding, deleting and paging through comments was the primary focus of the AJAX implementation so playback of a video was not interupted. Object-oriented JavaScript modules and a .NET HTTP handler that consumed user requests and returned JSON were developed in conjunction with the Prototype Framework to accomplish all this. Using the same techniques as Comments, video sorting in a user's video channel was implemented via AJAX. By manipulating the DOM via JavaScript, video sorting was accomplished when a user clicked on a sort criteria (in this case, by most comments) without having the page refresh.

Sharing

Users have the ability to share the videos they uploaded by either e-mailing a link to the video, blogging about it, adding it to their MySpace.com profile and more. Each sharing method involves a bit of security including implementing a hash to ensure spammers are not propagating their content in malicious ways.

CAPTCHA

Working with the MySpace.com Security Team, we implemented CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) when adding video and channel comment in order to curb the amount of spam posted to the site. The actual CAPTCHA was developed by the Security Team while my role was to implement it in the site. This involved updating a .NET service handler which called Security libraries that returned values utilized on the client-side to generate the CAPTCHA image. Submission of the user's response was done via AJAX so video playback was not interrupted.

Advertising Synchronization

In order to monetize videos on the web, MySpaceTV parterned with DoubleClick to serve advertisements during video playback. I worked with DoubleClick to allow the Flash video player to call a series of JavaScript APIs I wrote that display advertisements on the web page in correlation to what video is being played. In the screenshot below, a video that is sponsored by Ford is being played so we then show a Ford Focus advertisement on the left of the video.