Projects

Selected work — the problem, the approach, and what changed as a result.

EMR Serverless development environment

Written up in 4 parts

Problem. 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.

EMR Serverless Terraform Spark Python

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.

AWS CDK ECS / EKS EMR Datadog

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.

Ansible Packer Azure Key Vault CyberArk

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.

Kubernetes Istio Helm Pulumi Prometheus