Why I picked Microsoft over Amazon

2014-10-15

It's interviewing season, and that means people are going to get offers really soon. I've been wanting to write a blurgh post about my decision to pick Microsoft over Amazon for some time now, and I've been asked for my reasoning a couple times. So maybe I can help others make the right choice.

I may be rationalizing my decision in hindsight, but it turns out there were a number of advantages Microsoft has over Amazon; here is the view from 10,000 feet:

  1. Substantially better benefits (health, wellness, employee stock purchase plan, 401k matching, perks), and slightly better overall compensation. You can increase your cash income an additional 5-8% risk-free by taking full advantage of ESPP, 401k, and other game-y things with your health benefits.
  2. Generous relocation package + annual performance bonus. It makes up for not getting a hiring bonus at least.
  3. Stock vesting is substantially faster (for Amazon, stock vesting is all backloaded so the last 80% or so vests in years 3 and 4). At MSFT the vesting is a linear 25% every year.
  4. I get my own office, and work-life balance is generally better. Microsoft's median employee tenure backs this up.
  5. No on-call rotations[1]. Annual performance bonuses in cash, in addition to stock. Did I mention work-life balance?

And a handy table I put together, mostly from a combination of sources (stars denote uncertainty) and my highly scientific opinion:

Microsoft Amazon favors
Onboarding
Relocation (from east coast) all-expenses-paid or $5000 cash, tax-assisted (2011) all-expenses-paid or $7500 cash, tax-assisted Amazon
Signing bonus None in 2011, there may be a small one now ~25% base in 2 installments, pro-rated for 2 years Strongly Amazon
Hiring Stock Grant ~60% of base, vesting: 25% per year ~50% base, vesting: 5% 1st yr, 15% 2nd yr, then 20% every 6 months Microsoft
Compensation
Base salary 60-75th percentile (on average, industry norm +15%) 50-75th percentile (on average, industry norm +10%) Leaning Microsoft
Base salary increase 0-9%, 3.5-4% is typical on average less than 3.5% Microsoft
Annual cash bonus On average 10% of base usually none Strongly Microsoft
Annual stock grants < 10% of base Between 10-15% of base* Amazon
Career
Promotions see trajectory discussion see trajectory discussion Amazon
Benefits
401k matching 50% of contributions up to 6% of base salary (3% match) 50% of contributions up to 4% of base salary (2% match) Microsoft
Employee Stock Purchase Plan 10% discount, purchases capped at 15% of base salary none Strongly Microsoft
Other fringe benefits Prime Card, free onsite health screenings, various health incentives & rewards, charity+volunteering match, discounted group legal plan for routine legal work 10% off up to $1000 in Amazon.com purchases per year Strongly Microsoft
Health see health benefits discussion see health benefits discussion Leaning Microsoft
Kitchen Soft drinks, milk, juice, tea, on-demand Starbucks, espresso Tea, powdered cider, drip coffee Leaning Microsoft
Time off 3 weeks vacation, 10 paid holidays, 2 personal days 2 weeks vacation (3wks after 1st year), 6 paid holidays, 6 personal days Microsoft
Culture
Location Redmond Seattle Strongly Amazon
Tools/Platforms Closed source Microsoft stack, proprietary. Many legacy desktop platforms, lots of new services Open source Linux stack. Almost entirely services-based, many legacy concerns. Best-in-class deployment tools. Strongly Amazon
On-call Expected of most engineers (unless product has no services component, increasingly unlikely) Expected of most engineers Leaning Microsoft
Median Age 33 32
Median Tenure 4.0 years 1.0 years

Career Trajectory

The great thing about Microsoft is that there's always a career path for people who want to become valued individual contributors. However, you should be aware that the difficulty level ramps up pretty quickly. Generally, most ICs are unlikely to earn the title of Senior SDE in less than 4-5 years, and Microsoft will rarely consider someone for a lead engineer (the first rung in the management ladder[2]) who has fewer than 6-7 years under his belt. However, the promotions don't stop just because you don't want to be a manager - excellent ICs can earn titles like Principal Engineer, Distinguished Engineer, and Technical Fellow who are respected and valued as much as Corporate Vice Presidents.

At Amazon, expect a lot of responsibility to ramp up fairly quickly, along with somewhat higher chances for advancement — both because Amazon is growing faster, and because it has higher rates of attrition (I suspect attrition is higher at the bottom than the top; but I have no evidence for this). Three years out of college is not atypical for being offered SDM I (first rung on management track). This is partly because of the horrible retention; by the time you hit 3 years, you're more tenured than about 80% of the company. Anecdotally, I have heard talented Microsoft ICs on the management track note to me that specific Amazon counterparts are progressing faster (to development manager) than themselves. So if management track progression is your goal — pick Amazon, not Microsoft.

Health Benefits

Microsoft in 2014

Amazon in 2014
Documents I got my hands on weren't heavy on details. I'm just going to go out on a limb here and say Microsoft's health benefits are better. Here is a copypasta from their careers page that tells you approximately nothing about how they compare to Microsoft:

Fringe Benefits

Allow me a moment to blow you away with the absurd benefits Microsoft offers. Prime Card gives you random discounts on everything from Apple products to local restaurants. It also gets you discounted admission (I think $5?) to IMAX movies. Microsoft hosts free onsite health screenings for general health, flu shots, glucose/cholesterol testing, etc — and even gives away gift cards for attending. They have a charity matching program - they'll match dollar for dollar every contribution you give to registered charities, and also pay $18/hr to any charity you volunteer at to increase your impact. There's a discounted group legal plan that costs, I think, something like 30-40 dollars a month for routine legal work. There's tuition reimbursement. There's generous paid maternity (AND paternity) leave.

Amazon discounts 10% (up to $100 off) of annual Amazon.com purchases, which is cool too, I guess.

Commuting, Culture & Tools

Microsoft runs free shuttles to most major residential areas nearby - the largest private bus system in the world, in fact. On top of that, they provide a free ORCA card for unlimited free travel on the local bus system.

Amazon also has a free ORCA card on offer, but only a limited private shuttle system between campuses.

Amazon is in Seattle proper, where anything vaguely resembling nightlife happens; Microsoft is on the so-called Eastside across a narrow bridge where basically nothing does. This is not an insignificant issue for many people who work at Microsoft but want to live in Seattle - this is likely to extend your commute by at least 30 minutes each way.

As far as tools go, both companies have first-rate toolchains. Amazon probably leads here, as they have a very impressive toolset, dependency management system, and deployment process. On the other hand, Microsoft's approach to the software engineering process is both much more disciplined, and less flexible. They produce some of the finest program managers. And almost all their tools are closed-source, so you're unlikely to be using, say, git, unless you work at Amazon. The downside of Amazon's agility is a sometimes chaotic software development process; getting stuck on a team with a mandate to improve a service while simultaneously fixing bad architecture/rush job warts are not uncommon, and unrewarding.

Work-life balance is manageable at both companies. I've had a number of 60 hour weeks, maybe even a few 70-hour weeks near shipping time. They were out of the norm. I'm inclined to say Microsoft requires fewer hours on average than Amazon, where people might see 45-50 / week as closer to normal. Everyone will tell you "how much work you get done" matters more than "how many hours you put in." This is a half-truth - you need to put in the right amount of face time, don't be on either side of the bell curve.

TL;DR:
If you want to work in a fast-paced environment leading the way in services, cross your fingers every time you deploy, and don't mind getting paged in the middle of the night, work for Amazon. If you want to make slightly more money shipping desktop software (or deploy services like you would ship desktop software), and pretend with your 100,000 coworkers that the company is becoming "agile," work for Microsoft.

Thanks to all the fine folks who answered my questions and reviewed early drafts of this.

Notes

[1] This is no longer true on many teams at Microsoft. For the most part I hear its not as bad as at Amazon, but there can be what I charitably call "rough patches" when a team implements on call rotations for the first time, and invariably screw things up until the alert frequency can be tuned correctly (ASK ME HOW I KNOW).
[2] Microsoft recently moved away from formal lead positions as of 4Q 2014, bringing it into alignment with most other companies like Google and Amazon. Basically all ICs report to a dev manager now, and a "lead" engineer has no direct reports any more, but has de facto authority over a project or team. This doesn't change the fact that progressing from an IC to a manager at Microsoft is both very hard and takes a long time.

Replies

Miles
2015-06-09

Hi I’m doing my internship at Amazon and I can’t agree you more on your comments about Amazon. But their on-call is quite scary especially in AWS. But people at Microsoft, are you sure that they are asked to do on-call? I thought it was a well work-life balanced company. How about FB, Google? I really hate on-call companys.

Mahmoud Hassan
2017-01-27

It always depends on the team and how they handle this… also, how frequent will you be on-call, for a team of 4 members you will be on-call once every month and for a big team of 12, you will be on-call 4 times a year which is not bad at all.

Google (for some positions; like: service engineer) require on-call but mostly using follow-the-sun approach… Because they have offices all over the timezones.

N/A
2015-08-25

I worked with Amazon and Microsoft as a software engineer and the comparison is pretty reasonable.

Btw, in addition to the 10 holidays (including MLK Day and president Day starting 2016), MS provides 10 sick days you did not mention. Also MS 401K match (100% up to 6% starting 2016) is in cash vested immediately, while Amazon 401K match in company stock vested after 3 years of service, which is pretty low as if you leave within 3 years you get nothing.

TC
2015-08-27

401k matching is no longer true at Microsoft. You get 50% matching for your federal cap you can contribute. If your cap is 18000, you get 9000 matching. 2 extra holidays are added. If you have kids, you get 2 months off with full pay.

MikeM
2015-09-08

It is insane to compare MS and Amazon. I wouldn’t work for either company again.

The rest of the Seattle software world is full of startups, small and large companies, etc, all of whom are much more civilized than either of these companies. Word gets around pretty fast about the ones that aren’t.

Someone Sensible
2017-05-03

First of all I totally disagree with you. You must be someone who is barely passionate about his work and wants a job at a big company just to have a sense of stability in life. Now here is how three types of ppl think

Type 1 – The lucky mediocre guy : These type of people are happy that they can solve basic data structure and algorithm questions, which are sometimes more than enough to get you in a company like Microsoft (fortunately, Amazon is heavy on an overall personality , like leadership skills). This type are more than happy with whatever they get because they are not in it for the technology or to make the world a better place. These people would rather code what they are asked to code and enjoy the “perks” of sitting in a cubicle and mindlessly coding. They retire semi-rich with an average uninteresting life behind them

Type 2 – The above average shrewd: These type of people are not as bad as the mediocre because they understand what they have and how it is valued in the outside world. They probably have some work experience and may have been passionate about their skills at some point in time too. I categorize the author here. This type can make a change in the community with their skills but would rather play it smart and earn more money and live a “rich” life. These guys will choose whatever gives them more money and will not care for advancing their skills any further than they already have. They will probably retire as “rich” managers or at some senior executive level, which they earned only because of their seniority and nothing else. But the amount of impact they made in their entire lifetime would be way small

Type 3 – The greed-free geek: This is the type that world needs. This is the type which invents Linux so that a cloud-generation is possible. And guess what? This is the type that retires rich and satisfied and lead an eventful life. This type learns new skills and grows on a regular basis. When this type takes up a job, they dont see how much money they are offered, they see what technologies will they work on? who is their boss? what does their boss believe in ? what is the impact of their work? This type doesn’t care about 401Ks because they will never go out of a job. They know they are invaluable at any point in their lifetime.

Sorry if I spoke too much, but when I see idiots fighting over salaries and not on how and what that job is about, it angers me from within. But hey, congratulations. Hope that money helps make your life eventful by fulfilling your selfish needs 🙂

damian
2017-05-16

Wow, that is a strong statement, going around judging people as mediocre and living meaningless lives? Really? You must be such a illumined mind by presenting such a rigorous sociological study on software engineers. If you want to make a better world quit your job and go on a mission to undeveloped countries to educate people for free. I’m not gonna waste tome refuting all of your nonsenses, but have you considered that probably some people have low expectations about work because they do have a life? Or that some people see 401k as a great investment tool and that’s why they weigh this on decision making, not because they are desperate to nothe have a penny on retirement?

Someone Not Sensible
2017-05-31

@SomeoneSensible forgot to mention his type:

Type 4 – The Judgemental Hater Despite experience level, this type thinks he knows everything. Work life is usually tough for this engineer. He finds himself surrounded by “idiots” everywhere he works, and spends much of his career trying to find a more competent team to work on. This engineer’s career success depends largely upon how quickly he realizes that his mentality is toxic in a team environment. The clock is ticking though, as recruiters begin to notice the job hopping trend on this type’s resume and he becomes unemployable.

SS
2017-06-06

Someone Sensible – Perfect reply, i resonate with each of the word you said.

Shae
2017-06-11

There is a 4th Type: The “Bitter” Type! Stop judging others, and respect freedom of choice(s).

in response to Someone Sensible
2017-06-18

It seems silly to group devs into 3 categories and then harp about how your team/work should matter above all else. Retirement and quality of life are huge components when you are working anywhere 40+ hours a week. If you could have a blast working at McDonalds all the power to you.

For the sensible, ‘selfish’ engineer who does not need work to sustain happiness it seems prudent to plan for the best option holistically which obviously includes financial incentives. Mark McCormack likes to say put a man in the mail room for a week and you will see who is ambitious. Work does not need to be the light of your life, but if it is that is a net positive sure. EVERY single job you work I am confident at one point or another you will be bored. But for the large part you should pick a job on what matters to you and is able to fit your long term goals. If there is a tie you move on down the list of requirements… perhaps for Cai that is financial incentives. Point is, that does not make him selfish in the slightest… just logical. He is here to provide a subjective analysis of two offers. Having had to opportunity to work at both I think his assessment is spot on!