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