Skip to content
Available for work
Adam

Full-Stack Engineer

I build production-ready applications and write about every lesson along the way.

Python, Postgres, AWS, TypeScript, React, Node.js

01

Selected work

All projects
Screenshot of the Chroma interface
012026 · Live

Chroma

Public-domain art, discovered by colour. Pick a colour and 1,500 works from the Art Institute of Chicago re-rank by how close their palettes are, measured the way the eye sees colour.

257 tests · 1,500 works · Daily sync

02

Writing

All posts
aws
01Jun 11, 2026 · 5 min read

The Layer Under Everything - AWS IAM, VPCs, and Networking

The most recent stop on my AWS journey. IAM roles and least privilege, then the VPC fundamentals - subnets, route tables, gateways, and security groups - that finally explained why my ECS task couldn't reach the internet.

aws
02Jun 3, 2026 · 5 min read

Running My Containers in the Cloud - AWS ECS and Fargate

Where I am right now in my AWS journey: taking the Docker images I built earlier and running them on ECS. Task definitions, services, Fargate vs EC2, and wiring up a load balancer.

aws
03May 21, 2026 · 5 min read

Starting My AWS Journey with S3 - Object Storage Done Right

My first deep dive into AWS. What object storage really is, how buckets and keys work, storage classes, presigned URLs, and securing a bucket so I don't end up in a data-breach headline.

cicd
04May 8, 2026 · 4 min read

Building a CI/CD Pipeline I Actually Trust

From manual SSH deploys to automated GitHub Actions: testing, building images, pushing to a registry, and shipping safely with rolling and canary deploys.

system-design
05Apr 25, 2026 · 4 min read

Designing for Scale - Statelessness, Load Balancing, and the CAP Theorem in Practice

The fundamentals of horizontal scaling: why stateless services are the key, how load balancing and replication actually work, and the trade-offs CAP forces you to make.

observability
06Apr 12, 2026 · 4 min read

Observability: Logs, Metrics, and Traces - Debugging Things I Can't See

Once my system went event-driven, print-debugging died. Here's how I learned the three pillars of observability and instrumented my services with OpenTelemetry.