Musings of a Software Designer

Thursday, May 11, 2006

After years of programming, my dream has finally come true. I am now a Microsoft employee. My first day of work as a Software Design Engineer has been great. After the new employee orientation I went to meet my team of developers who were having their weekly meeting at a brewery. I introduced myself and we quickly jumped into discussing software architecture and the state of various projects. All this while enjoying a very large meal at MS's expense. One of the odd curiosities about orientation is that in the MS book, it states that not only is it against policy to take pictures of the interior of any MS building for security purposes, but it is also against policy to take a picture of Bill Gate's parking spot!

The first thing that strikes you about the Microsoft campus is how large and beautiful it is. It's 48 buildings surrounded by trees and full of rich gardens and futuristic building architecture. Where ever you are on campus, you can see people working outdoors in the fresh air on their laptops, or discussing projects in small groups, or even playing soccer, volleyball or frisbee on the large playing field. It's a very vibrant work environment where people are constantly keeping themselves active.

The work environment here is also much different than the traditional 9-5 approach. For one, there is no work schedule, you have a set of tasks and a deadline for them that you and the lead architect agree upon, the rest is up to you. The MS campus is intended to be more of a resource than it is a workplace. You can attend seminars/presentations on new products, go to the MS Research Department and attend very interesting lectures there, try out new gadgets and technology, or be involved in many of the other activities scheduled throughout the day. It's exactly how I pictured a major technology based company should be.

Work was fun as well. I got to my own office and saw a new computer, monitor and a bunch of computer accessories all still in its box sitting on my desk. Microsoft has a culture of using its own products before releasing them to the public, so we all work using Windows Vista, Office 2007, Visual Studio 2008, and also use the upcoming version of Internet Explorer. To familiarize myself with the project I'll be working on, I was asked to fish around for bugs and fix them. When a Microsoft product crashes, there is an option to send an error report of the crash to Microsoft. Much to my surprise, these reports actually DO get sent to Microsoft and get entered into a massive database. I searched for bug reports pertaining to my project and began working on fixing them. As of earlier today I can proudly say I have fixed my first bug for Microsoft. And then of course there was another one I had to fix... and then another one.

I am working with the dynamic languages team. Our job is to extend .NET to make it an appealing platform for dynamic programming languages such as Python, Ruby, and Lisp. Microsoft's first dynamic language to run on this will be Python and that is what I am assigned to work on. Once I've familiarized myself with the codebase, ie. fixed enough bugs, my task will be strictly to focus on language optimizations, basically making sure that programs made in Python run as fast as possible. Once this project is done and is released, the languages team has invited me to give a presentation of my programming language, Maylee. I am rather excited about that and about the overall experience Microsoft has to offer. It's taken a real long time to get here, but definitely well worth the work and wait.