Personal details

Garrett M. - Remote full-stack developer

Garrett M.

Based in: 🇺🇸 United States
Timezone: Pacific Time (US & Canada) (UTC-7)

About

I have a Bachelor's degree in Computer Science with a minor in Math from the University of Maryland. I previously worked at Microsoft as the lead developer of a deployment service and Google where I worked as an internal consultant completing dozens of assignments for happy teams.

I have professional experience in popular languages like Java, C#, and Python and experience from personal projects in newer technologies like Rust, Typescript, Elm, and many more.

I enjoy the detailed knowledge of how software works, especially when it comes to performance. Some examples of what that means:

  • I know the tradeoffs of using an asynchronous solution (e.g. promises) versus a multithreaded solution.
  • I understand how performance is affected by cache misses, branch predictions, code inlining, and pointer indirection (e.g. java objects).
  • In a linux context, I know the difference between file descriptors, file descriptions, and file inodes.

I'm looking to take my skills to solve real problems, work with great people, and leave the systems and teams I interact with better than I found them.

Work Experience

Software Engineer
Google | Jun 2019 - Mar 2024
Python
Java
SQL
Linux
Performance Testing
Functional Testing

For 4 years I worked as an internal consultant to teams around Google to improve the functional testing and performance testing of their product. Every few months I completed a new project that included roughly the following:

  • Introduce myself to the team and determine the team's goals for the project.
  • Study their code, documentation, design docs and ask clarifying questions to bring myself up to speed quickly (usually 2 weeks or less).
  • Author a document describing the design and implementation of a solution, clearly explaining how it would acheive their goals and list the alternatives that I considered.
  • Implement the above solution.
  • Set up and lead a regular sync meeting to go over progress.
  • Write extensive documentation about the work done.
  • Conduct a hand off meeting to review all work done. This includes walking through common tasks like: checking the status of tests, how to add a test, troubleshooting a test. At the end of the meeting at least one person on the team is comfortable enough to make changes to the work I did, onboard and explain it to other folks, and independently own the work in general.

Before I left I had successfully completed dozens of these projects. On multiple occasions with repeat teams eager to work with me again.

Software Engineer
Microsoft | Aug 2015 - Jun 2019
C#
SQL
PowerShell
.NET

I worked on a deployment team that manages a fleet of 200k+ servers running one of the most popular email services in the world: Microsoft Exchange! Specifically, I was the lead developer for the fast patch deployment channel. My deployment service was used to make small updates to the mail server’s software that were time sensitive (e.g. bug fixes). Highlights of my work are:

  • I created a tool to intelligently and automatically group deployment errors to allow easy investigation of multiple issues with the same root cause.
  • I added detailed logging to profile the performance of the deployment process that reveals how long each stage of the deployment takes and where we can focus our efforts to improve it.
  • I designed a revamped status reporting of all patch deployments. This included creating UI design mockups and meeting with the developers who implemented the new status pages.

Projects

Puzzle
HTML/CSS
SVG
Elm
This was my first project using Elm. It's a lovely jigsaw puzzle that you can solve right in your browser. All the SVG drawing, puzzle piece generation and snapping behavior is custom built. It's hosted at garspace.com/puzzle so give a whirl!
Centroid
TypeScript
React
Rust
Redux
Electron.js
A desktop app that will tell you the optimal point to meet if your friends happen to be scattered around the world. It's built with a smorgasbord of tech coming together in one experience. There's Typescript+React+Redux on the front end and Electron with some Rust weaved in on the back end. I got to learn most of the above tech for the first time and a bit about the interesting geometry of geodesics.

Education

University of Maryland, College Park
Bachelor's degree・Computer Science with Math Minor
Sep 2011 - May 2015