Ian Henry

Software Engineer

(425) 444-7674


Bachelor of Applied Science in Computer Engineering with the Software Option

University of British ColumbiaMay 2012


  • Programming
  • C++, C++/CX
  • C# (.NET, Windows 10 SDK)
  • Java (Android SDK), Objective-C
  • PHP, JavaScript, CSS
  • SQL Server, mySQL
  • Software
  • WinDBG
  • Eclipse, Visual Studio, XCode
  • IIS, Apache, Tomcat, Firebug, Xdebug
  • MySQL Query Browser, SQL Server Management Studio
  • SQL Server Integration Services & Reporting Services


Microsoft (Web Services)

Software Engineer II

August 2017 - Present

• Ramped up on building scalable web services for the Universal Store using C# and ASP.NET WebAPI, and familiarized myself with various techniques and tools used to manage and monitor high volume services. Fixed bugs and implemented new features in the fulfillment service; completed a significant refactor to improve code sharing, added new APIs to support inventory reservations, and designed a reconciliation system using the in-house big data platform.
• Completed a 2-week on-call rotation during which I was responsible for keeping a suite of high-volume services running 24/7; investigated, debugged, and quickly resolved issues in order to maintain 99.9% reliability SLA.

Microsoft (App Development)

Software Engineer II

July 2015 - August 2017

• Windows 10 Podcast App: architected the new universal Windows Podcast app from the ground up; researched relevant technologies, investigated solutions to known problems, and documented findings in a formal design document. Designed, implemented, and tested significant components of the app with XAML and C#, including background audio support, subscription management, the collection page, and many others. Set up custom test automation to run unit and functional tests against the nightly build and e-mail the results to the team. Acted as the technical lead and helped other team members design features and debug complex technical problems.
• Groove Music App: implemented new features and fixed bugs in the Groove Music app in C#, C++/CX and XAML. Managed the virtual team responsible for moving the team's source control and infrastructure to standard technologies; presented a 6-month plan to management, allocated and tracked work, and helped team members debug technical problems.
• Office for iOS/Mac: quickly ramped up on Apple technologies and tools including XCode, Objective-C, XIBs, etc. Fixed bugs and implemented new features in shared UI code across the Office suite on iOS. Added support for lightweight accounts without an e-mail address; implemented and tested necessary changes from the UI layer to the cross-platform authentication layer. Worked with the project management team to design the new Mac sharing experience, prototyped ideas, and implemented the final design.

Microsoft (Operating Systems Group)

Software Engineer II

April 2014 - June 2015

• Designed and implementated an enterprise email security feature that required changes to core Windows Phone components across the entire stack, including the e-mail app, the email sync service, the database layer, and the email notification service.
• Implemented new features and fixed bugs in many areas of the Windows Phone codebase, including Kid's Corner, Action Center, Settings, Notifications, Alarms, the Podcast app, and others.

Microsoft (Engineering Systems)

Software Development Engineer

August 2012 - April 2014

• Designed and implemented the front-end of a web application to manage automatic builds and tests that ran against the Windows Phone OS codebase, using ASP.NET MVC, Javascript, jQuery and CSS. Worked with a team to implement the back-end API layer using ASP.NET WebAPI. Built a prototype Windows Phone 8 application using C# and the Windows Phone 8 SDK to expose API functionality to mobile users.
• Maintained and improved deployment tools in various languages including PowerShell and Batch, and implemented new features and fixed bugs in existing tools and services in C#.

Recon Instruments

Android Developer (Intern)

May 2011 - August 2011

• Quickly familiarized myself with the Android SDK and coded a complex Android application from the ground up.
• Worked with the embedded team to research, modify and recompile the Android source code to provide custom functionality.
• Designed a custom music player application for Android, created a user interface mock-up using Adobe Illustrator, and implemented a prototype.
• Ongoing implementation of new features and advanced functionality while ensuring that deadlines are consistently met.

Research In Motion

Blackberry Handheld Web Application Developer (Intern)

January 2011 - April 2011

• Implementing new features and fixing bugs in web applications using Java, PHP, Javascript, HTML and CSS.
• Implemented a simple snake game for Blackberry using the BlackBerry Java SDK.
• Familiarizing myself with the large code bases of complex, modularized projects.
• Improved the page load time of the asset management application by over 5 times by profiling the code and optimizing slow methods.

Vision Critical

Junior System Administrator / Developer (Intern)

May 2010 - August 2010

• Planned, implemented and maintained projects in languages including SQL, PHP, VB.NET and C#.
• Performed system administration on Windows Server 2003 using software such as SQL Server Integration Services.
• Designed and implemented a relational database in Microsoft SQL Server for an employee time-off reporting system.
• Created a SQL Server Integration Services package to export employee time-off data from an existing source using VB.NET and import data into the database using SQL stored procedure.

Ian Henry — ian@ianhenry.ca — (425) - 444-7674