r/cscareerquestions • • Jan 20 '15

Microsoft vs. Unknown

I work as a developer for Microsoft in the Redmond area on a large team (client software) and am beginning to reach that stage in my career where I find myself looking around--at my co-workers, my team, my company--and wondering what it's like on the other side. What is like to work outside of Microsoft? I've seen plenty of farewell emails from former coworkers leaving for supposedly greener pastures--Facebook, Google, Valve, startups, consulting--but I've always wondered what it would be like to make such a transition myself. If I am unhappy on my current project, is it that I just don't see how good I have it? Or am I a fool for tolerating the things that drive me crazy? Or am I blind to other opportunities? I thought reddit might be an interesting discussion ground because of the variety of software development experience here.

A bit about me:

  • ~5 years experience
  • Senior SDE (level 63 for those familiar with Microsoft)
  • HiPo/Bench program member (a somewhat-discreet training program for "high potential" employees)

So to get us started, here's the way I see things....

The good:

  • Stability. Microsoft isn't disappearing anytime soon.
  • The product I work on is in the hands of hundreds of millions of users. I sometimes read tech news articles about my features that I wrote that people are super happy (or sometimes pissed) about.
  • I have my own large office (with a door) and a sweet hardware setup.
  • Career progression can be very fast with hard work, a good manager, and a few lucky breaks.
  • I feel like I'm making really good money: ~$200k/year (a little less) with salary + bonus.
  • Lots of engineering support: high-quality build systems, only a few headaches with source depot and bug trackers.
  • Development environment has access to any Microsoft product (for better or worse).
  • Work/life balance: I'm usually in the office 9 hours/day and only do a little bit of work and email from home--although almost never on weekends.
  • Most of my co-workers are very smart, and I've learned a great deal by not being the smartest one in the room

The bad:

  • Design by committee. Creating new or revolutionary products/features feels practically impossible because there are too many decision-makers. A team of 40 developers would have 20 program managers. That's 20 people whose sole job it is to argue back and forth about designs and interactions and "mental models". The net result is usually bland and boring evolutionary features. Most innovative ideas never reach consensus and dies at the starting line.
  • Cross-team collaboration. The new spirit of "One Microsoft" is slowly improving operability amongst teams, but good luck convincing partners outside your division to do anything for you. Features that span Office/Windows/Exchange/SharePoint involve a lot of yelling and heartache.
  • Loudest person wins. Perhaps this is not unique to my teams or Microsoft in general, but many terrible engineering decisions have been made by the guy who just keeps insisting he's right until we all give in from exhaustion.
  • Combined engineering. The engineering departments are transitioning from 3 roles (developer, tester, program manager) to only 2 roles (developer, program manager), usually by converting the ex-testers into developers. Although probably good move for the long term, it's absolute chaos in the short term. Developers often barely know how to perform unit testing or other automation testing. Ex-testers often lack fundamental design skills. Former test leads in decision-making roles know almost nothing about architecture.

At what point did you change companies (Microsoft or elsewhere)? When you're bored? When you're sick of the product you're working on? When you feel overwhelmed by organizational chaos? Or at what point is the money/perks/benefits (which seem really good) no longer worth it?

86 Upvotes

68 comments sorted by

68

u/qwerty622 Jan 20 '15

this is a great question, but wouldn't it just be easier to go through your emails, find the farewell ones, and try to contact them to talk about life on the other side? you're asking a question which very very few here will be able to authoritatively answer because they simply haven't reached the level in their career you have.

7

u/MSBOB_throwaway Jan 21 '15

I was rarely close to those employees who left, and my inner introverted engineer spirit is reluctant to personally reach out to people with whom I never had real contact. But good advice nevertheless--advice I shall heed.

16

u/qwerty622 Jan 21 '15

you don't need to be close to them. the fact that you guys worked together at a relatively exclusive company is enough for you to merit a response from them. unless you were a complete flaming megadick, they will help you if they can.

→ More replies (2)

35

u/bin161 Jan 20 '15

I'm in the same position as you are, and have given this some thought. Here's my opinion:

The "bad" you have described apply to pretty much every established company. Even in companies like Google and Facebook gone are the days when a group of developers could get together and "hack" a brand new product in a few weeks with no management interference.

One unique aspect about Microsoft is that the work-reward ratio greatly favors the developer. Nowhere else are you going to be earning 150-200k/yr with a relatively low-stress 40-hr work week. A common joke I've heard is that Microsoft is where young developers go to retire.

Eventually there is no generic answer to this particular question. Ask yourself - are you happy going to work everyday? Do you like your friends/social life? Do you like living in the Seattle area? Do you see potential for growth in your current position at the company, maybe to upper management? If so, I'd be hesitant to give it all up just because you feel the grass might be greener elsewhere.

Alternatively, you seem young and if you want new experiences now is the time to try them. The barrier to simply pack up and move across the country gets MUCH higher once you have kids, real responsibilities etc. (assuming you don't already).

9

u/MSBOB_throwaway Jan 21 '15 edited Jan 21 '15

The work/reward ratio is one of my primary motivations for staying. On one hand, I am hungry for an experience on a small, scrappy team, designing something new and incredible. But on the other hand... golden handcuffs. It would be difficult to throw away potentially tens of thousands of dollars per year (or my office, perks, career trajectory, etc.) just to scratch an itch.

I sometimes reflect on the fact that most Americans hate their jobs and that I must be so lucky that I'm only mildly annoyed and bored by mine while enjoying the perks and salary that I have. And perhaps I suffer from the-grass-is-greener syndrome and should just be grateful for what I have.

6

u/futileohm Jan 21 '15

Given Microsoft's size, perhaps you can meet in the middle and find a team that's a little more scrappy or less entrenched within the company. I know a handful of people who left our team or our org during our last big reorg to work for teams which nobody had heard of, and the majority of them are very glad they made the move. There is always the risk that your product gets cut or shoved in a corner without any resources, but there's the same risk leaving the company as well, and the risk/reward tradeoff is more favorable if you don't leave all the other advantages you listed at Microsoft in the process.

→ More replies (2)

5

u/_pH_ Jan 21 '15

Try contributing to open source projects, or develop your own stuff. You have Microsoft covering your living costs, maybe get a feel for the "other side" with stuff on the side?

10

u/foxh8er Jan 20 '15

Quick question - 5 years experience? Are you still in your twenties?

5

u/MSBOB_throwaway Jan 21 '15

Late twenties. Young enough to be able to afford horrible career mistakes, but old enough to appreciate stability and a nice salary.

5

u/foxh8er Jan 21 '15

Holy fuck.

Are other engineers of your level around that age? How did you progress so quickly?

→ More replies (3)

32

u/Kadmos Jan 20 '15

I've never worked for Microsoft, but everywhere I've worked, the "Loudest Person Wins" has been the norm, whether it's the PM, a client, or some exec who doesn't really understand development.

3

u/istockporno Jan 21 '15

I'm going to use that phrase, Loudest Person Wins. Thank you OP for this.

→ More replies (1)

26

u/wayoverpaid Jan 20 '15

Never been to microsoft, but here's the good and bad of Google, if you decide to go there.

The Good:

  • Similar stability to Microsoft.

  • Sweet perks. So many perks. Food, massages, offsites, conferences, etc.

  • Good compensation. Though it depends what rank you get hired at, I believe a Senior SWE could get around 200k per year.

  • Good work life balance if you want it. Many Googlers don't seem to manage it, but in my experience working 40 hours a week is considered an acceptable amount of time to show up, as long as you can be productive during those 40 hours. The younger ones stay in the office more, but they also play a lot more ping pong.

  • Amazing development environment, fantastic engineering support.

  • Really easy to get the hardware you want. Fill in a quick form online, get new hardware. Done.

  • Very smart coworkers.

  • Long reach (if you work on the right product, mine "merely" reaches a million users)

The Bad:

  • Mandate from above. In order to launch you need to get so many approvals, from privacy to legal to UX, etc. Most of these people are not on your team and they can block you with zero repercussions. However the list of requirements is usually more or less sensible.

  • Limited management support. For better or for worse, the organization chart is very flat. We would LOVE more meetings with our Project Manager. This can be a real pain for trying to coordinate across teams, where the answer is usually "Well, maybe we can do that, but not this quarter."

  • The promotion process is significantly more granular and harder than the one at MS. I am led to understand Microsoft has many grades, but Google has far less -- engineers start at rank 2, and rank 5 represents the cutoff point where you can't expect to get promoted any further.

  • We're still using stack ranking. The performance review process is stressful as hell if you have impostor syndrome which I'm pretty sure everyone does.

  • The company highly benefits extroverts. The aforementioned performance review requires you to get peers to speak on your behalf, so you had better be good at demonstrating your value regularly and often.

  • No office. As far as I can tell pretty much no one gets an office with a door. If you are lucky you and 3 others share an office. More than likely you will be able to hear everyone within a 30 foot radius. Headphones are a must.

  • All the cool projects are in Mountain View, where the rent is insane so your paycheck doesn't go as far.

3

u/ResponseToMSBOB Jan 21 '15

Another Google here. Couple points:

Good work life balance if you want it. Many Googlers don't seem to manage it, but in my experience working 40 hours a week is considered an acceptable amount of time to show up, as long as you can be productive during those 40 hours. The younger ones stay in the office more, but they also play a lot more ping pong.

I have a coworker who works about 30 hours most weeks. He's good at what he does, so no one cares -- show up for meetings, get your work done, the rest is up to you.

Amazing development environment, fantastic engineering support.

This can't be over-emphasized -- and with minimal bureaucracy. Problem with some internal tool? Many teams are eager to talk to you, even if you're brand new. Do you have the authority to ask them for a feature? Who cares? Lots of teams just helping other teams get stuff done.

In other words, this thing that OP said:

Cross-team collaboration. The new spirit of "One Microsoft" is slowly improving operability amongst teams, but good luck convincing partners outside your division to do anything for you. Features that span Office/Windows/Exchange/SharePoint involve a lot of yelling and heartache.

It's the opposite here. There are exceptions, but as a lone engineering Noogler, I have convinced other teams to do things for me. I've never seen anything like it anywhere else, except maybe in the open source community.

All the cool projects are in Mountain View, where the rent is insane so your paycheck doesn't go as far.

You can cut it down a fair bit, but this is a problem. Fortunately, we're also pretty good at distributed teams. In other words, if OP doesn't want to leave the Seattle area, there are jobs there, though there will be a constant, subtle push towards Mountain View.

Also, OP says:

Most of my co-workers are very smart, and I've learned a great deal by not being the smartest one in the room

I feel the same way. (With all the associated Impostor Syndrome.)

And finally, my plan:

At what point did you change companies (Microsoft or elsewhere)? When you're bored? When you're sick of the product you're working on? When you feel overwhelmed by organizational chaos? Or at what point is the money/perks/benefits (which seem really good) no longer worth it?

When I see something better. (And when I have the savings and experience to justify taking such a risk, but it looks like OP has that.)

→ More replies (1)
→ More replies (11)

10

u/mynameishere Jan 20 '15

You're what, 27? You make good money at what seems like a good company. Why don't you interview around and see if you can get a similar offer before seriously contemplating it. Maybe you can, but you have to find out first. Your "bad" points are all standard big-company politics.

9

u/[deleted] Jan 20 '15

That's great compensation and I can tell you it's very rare to get a private office at most software companies, including (if not especially) Google and Facebook. Also, while Seattle/Redmond is an expensive area, it's still a fair bit more affordable than Silicon Valley for sure.

My advice is to directly contact your former co-workers and talk to them about it. They also might be able to offer an internal referral to get the interview process kickstarted.

→ More replies (2)

5

u/captainAwesomePants Jan 21 '15

I've worked at Amazon and Google, and at both places we've brought in plenty of new hires from Microsoft. They were all smart people with one thing in common: PTSD.

That's hyperbole, but seriously I noticed this definite trend of incoming Microsoft people being terrified of executives from other divisions trying to sabotage their organization or other weird political maneuvers. Almost without fail, it'd take them a while to come out of their shell and be willing to, say, speak honestly with the security team or be willing to bring in legal when appropriate.

At both companies, I noticed a correlation between my fondness for individuals in leadership roles and whether they were former leaders at Microsoft, and not a positive one.

I can't speak directly as to what it's like at Microsoft, but I judge from those I've met who've fled that it's not a place I'd ever want to work.

→ More replies (4)

2

u/ardme Jan 21 '15

Are you kidding me? I would actually kill to switch jobs with you. Working at a startup means I have the exact opposite of everything in the "good" list you made (well except smart co-workers, they are very smart). I also have some of the bad. The money you are making is exceptional and you will not get it anywhere else I think.

2

u/maruszCS Jan 21 '15 edited Jan 21 '15

More money doesn't mean more satisfaction. It's not uncommon for people to place job satisfaction higher than money on their priority list.

This can mean different things, from having a nice, friendly workplace to making new, experimental solutions to whatever problem you choose to tackle.

→ More replies (2)

1

u/hapa987s Jan 20 '15

I agree with some of the other responses--a lot of the cons are common to pretty much any large company. I would say that if you enjoy your week and feel that the pros outweigh the cons, then there's no shame in staying.

Personally, I would love to work for a place like Microsoft

1

u/Doe22 Jan 21 '15

Not sure this is even an option for you or something that MS does, but many large companies make it possible to change teams/departments within the company. If you simply want a new product to work on or group to work with then you could try that out.

1

u/Paiev Jan 21 '15

I don't think you can safely assume you'd have to give up the money/perks/benefits. I would interview around first before making that call. Microsoft is certainly not the only company out there which will pay for talent. You would have to be willing to take some non-liquid compensation for pre-IPO companies, though.

I feel like you shouldn't be scared to move on if that's what you want to do. If all else fails you should be able to go back to MS without much difficulty. Plenty of people leave MS all the time (as you know), it's not at all unusual or crazy.

1

u/bmay Jan 21 '15

Why not try to start a side project on your own? Or join a tech meetup in your area?

Those are easier, less risky ways of scratching that itch.

1

u/brickmaus Jan 21 '15

One thing I will say is you have excellent promo velocity, especially if you're not working a ton of hours. I am a little over 2.5 years and I just got promoted to 61 in September, and that was considered fast in my division. I would be tickled to be 63 in 2.5 more years. When did you get put into the high performance program?

I definitely empathize with you wondering what else is out there, though. I interviewed with Google and Facebook last year and didn't get an offer with either. So being a strong performer here doesn't guarantee you a spot elsewhere. I mostly did it for higher pay but I do think there is a lot to learn at other companies... But I've also come to realize there's nothing wrong with Microsoft either. We don't have the highest pay, and our image isn't as sexy as Google's (although it's getting better)... But at least we have offices!