Projects
Selected work — the problem, the approach, and what changed as a result.
EMR Serverless development environment
Written up in 4 partsProblem. Spark/ETL workloads needed a place to run and be tested without standing up and paying for long-lived EMR clusters, and without every engineer hand-rolling their own setup.
Approach. Built a reproducible EMR Serverless environment defined entirely in Terraform — networking, IAM, and job configuration — plus a practical test suite so jobs could be exercised the way a developer actually works.
Outcome. A repeatable dev environment that spins up on demand, with the networking, permissions, and observability gaps documented so the next person doesn't rediscover them.
Monolith to cloud-native on AWS
Problem. A monolithic application needed to move to AWS without a lift-and-shift that would carry its operational problems along with it.
Approach. Architected the target infrastructure as code with AWS CDK (Python), evaluated ECS against EKS for the workload rather than by preference, and migrated ETL jobs off Qubole onto AWS EMR.
Outcome. A cloud-native architecture with infrastructure under version control and monitoring in place from day one instead of bolted on later.
Chef to Ansible migration at scale
Problem. A large private-cloud VM fleet was managed with Chef, which had become the bottleneck for both onboarding and change velocity.
Approach. Led the migration to Ansible, automated golden-image creation with Packer, and wired secrets management through Azure Key Vault and CyberArk so credentials never lived in playbooks.
Outcome. A single configuration-management path for the fleet, with image builds and deployments automated through Azure DevOps pipelines.
Kubernetes platform with Istio
Problem. Multiple services needed a consistent deployment target, traffic management, and observability that didn't depend on tribal knowledge.
Approach. Managed Kubernetes clusters with Helm and Istio, defined infrastructure in Terraform and Pulumi (TypeScript), and built out monitoring with Datadog, Prometheus, and Grafana.
Outcome. A platform where deployments and traffic policy were declarative, and production issues could be traced instead of guessed at.