Technical Skills


Languages: C#, C++, Java, JavaScript, Python, SQL, Go, Ruby, HTML, CSS, PHP, Objective-C

Platforms: .NET, Android, iOS, node.js, Rails, PostgreSQL, MySQL, Hadoop, jQuery, JSP

Tools: Git, Azure, AWS, Heroku, Docker, LaTeX, SVN, Perforce

Work Experience


Microsoft (Azure Batch)

Software Engineer II, Redmond, WA, Sep 2018 – present

Software Engineer, Redmond, WA, Jul 2017 - Sep 2018

  • Held ownership of multiple C# and C++ backend microservices for Azure Batch, a scalable and high-availability service for running computationally-intensive batch jobs in the cloud
  • Drove several major features from design to global rollout, including per-family VM quotas, private service connections, and spot-priced VMs
  • Contributed to the feature completion, system-level integration, and staged rollout of a newly-rewritten VM pool management service
  • Expanded and improved the Batch service’s internal tools for logging, monitoring, debugging, alerting, and incident mitigation

Internships


Microsoft (Azure Batch)

Software Engineering Intern, Redmond, WA, Aug 2016 – Dec 2016

  • Contributed to the early development of a new C# backend microservice responsible for allocating cloud VMs and mapping deployments
  • Integrated the new service with external storage, deployment, and testing services, modelling these modules as finite state machines using the P# library

Remind

Software Engineering Intern, San Francisco, CA, Jan 2016 – Apr 2016

  • Contributed to the API and microservices of Remind’s education-tailored messaging platform, written in Ruby, Go, and node.js
  • Expanded and restructured internal code libraries for metrics, HTTP request handling, automated jobs, file storage, notifications, and rate-limiting

Google (Display Ads)

Software Engineering Intern, Kitchener, ON, May 2015 – Aug 2015

  • Wrote upgrades for the C++ and JavaScript tools used by the Display Ads team to visualize the performance of ad servers during individual requests
  • Wrote filtering algorithms and ease-of-use improvements into existing graph visualizations and added a new timeline view

TabbleDabble

Software Developer Co-op, Toronto, ON, Aug 2014 – Dec 2014

  • As a full-stack developer, contributed to the JSP web app, iOS app, and Android app for QuickTapSurvey, an offline survey-collection service
  • Added features, fixed bugs, added automated jobs, and expanded tests for all three apps

Pivotal Labs

Agile Engineer Intern, Toronto, ON, Jan 2014 – Apr 2014

  • Developed an early-stage iOS mobile payment application in Objective-C using pair programming and test-driven development
  • Added more views, increased API integration, restructured existing code, made usability improvements, and fixed bugs within the app

Pause Productions

Junior PHP Developer, Oakville, ON, Apr 2013 – Aug 2013

  • As a full-stack developer, used PHP, SQL, HTML, CSS, and JavaScript to add and improve web pages in Uplifter, a system for coaches and administrators of athletics clubs
  • Wrote both the frontend and backend for several new features in Uplifter

Independent Published Projects


Go Game Clock: An Android app for enforcing time controls in the board game of Go

Homework Tracker: A lightweight Chrome extension for managing lists of assignments and due dates

Education


Bachelor of Software Engineering, Honours Co-op, With Distinction, University of Waterloo, 2012 – 2017

  • Cumulative Average: 93.5% as percentage, 3.96 / 4.00 as GPA
  • Extracurricular Activities: Midnight Sun Solar Race Car Team, Undergraduate Research Assistant, Waterloo Engineering Endowment Fund