2016 Summer Internship

Background

Last Summer I had the opportunity to spend 10 weeks in Bristol, Connecticut interning at ESPN as a Software Engineer Intern. It was a dream come true to be with such a prominent and influential name in our culture.

During the program, I had the opportunity to make an impact on my team, as well as meet world-renowned talent from across all disciplines throughout the company.

The team I joined was in charge of WatchESPN. This is one of ESPN's flagship products, and is responsible for the streaming of live and video-on-demand content for all ESPN networks.

This page summarizes what I accomplished during my 10 weeks in Bristol.

Full Redesign of espn.com/video

The team was in the middle of redesigning all of WatchESPN.com. Also, the espn.com/video page was included in the WatchESPN redesign project.

My initial project was the redesign of the espn.com/video page using Node.js, React and Redux.

I was able to complete the project in under 5 weeks. I faced many challenges during the project. One of the biggest challenges was the fact that I had zero experience in any of the technologies used. I had to learn all of them quickly and be able to produce high quality work in a timely manner. Luckily, I had a helpful team that was able to answer any questions I had. Being thrown in the fire was certainly the best environment to learn a new technology.

The picture shown is what the page was before the redesign. Once the redesign of all of WatchESPN.com is complete, I will post the finished product.

go.com migration

Another big undertaking that the company prepared for was the migration from the domain espn.go.com to espn.com. Removing those two letters from the domain required thousands of hours of labor for the company.

The history behind the '.go' in the domain was Disney's idea of having all of their companies under one portal. However, services such as Google and Yahoo allowed people to go straight to espn.com without a portal. The domain has stuck with ESPN since Disney's acquisition of ESPN in the 1990's.

My job during the weeks leading up to the migration was to take care of all instances of the '.go' in a number of files from our team.

Finally, at 4:00am EDT on Wednesday, August 3rd 2016, our team along with other teams showed up to flip the switch and remove the ¡®.go¡¯ in the domain. Our CTO, Aaron LaBerge, called the day "a small piece of internet history". Being in the office at 4AM, waiting for the switch to happen, was an incredible experience. The migration was successful and now you can go to espn.com with no 'go' in sight.

Android TV

In my last few weeks, my final task was to add new features to WatchESPN on the Android TV platform. I had some Android experience prior to this project, so the learning curve was not as steep as the redesign project.

One of the features I added to the platform was the ability to have video playback in the background. When a video is playing, and the user hits the home button to go to the home screen, the video will continue playing in the background.

The second feature, which ties together with the background playback, was adding a now-playing-card. Shown on the right is an example of a now-playing-card in action. The user will see one of these once they hit the home button when video content is playing. The card will display all of the information about the current video playing. The user can easily continue the video by clicking the tile. These two features together helped the overall user experience of WatchESPN on Android TV significantly.

Technologies Used

Node JS

The base in the redesign of WatchESPN.com

Android

Developed on the Android TV platform for WatchESPN

JSON

Used to display all of the API results delivered from ESPN data platforms

Redux

State container for all javascript applications used

React

Frontend library used in redesign of WatchESPN.com

Javascript

Used the latest ECMAScript 6 standards for the redesign of WatchESPN.com

XML

Some legacy API calls resulted in an XML feed

npm

Used a number of node packages to assist in node applications

HTML

Implemented in all web application created