Thursday, December 8, 2011

2011-12-08: Summer Microsoft Internship

It all started in San Francisco airport while waiting to get my luggage on my way to the PDA2011 conference. The recruiter from Microsoft called me to inform me that I have been accepted to intern at Microsoft Silicon Valley this summer. I was ecstatic and after a couple of months of bureaucracy and a ton of documents I was ready to leave Norfolk by the end of May. Since I haven’t been on an adventure or a trip for a long time, and since I will definitely need a car in California for the three months of the summer, I decided to drive my car all across the continent. I have always wanted to make a road trip like that where I can stop in every city or town along the way, check out their attractions and eat from their authentic cuisines.

At the same time, our colleague and best friend Moustafa Aly managed to secure a job at Amazon’s engineering office in San Francisco. So when he knew I was going to drive all the way there he told me: “forget the plane, I will join you!”

We left Norfolk on the 24th, set the odometer of the car to 0 and having in mind since we are information retrieval and social networking people we will make our status updates and check-ins on Facebook our trip’s record keeper. We picked the route, filled up the car and drove. From Norfolk, stopping at Richmond and Nashville we drove through a tornado passing Tennessee, almost ran out of gas in Texas in the middle of no where, changed the clock twice in one day, eating the best steak I have ever had in Texas and the best burritos on earth in Las Cruses, playing with rockets in White sands missile range, passing over the Hoover dam and the burning the car’s AC compressor in the desert of Nevada we finally made it to Las Vegas where we wanted to spend an entire day relaxing. Next day we started driving and after 9 more hours we made it to San Francisco finishing 3559.6 miles in 5.5 days.

Working at Microsoft Silicon Valley definitely has its perks. The location was amazing and the engineers there are really incredible. I joined the office 365 server-side team for PowerPoint where I shared my office with another intern from UC Berkeley. Working with this team I had the most liberty I had in years working for companies. We sat together and set the goals I need to reach for this internship and they gave me the entire freedom to pick the way I was going to build it, which is more my style in working. I was supposed to start the implementation of a certain fraction of the distribution and investigate two other things but to my surprise they liked what I did with the first task so they decided to modify my internship goals to finish this project completely, reach ship quality and release it in the next version. With this I passed all the phases of software development from meeting with managers, architects and program managers to setting the design to development to finally quality and integration testing. Finally I had to demo my work to the three department managers to see if this could be incorporated in the next shipping release, and to my delight they were fascinated by it and it will be shipped!

The first day I attended the orientation and they gave us an overview to what we will be doing this summer and how are we going to be evaluated. Our mentors then came and took us and I was introduced to my team, the PowerPoint team. Immediately after that I was introduced to the available projects and I choose the one that was more appealing to me. Immediately after that I was granted permissions to access the codebase. Imagine having the source code of both PowerPoint and the server cloud back-end, it felt awesome! for the next two weeks I tried to break in the thousands of lines of code and produced a prototype proof of concept that I was on the right track. By the end of the first week I set my internship goals with my mentor but after the fast prototype I produced I was called to a meeting with both the test and the product management team, I was representing the development team. They decided to change my goals completely to actually build the entire feature and its backend support from scratch and have the opportunity to ship it. Knowing the task in hand of rebuilding the PowerPoint backend on the cloud with the appropriate interface to match the latest award-wining rich-client application I had to go back to the basics. I had several one-on-ones with the development team of PowerPoint client-side to understand piece by piece the functionality of each module of the application. The problem with a project like PowerPoint that it is fairly old and fairly stable with more than 20+ years of development and thousands of legacy code. I was completely lost in the beginning but my mentor didn't let me stumble much, I was practically staying in his office the first couple of weeks. We used C++ and C in the backend with javascript and C# for the matching interface. This was the trickiest part, the ability to match functionalities between two very different frameworks. At a certain point I found a severe gap in the design document related to the functionality. I talked with my manager and he told me a change like the one you want in the design document needs to be escalated. A couple of hours later I was sitting in a room full of Microsoft's elite developers, testers, PMs and managers, the least of which has 7 years work experience under his belt,...and me! That what I loved about Microsoft, even though I was just an intern I owned the project and they appreciated that. I explained my case and it was approved and the design document was changed! I was so proud of myself that day.

The atmosphere within the office was relaxing, cool, upbeat and always challenging. I can fairly say I was spoiled this summer. I was residing in the corporate housing complexes where I got a spacious studio apartment fully furnished with maid service that come clean weekly! Courts, swimming pool and a huge hot tub all provided for free within the apartment complex. Every other week the recruiters and the PR managers created an event, party or outing for all the interns on campus. We went hiking, bowling, watching movies and they even flew us to Seattle to visit the headquarters for the summer intern event. They paid flight tickets, the luxury hotel and even a car rental. Steven Sinofsky gave us a wonderful presentation where they show us classified sneak peeks to the all-new amazing Windows 8 and I was genuinely impressed. At the company store we got lots of t-shirts, games and gadgets with our employee discount. After that they rented the Zoo for us since we were about 1000 interns from all over the country and they got us the “Dave Matthews” band and gave each one of us a brand new xbox360 with Kinect!


It was definitely unique and rewarding to work with all those interns from the top universities all over the country: MIT, UC Berkeley, Stanford, …etc. I asked around and I found that I was the only representative from ODU so I was definitely proud and tried to behave. Me and the other interns became friends and since most of us are residing on the same apartment complex we gathered almost every night and on the weekends we went and discovered the city and the surrounding area. Unfortunately I didn’t join them in the Yosemite hiking/camping trip, as I was sick that day. One day we all decided to wear suits and sunglasses all day at work and call it "Brogramming" day. Someone took a photo of us and it gone viral on twitter and facebook!

In conclusion I feel honored and blessed for being able to work at this wonderful fascinating place with all those extremely intelligent colleagues. My manager/team lead told me on my first day one thing that I believe it changed everything. He said you were only an intern during the 2-hour orientation session, now consider yourself a full time software engineer and own your work. This definitely helped me to shine, participate, own my work, suggest enhancements, which actually were considered, and we changed the design document. Now, I can proudly say that my product is being used currently by millions of users; probably you are using it right now!

-- Hany SalahEldeen

No comments:

Post a Comment