It took the entire month of august and much of September to understand what I think of my last week at Microsoft. I hope this post can explain why I am encouraging my friends to apply for Microsoft yet made the decision I did.
Sunday I finished writing a blog post. In said blog post you’ll notice I am optimistic in getting a job offer from Microsoft.
Monday I programmed extra features for OCASE BCDE. As BCDE’s framework and sub-systems were all complete features were easy to implement. Also on this day I received a cold email from a Google recruiter. She invited me to “Discuss opportunities at Google” so we arranged a phone call on the next Monday. At this time I took the request at face value and assumed the discussion would cover Google, their recruiting process, and an invitation to apply for a position. In reality the phone call was a phone screening, I’ll cover the results later. My guess is the cold email was triggered by my blog post.
Tuesday was my meeting with my Microsoft recruiter for the final recruiter meeting. The normal process has this meeting on Friday. My meeting was on Tuesday due to time conflicts with a presentation my mentor arranged for BCDE to the OCASE team to take place early morning Friday.
Prior to Tuesday’s final meeting I had prepared myself for my first real salary negotiation ever. Over launch I asked my co-workers about their negotiations. None of them appeared comfortable talking about the issue. The general impression I got being the whole idea of negotiating was just not a thing polite engineers did. I think part of the issue was me being a junior engineer. One co-worker suggested that “When your a new graduate you don’t really have any leverage”. You’ll notice he was being polite and holding back the obvious “Daniel, stop being uppity and accept the generous offer, if given!”.
In truth I was surprised at their reactions. Over the years Hacker News has drilled into my head that programming on a salary is business trade. The company is not family, coworkers can be family, but the company is a business partner. Now consider that Microsoft uses stack ranking to allocate raises. This makes raises a zero sum game. What dollar of raise you get is one a guy down the hall did not get. Managers thus only have control over the relative allocation of a pot set by upper management. Or to put another way: upper management decides how much they would like to spend and you will have no practical recourse to object. Even more annoying is that Steve Ballmer congratulated himself in the 2012 shareholders letter on managing cost increases. As software companies are labor cost dominate he was in effect bragging to the shareholders about suppressing salaries. Of course this is the same CEO responsible for losing billions on bad business decisions. Thus I was not looking forward to having a boss who suppressed my salary so he could look good to the investors as he lost massive quantities of money chasing the competition.
Now we know at this same time Steve Ballmer was being pushed out of Microsoft. He still has a year but the knowledge he’ll leave does make me feel better about Microsoft’s future. In either case Microsoft could survive for an eternity on Windows, Office, Azure, and Dynamics. Rather my concerns were about the culture. Microsoft risks becoming yet another Oracle or SAP.
It is with these worries and annoyances I approached the final meeting. If I was to accept an offer it needed to be generous enough as to make Microsoft employment worthwhile for the money along. You’ll recognize that working some-place only for the money is a very bad decision. If I had to specify my dream job criteria it would be (1) in japan, (2) contributing to open source, (3) high profitability. The offer I received qualified under (3). For others Microsoft might work on things they want to contribute towards so don’t fret if you are not me.
I must apologize to my recruiter and coworkers for taking so long to decide. I waited one week before making my final decision official. I did not want to say no while still working, it would have been too hard to see my mentor and boss afterwards.
I have no remembrance of Wednesday. I can only assume it was a productive day.
Thursday was a big day being my second last day and having the big summer intern event. This event was a trip to the Boeing Museum of Flight plus a concert. Boeing had a All Nippon Airways 787, the new airplane, parked as a backdrop for the evening. Prior years had events at parks with country bands. This concert’s final act was DeadMou5. In truth his music does not lend itself to concert format. Towards the night’s end the songs started rolling together. After the concert we formed a mob like line and group by group received the night’s gift, a 256GB Surface Pro. A fantastic looking device.
Friday was spent on one last attempt at adding concurrency to BCDE. This would mark the third attempt at such. BCDE relies on dbgeng, the windows debugging engine behind Windbg. To the best of my knowledge dbgeng was not intended to debug multiple binaries in parallel. Either that or I could not identify the undocumented correct mix of COM APIs.
Saying goodbye to my mentor and boss was hard. I think they knew I was not going to accept the offer but they did not challenge me on the issue. That night I stayed late trying for concurrency. Once I decided to stop working the building’s receptionist had already left. Since I still had my badge to return I walked to the my boss’s boss’s office, then my boss’s boss’s boss’s office, then my boss’s boss’s boss’s boss’s office. At this point I had exhausted my WinSE boss hierarchy. Two or three more boss levels and I would be at Ballmer. This being 7pm I headed back to my area of the building and found a still present coworker and asked him to hand in the badges for me.
I must congratulate Microsoft on fantastic work-life balance. People have time in the morning to do things like drop their children off at school before coming in to work. In only rare cases were coworkers forced to stay late to pass a critical security bug off to india based coworkers.
The flight home on Saturday was peaceful and I got home without issue. Monday I had the phone call with the Google recruiter I mentioned earlier. Before I told her I was not accepting the Microsoft offer she was suggesting interviewing within the week. Since I still want to explore all my options that would have been inconvenient.
It is now a month into my second last semester. After this semester I will start the job hunt. Until then I’ll work on projects and encourage friends to push themselves. I think pushing yourself now is important as it will put yourself in a position to push yourself throughout life.
Update 2013-10: If you are still interested please consider reading through the overview of my internship.