Technology, Creativity, and Life

The Journey Continues

Friday was my last day at Microsoft. I was lucky to be hired there straight out of grad school and even luckier to continue working there for just short of 10 years. I've had the privilege of working with kind, talented people on projects to which I'm proud to have contributed.

In the last 3 years I've had the opportunity to create things I care about. The PowerShell team was just beginning their journey into open source and cross-platform development and I was fortunate to play a role in that effort. Creating the PowerShell extension for Visual Studio Code and PowerShell Editor Services and then working directly with users and contributors was definitely the highlight of my time at Microsoft.

It's a rare occurrence when an opportunity appears that makes you seriously consider leaving a good job. It happened to me around the end of August when I saw a tweet about a job opportunity that made me reflect on where I want to go next with my career. To my surprise that opportunity worked out and I accepted an offer about a month later.

I'm very excited to report that this week I start the next phase of my career at GitHub working on the Atom editor!

Why GitHub?

For quite a while now, GitHub has been the center of the modern open source universe, producing the best tools for collaborative software development. Since I'm passionate about both open source and developer tools, it made complete sense to work there.

Working at GitHub also gives me the opportunity to work in a distributed team. The Atom team is mostly comprised of remote workers so I didn't even have to move to take this position! I suspect that remote work is the future of the software industry so this is a way of testing that theory first-hand.

Why Atom? What about Visual Studio Code?

Those of you who know me for my work with and advocacy of Visual Studio Code are probably a little confused about why I'd take a job to work on a different editor. The answer is simple, and a little bit selfish: I personally prefer editors that give the user total control over their environment. Atom was built with the philosophy that developers should be able to make Atom into whatever it needs to be for the task at hand.

Visual Studio Code has a different philosophy. They aim to make it easy to add powerful IDE-style features across the wide variety of programming languages that developers want to use. To accomplish that, they have focused on building APIs that allow new behavior to be added in very specific ways without giving much ability to modify the core functionality of the editor. This restriction works in the user's favor, improving performance and stability at the expense of complete customization.

The philosophies of both these editors are valid and I believe they can exist happily side by side. In my opinion, you shouldn't think of this as "Visual Studio Code versus Atom", but instead "Visual Studio Code or Atom". It's all about choice, and each person chooses based on their needs and preferences.

Visual Studio Code is a fantastic tool developed by a really excellent team, a few members of which I've worked with closely over the last few years. I look forward to continuing to collaborate with them in the common open source projects that are shared between the two editors!

What about PowerShell?

PowerShell's biggest asset, by far, is its community. I don't think I've ever seen a kinder and more dedicated group of people in tech. I have truly enjoyed serving this community and spending time with everyone at conferences and summits over the last couple of years. The enthusiasm around the projects I created kept me constantly excited about work.

The thing I worry about the most is whether the community will interpret this change as abandonment. That is certainly not the case! I will still be around on the PowerShell community Slack and hanging out on Twitter. I might occasionally work on the PowerShell extension and PowerShell Editor Services in my free time, I just won't be able to devote a large amount of time to them as I did before.

Do not worry, these projects are in good hands with the PowerShell team and we, the community, can make sure they continue to rock with our contributions!


It's definitely sad that my time at Microsoft has come to an end. I am truly thankful for all of the opportunities I've had there but I couldn't pass up an opportunity to work at GitHub on the Atom editor. I'm really excited to help make Atom the best hackable editor that has ever been created!