SOFTWARE ENGINEER

Hi, I’m Nathan.

Current location
Charlotte, NC
Open to
Software, DevOps, systems, and data engineering roles

I spent nearly four years at Amazon working on subscription checkout. Outside of work, I build self-hosted apps and run a small homelab.

Previously at amazonB.S. Computer Engineering · UNC Charlotte
01 / WORK EXPERIENCE

Where I’ve worked.

Amazon Software Development Engineer, Device Subscriptions

Arlington, VA · JUL 2022 – MAY 2026
  • Led the full-stack redesign of device subscription checkout for Blink, Alexa+, and Ring, which handles hundreds of thousands of visits a month.
  • Changed subscription eligibility from country-level to US state-level rules for FTC compliance, with no measurable effect on conversion.
  • Extended purchase infrastructure across four international marketplaces and led the Blink bundle launch in Canada.
  • Designed a Step Functions platform for validating subscription accounting and tax workflows, which cut testing time by 30 to 50%.
  • Built a parallelized Selenium test platform that runs in CI/CD and saved roughly four weeks per launch.
  • Owned on-call rotations for several production services, including Sev-2 incidents, dependency and security migrations, and the team’s runbooks.

HACKATHON PROJECT · 2024Acronym Tooltip Extension.A browser extension that shows definitions for internal Amazon acronyms on hover. I built it with two teammates for an internal hackathon, where it won first place, and several thousand employees ended up using it.

Languages
Python, Java, JavaScript, TypeScript, Rust, SQL
Frameworks
React, FastAPI, Node.js, SQLAlchemy, Tauri, Selenium, JUnit, TestNG, pytest, Jest, Testcontainers
Infrastructure
AWS (Lambda, Step Functions, ECS, S3, DynamoDB, SQS, CloudWatch, CDK), Docker
02 / OUTSIDE WORK

What I build off the clock.

FrontDashboard

A household dashboard for shared lists and recurring events, with live sync across devices. My household has used it daily since 2021, and the linked code is a 2026 rebuild.

React · FastAPI · PostgreSQL · Docker

How it works

The liveness check never touches the database, and the readiness check times out and fails if Postgres is down or hanging. Each connection gets its own live-update stream, so every open tab or device keeps track of what it has seen. CI builds the images, starts the full stack, and tests it through the proxy. The repo also has alert rules and runbooks for deploys, rollbacks, and restores, and the integration tests use a real Postgres container.

TeeTrack

Searches live availability across three booking systems and watches for openings, then emails or texts when a slot appears.

TypeScript · Express · PostgreSQL · Docker

How it works

Each booking system is its own module with a shared interface. The browser checks for openings while the tab is open, and a server-side watcher keeps checking around the clock. Email, SMS, and webhook alerts all go through one notification path. CI lints, type-checks, and builds the frontend on pushes to main and dev, and the app runs as Docker images behind Caddy like my other services.

Multi-Agent Workspace

Runs several Claude and Codex coding sessions side by side, each in its own project, with a local Ollama model for quick routing tasks.

Tauri · Rust · React · MCP

How it works

Each provider sits behind a Rust session trait. Adding one means writing an adapter and updating the places that reference Claude and Codex directly. Worker state is saved, so sessions pick up again after a restart, and anything that needs permission pauses and asks first. It uses your existing Claude and Codex CLI logins, tracks spending against budgets, and doesn’t store API keys.

WHAT IT RUNS ON

Infrastructure

Choose a part of the homelab

Proxmox cluster

Three nodes for VMs and containers

Where new services get tried out, with snapshots so I can roll changes back.

ProxmoxDocker

Unraid host

Runs my public apps, this site, and the household services

FrontDashboard, TeeTrack and this site each run as a Docker Compose stack, with PostgreSQL behind them. Media, photos, and backups live on the same box.

UnraidDocker ComposePostgreSQLCaddyPlexImmich

Networking & access

Ingress, private access, and monitoring

Public traffic comes in through an outbound tunnel, admin access goes over a VPN, and I get alerts when a service goes down.

Cloudflare TunnelCaddyTailscaleUptime Kuma

99.67% mean uptime over 30 days across 2 HTTP checks on my public services · as of Sep 20, 2026.

WHAT I DESIGN

3D prints

I design and print parts on a Bambu P1S, mostly mounts and replacement parts you can’t buy on their own.