HM

Haegan McGarry

Software engineer. Cloud infrastructure, distributed systems and security.

I build backend and cloud systems, mostly on AWS, and test how they hold up when packets drop or the network goes down. I've also had 11 bug fixes merged into open-source projects, including black, nautilus_trader and statsmodels.

  • Python
  • Go
  • C
  • TypeScript
  • AWS
  • Terraform
  • Docker

Projects

HoldFast

Keeps several computers in sync over an unreliable network, with no central server.

HoldFast runs three nodes that each track the aircraft in their own area. They share updates directly with each other, so every node ends up with the full picture even when 1 in 5 packets are dropped or a node is cut off for a while. I tested it by replaying a recorded hour of real air traffic through packet loss and network cuts. I also deployed a cloud version on AWS that runs the same code on Lambda and DynamoDB.

1.37 s
for 95% of reports to get from one node to another with 1 in 5 packets dropped (median window, recorded hour of 444 aircraft)
60 of 60
test windows where all three nodes ended up with the same data at that loss rate
2.8x
the delay when reports go through a central server, compared with node to node (95th percentile, no packet loss, 8 windows)
131
bugs I planted in the code to check the tests, and the tests caught all of them
  • Go
  • Docker Compose
  • netem
  • Terraform
  • API Gateway
  • Lambda
  • DynamoDB
  • Prometheus
  • Grafana

Agentic NetOps

An AWS system that found unwanted network changes and repaired them, with a person approving the riskier fixes.

This system watched a test network on AWS for bad changes, like a deleted route or an edited firewall rule. It confirmed what broke, put the network back the way it was supposed to be, and checked that the fix worked. An AI model wrote the incident report, but rule-based code made every decision. Riskier repairs needed a person to approve them.

191 s
from a fault I planted to a verified fix, with no human involved (live run)
9 of 9
types of planted network fault repaired in a live AWS account
301
automated tests, including 11 that run the web console in a browser
  • AWS SAM
  • Step Functions
  • Lambda
  • DynamoDB
  • EventBridge
  • Cognito
  • Bedrock
  • IAM
  • Python

Open source

Bug fixes I've contributed to open-source projects. For each one, I reproduced the bug and wrote a failing test before fixing it. The merged ones were reviewed and accepted by the project's maintainers.

Open now

Experience

How I work

I check my own work. When I run an experiment, I write down what I expect and commit it first, so I can't change the story later. I also add bugs to my own code on purpose to see if my tests catch them.

I use AI coding tools every day, mainly Claude Code, with my own agents, skills and checks set up around it. It makes me a lot faster. I decide what gets built and how it should work, and I review and test what it writes before I trust it.

Skills

Languages
  • Python
  • Go
  • C
  • TypeScript
  • SQL
  • Lua
Cloud and infrastructure
  • AWS Lambda
  • API Gateway
  • Step Functions
  • DynamoDB
  • EventBridge
  • SQS
  • IAM
  • Cognito
  • CloudWatch
  • Bedrock
  • Cloudflare Workers
  • Terraform
  • AWS SAM
  • Docker
  • Linux
  • Prometheus
  • Grafana
Distributed systems and data
  • CRDTs
  • Hybrid logical clocks
  • Anti-entropy sync
  • SQLite
  • DuckDB
  • S3
  • Parquet
Testing and security
  • pytest
  • Property testing
  • Mutation testing
  • Fuzzing
  • GitHub Actions
  • CodeQL
  • IAM least privilege
  • Scoped STS credentials
  • Permissions boundaries
  • Trivy
AI tooling
  • Claude Code
  • Codex CLI
  • Custom subagents
  • Skills and hooks

Education

Contact

Hiring for an internship, or need a website built? Email is the fastest way to reach me.