How to get a Software Engineering job at Microsoft

Richie Frost
5 min readAug 28, 2019

--

Microsoft’s headquarters in Redmond, WA

Far from the stuffy “Mac vs PC”-type company of the 90s, Microsoft has roared back to being one of the best places to work for software engineers. The wild success of its cloud offering, Azure, among other successful product lines, has catapulted Microsoft to be a trillion dollar company. In contrast to a lot of the fast-paced, lopsided work-life balance cultures in Silicon Valley, Microsoft also boasts great work-life balance without sacrificing top-shelf compensation packages. Seriously, it’s been pretty awesome so far.

Getting the job (it takes more luck than you’d think)

When getting a job at Microsoft (or any other top tech company), luck matters a lot more than you’d think. Hiring engineers, especially at big companies, is often pretty messy and non-deterministic due to the sheer number of applicants as well as the number of engineers already at the company. Great candidates get missed all the time (so do crappy ones). Even at Google, I heard somewhere that about a third of the current employees felt like they wouldn’t pass the interview loop if they had to do it again.

I think there are things you can do to help your chances, but again, luck does play a major factor. There’s a higher chance for there to be talented and hard working people at companies that are more competitive in the market, but generally, I don’t think that the prestige of the company you work for necessarily correlates with your talent or work ethic. It’s nice to think in those terms in order to simplify things, but it’s just not true a lot of the time. You do need some level of talent and work ethic, but it rarely determines your success by itself.

Make no mistake though, even with good luck, it’s still pretty hard to get a job as an engineer at a top tech company. Hard in terms of the probability of you getting hired as well as hard in terms of competing when you do get the chance to interview.

Even still, I think you should try to get a job at a competitive company like Microsoft, Google, Amazon, Facebook, Apple, etc. In an open market, having something that a lot of people want but not many people have is a valuable thing to hold onto. Not to mention the pay, culture, and perks are pretty nice.

The reality

It’s super important to understand that there are literally millions of engineers who want your dream job. So, what to do?

Practice interviewing, especially on the whiteboard!

If you’ve already got an interview, awesome! Make sure to spend tons of time on LeetCode.com, timing yourself on the whiteboard and seeing how your whiteboard code compiles for real. (If you know Python, it’s fantastic for interviews because it’s not verbose and it’s fairly conversational).

I’d also highly, highly recommend using Interview Cake. (I’m actually on the home page as a testimonial at the time of this writing, haha!) I’m not sponsored by them or anything, it was just seriously one of the most helpful resources I could have asked for. Making a habit of working through problems for an hour a day made a big difference. Parker is a genius at interview prep, especially his coding interview guided visualization here: https://www.interviewcake.com/coding-interview-meditation. They walk through example problems that are pretty close to what you’ll see in an actual interview, giving hints like a good interviewer will. It’s like getting interview practice without the pressure of having to pass the interview.

I have a formal computer science background, so I can’t say what it’s like for someone who’s purely self-taught or did a boot camp. But just make sure you can read (and understand) code, find your bugs before your interviewer does, and explain what you’re doing.

Don’t try to memorize problems, by the way. It looks really bad in interviews.

Make yourself more visible!

If you don’t have an interview yet, what you need to do is make yourself more visible. The best thing you can do is to (get to) know someone at the company you want to work for — collaborate with them, especially — and be the kind of person they’ll vouch for.

I know a couple of people who didn’t make it through the traditional recruiting channels to get in at Microsoft but had a separate interaction with an actual manager that eventually led to an offer.

If you don’t even know where to even start for getting to know someone at Microsoft, Google, etc. you can always message me, for starters. I’m happy to help.

Otherwise, you would do well to pick an open source project you’re excited about that’s maintained by the company you want to work for, maybe something you use a lot in your day-to-day, and start hacking on it and submitting pull requests. The cool thing about this approach is that you can get real feedback from real engineers at the company you want to work for, and can build a rapport with them at the same time.

What not to do

Don’t just straight up ask for a referral out of the blue. It’s kind of off-putting from the other side if you’ve rarely even talked to the person asking, and we need to have something to say to our managers when referring you anyway. It’s like that “friend from high school” that randomly messages you on Facebook after not talking for ten years with a “business opportunity.”

The second worst thing you can do is blindly submit your resume to online job postings. As someone who helped write the machine learning models that Microsoft uses to recommend candidates internally from these postings, it’s pretty tough to compete in this channel.

The worst thing you can do? Not even apply. The worst that can happen is that they’ll say no, or not even reply. Just try again later. I definitely received way more rejections and no-replies than offers before landing my current job at Microsoft.

Conclusion

At the end of the day, just keep working hard and taking on hard projects. Make an impact wherever you are currently. No matter where you’re working (or not working), you have a choice in the quality of work you put in. If you keep putting out good work and making an impact, you’ll either become the kind of engineer that’s coveted by your dream company or you’ll turn into a rockstar wherever you’re at.

--

--

Richie Frost

Software Engineer, Machine Learning Platform @ Dropbox