Leaving Microsoft: Software Development Skills

Every week or so, we’ll talk to an engineer who thinks she’s interested in leaving Microsoft. (We heart Microsoft! They’re a great client! This is reality. Back to the show.)

Leaving usually means wanting to go to a startup or smaller company, and (even) in Seattle, the vast majority of those are based on open source technologies – they’re most often Java, Ruby, or Python shops. But many of those companies don’t have time to train up someone who’s spent her entire career on Microsoft technologies – they look at a resume with nothing but C# and ASP.NET for the last ten years and start to imagine how long it will take that person to be productive, and then they move on. (Companies with primarily Java stacks may be more willing to budge on this.)

So how do you get yourself technically ready to be an attractive candidate?

There are two paths: one obvious, one less so.

Obvious path: start building things. Go spend six months in your I-want-to-leave-so-I-made-some-free time actually building something “real” that runs on an open source stack, in a language that might be interesting (the ones above are good choices, especially Ruby or Python). Make sure the application does something that someone can see. It doesn’t have to be complicated, it doesn’t have to be great – the bar here isn’t “are you an amazing Ruby developer” but “did you take learning a non-Microsoft technology seriously.” That’s part of the secret: if you’re a good developer with solid CS fundamentals, and you’ve made a concerted effort, that makes you a viable candidate.

Less obvious path: move to front-end web development. There’s one set of technologies that Microsoft uses that matter a lot outside of the company – client-side web technologies! At this point, the web client side is where the Microsoft-specific and other stacks converge. Javascript & jQuery at a software engineering level and CSS expertise in particular matters a lot: experience with something like Backbone.js is even better, though I don’t know how much of that is being done inside Microsoft walls. Go over to one of the Bing groups (or some of the Windows groups) that are writing high-quality web client side code, get yourself on that team, and go build things people will see. This is real engineering, and the world outside of Microsoft knows the difference between a webdev whose skills are more around pixel perfection and a software engineer who can write client-side Javascript.

(This is the first post in a will-really-be-ongoing series called “So You Think You’re Ready to Leave Microsoft.”)