What I work with, and what I’ve shipped with it.
Grouped by area. Below that, the projects at Agero and Blue Apron that earned most of it.
Skill set.
AWS
My core platform at Agero and Blue Apron, across multiple accounts.
- S3
- RDS
- Aurora
- ECS
- EKS
- EC2
- Lambda
- OpenSearch
- ElastiCache
- Route 53
- Systems Manager
- Parameter Store
- ECR
Infrastructure as Code
Terraform is the daily driver. CloudFormation and Ansible where I inherited them.
- Terraform
- CloudFormation
- Ansible
AI & agentic engineering
Agentic coding tools are part of how I ship now, and the applied side is my ML sandbox.
- Claude Code
- Codex
- Agentic workflows
- Claude
- GitHub Copilot
- HuggingFace
- Fine-tuning
- SageMaker
- Bedrock
- MLOps
Containers & orchestration
EKS and ECS at both jobs, running distributed microservices across accounts and environments.
- Docker
- Kubernetes (EKS)
- Helm
- ECS
CI/CD & deployment
CircleCI is my daily driver, GitHub Actions close behind. I authored the org-wide CircleCI Orb at Agero that replaced a paid deploy product.
- CircleCI (custom Orbs)
- GitHub Actions
- Blue/green deploys
- Canary deploys
- Ephemeral environments
- Jenkins (legacy)
Observability & reliability
Datadog by default, on-call at both jobs, disaster recovery drills at Agero.
- Datadog
- CloudWatch
- Splunk
- PagerDuty
- Rollbar
Security
Hardened images, resolved 100+ Wiz findings, and own the IAM and WAF baselines.
- Wiz
- Snyk
- WAF
- IAM
- Image hardening
- Vulnerability mitigation
Networking & CDN
VPC design, certificates, and DNS-driven traffic moves. CDN as code on Fastly.
- VPC
- DNS
- Route 53
- Cloudflare
- Fastly
- Certificate management
Databases
Postgres and Aurora every day, plus Redis and OpenSearch migrations.
- PostgreSQL
- Aurora
- MySQL
- Redis (ElastiCache)
- Elasticsearch / OpenSearch
- MongoDB
- DynamoDB
Languages
Python and Bash for automation, Go for internal tooling, TypeScript on side projects.
- Python
- Bash
- Go
- TypeScript
- JavaScript
- Ruby
- Groovy
Web & mobile
Side projects keep me sharp on the application layer, end to end.
- Next.js 16 (App Router)
- React 19
- Tailwind CSS v4
- Motion
- Supabase (Auth, Postgres, Realtime, RLS)
- React Native (Expo)
- Ruby on Rails
- next-intl (i18n)
- Vercel
- Render
Work projects.
Kept short on purpose. Happy to walk through any of them on a call.
Cross-region disaster recovery
Agero
Migrated the whole platform from us-east-2 to us-west-2 and back again, production and staging, with under thirty minutes of downtime. Scripted end to end so the failover is a run, not a project.
- Full region failover and failback, rehearsed annually rather than written down and hoped for
- Automation scripts stand up ECS services, data stores and networking in the target region
- Under 30 minutes of downtime across production and staging
- Pipelines and DNS cutover handled in the same run, so traffic follows the infrastructure
- ECS
- Terraform
- CircleCI (custom Orbs)
- Route 53
- RDS
- Bash automation
AWS account vending
Agero
Self-service AWS accounts for other teams. A team requests one and gets it already inside the organisation, with permissions, IAM roles and networking in place, billing consolidated, and its pipelines ready to deploy.
- New accounts land pre-provisioned with IAM roles, guardrails and a standard VPC layout
- Everything under one organisation with consolidated billing and central policy
- Terraform modules and CI/CD pipelines generated with the account, so a microservice can deploy on day one
- Removes the ticket queue: teams self-serve instead of waiting on platform engineering
- AWS Organizations
- IAM
- VPC
- Terraform
- CircleCI (custom Orbs)
- ECS
OpenSearch instance upgrade
Agero
Upgraded production OpenSearch from r6g.xlarge to r8g.xlarge across every environment without downtime or data loss.
- Zero downtime across all environments including production
- Migrated storage from GP2 to GP3 and coordinated with reserved-instance purchase
- 30% performance gain and 10% cost reduction
- AWS OpenSearch
- Terraform
- AWS Reserved Instances
Ephemeral environments
Agero
On-demand environments spun directly from a PR to test features before merging, with a pre-warmed RDS pool for near-instant availability.
- Pre-warmed RDS pool for fast provisioning
- End-to-end CI/CD automation to stand up an env in minimum time
- Cost-efficient, secure, hands-off cleanup pipeline
- CircleCI
- Terraform
- AWS RDS
- ECS
CircleCI Orb architecture
Agero
Designed and built the org-wide CircleCI Orb to replace HarnessCD as the deployment solution for ECS services.
- YAML configuration templates for ECS services and task definitions
- Reduced pain points in the previous deploy flow
- Improved developer experience and standardized deploys across teams
- CircleCI Orbs
- ECS
- YAML
“Herb” preview environments
Blue Apron
Preview environments that live inside the staging Kubernetes cluster, so feature branches can talk to real staging services.
- Devs can test a feature branch against the real staging surface, skipping slow test runs when wanted
- Integrates with existing CI/CD workflow, so there's no parallel system to maintain
- Kubernetes (EKS)
- Helm
- Jenkins
Fastly CI/CD pipeline with Terraform
Blue Apron
Self-serve pipeline that lets developers manage Fastly (CDN) services via Terraform without needing Terraform expertise.
- Plan-on-PR, apply-on-merge with safe gating
- Better version control, fewer security risks
- Terraform
- Fastly
- Jenkins
ElastiCache Redis migration
Blue Apron
Moved Redis instances to a different AWS account inside a strict 1-hour downtime window.
- Mapped every dependent app and service in advance
- Used Route 53 DNS records to switch traffic atomically
- Snapshot + automated migration scripts to minimize human error
- Hit the 1-hour downtime SLA
- AWS ElastiCache
- Route 53
- Bash automation
Internal Go CLI tool
Blue Apron
Go-based CLI that gave developers an ergonomic interface to AWS, Kubernetes, and internal infra.
- AWS login flow and resource access
- Friendly Kubernetes management (restarts, logs, resource views)
- Lookup tool for internal/external hostnames per app
- Secrets and keys management via AWS Parameter Store
- Go
- AWS SDK
- kubectl
Want to go deeper on any of these?
Happy to walk through the architecture and the trade-offs on a call.