Andrew Stanton-Nurse

software engineer

Andrew STANTON-NURSE

Objective

Help Developers and Customers Reach Their Full Potential Through Software

I love to build tools to help developers and customers reach their full potential. In my career, I’ve focused on areas where I can make other developers more productive through powerful tools, components, languages and frameworks. Tough technical problems interest me, but helping to build a strong team is what really motivates me.

Languages/Platforms

  • C#/.NET: 10+ years of career experience.

  • TypeScript/JavaScript: About 5 years of career experience, mostly around building frameworks.

  • Web Development: 10+ years of career experience, both in developing frameworks and web applications.

  • Rust: 2-3 years of hobby experience. I’ve been following Rust for a while and I'm very interested in putting that hobby experience to use.

  • Java: 1-2 years of career experience, spread over my career so far. I have a strong idea of the similarities and differences between Java and C#, and can transfer knowledge between them well.

  • C/C++: Academic experience and <1 year of career experience.

  • Ruby: Academic experience and some hobby usage.

  • Go: Eager to learn!

Experience

Microsoft (ASP.NET Team), Senior Software Engineer

June 2016 - Present

Since June, I’ve been focused on .NET Core, a free cross-platform open-source developer platform from Microsoft. I have a long history with .NET and I’ve always hoped it could grow into a truely open-source platform. I’m proud to have had an impact on that process.

I led the team building a brand new version of the powerful SignalR framework for real-time web applications. This project was a rewrite from the ground up using .NET Core. The product has been used in production applications and also powers the Azure SignalR Service, a server-less solution for real-time web applications. In addition to building new shiny things, I also dug deep into the legacy code base (a completely different beast) and released several maintenance releases as well as a release adding some new functionality. I enjoy the challenge of diving in to an unknown system and solving problems! SignalR has multiple client libraries and I’ve worked in TypeScript, Java and C++ to help deliver these client experiences, as well as the core .NET server/client code.

Along the way, I also contributed to various other parts of the ASP.NET Core platform, and had a broad impact on .NET Core as a whole. Recently, I’ve been working in a virtual team to dramatically improve the diagnostics story for .NET Core, allowing customers to get more insight into performance and scalability problems in their applications.

Microsoft (NUGET Team), Software Engineer II

September 2012 - June 2016

NuGet is the package manager used by all .NET applications, and NuGet.org is the central repository for packages, hosting over 100,000 unique packages and over 16 billion package downloads. As an engineer on the NuGet team, I helped develop, maintain and operate this service as well as the command-line client and Visual Studio functionality. From the start, by necessity, NuGet was a “DevOps” system since we were a small team and didn’t have capacity for a separate operations team. As NuGet grew, we discovered operations challenges that required technical improvements as well as new processes. NuGet is now central to the .NET platform and being able to have such a broad impact was a thrilling experience for me.

Microsoft (ASp.NET Team), Software Engineer

October 2009 - September 2012

The “Razor” templating language for ASP.NET, released in 2010, was a major change in server-side rendering for ASP.NET applications. As an engineer on the ASP.NET team I built the core parser and runtime engine for this templating language. Razor is unlike many templating languages in that it seemlessly blends commands and output together rather than using chunky delimiters to separate content from instructions. At the time, this was a novel new approach, and since then it has become much more common (as seen in languages like JSX and the React framework). I enjoy solving these kinds of deep technical challenges. Building a parser for a language that was effectively a blend of two languages (C# and HTML) was an interesting challenge. This was a real opportunity to have a major impact on the entire ASP.NET ecosystem. Now, Razor is the dominant syntax for server-side rendering in ASP.NET applications and I’m proud of the part I had in that.

Microsoft (ASP.NET Team), SOFTWARE ENGINEER INTERN

May 2008 - August 2008

AJAX and MVC were all the range in 2008! As an Intern on the ASP.NET Team, I built a series of AJAX “helpers” for ASP.NET MVC applications that made it easy to integrate AJAX functionality into existing and new MVC-based applications.

Microsoft (Visual STUDIO Team), SOFTWARE ENGINEER INTERN

May 2007 - July 2007

Microsoft Visual Studio Team Edition for Database Professionals, in addition to being one of the longest product names ever, was a powerful version of Visual Studio designed for Database Developers. I helped build a prototype formatting engine that would take T-SQL (the SQL dialect used by Microsoft SQL Server) Scripts and format them according to the developers configured preferences. Authors of SQL scripts often like to align constructs vertically, which is a formatting challenge not usually found in programming language formatters, which made this a very interesting experience. I designed a two-pass formatter that allowed script authors to maintain the formatting they were used to having in manually-formatted scripts without the tedious job of inserting spaces to align constructs.

Education

SIMON FRASER UNIVERSITY, Vancouver, Canada

B.S. COMPUTER SCIENCE, SOFTWARE ENGINEERING
Graduated June 2009

 

Location

  • Eligible to work in:

    • 🇨🇦 Canada

    • 🇺🇸 USA

    • 🇬🇧 United Kingdom

  • Relocation: ❌

  • Remote Work: ✔️

  • Travel: ✔️(Occasional)