Work · 2020–2022 · 🌍Remote

Senior SDE / Tech Lead

GoDaddy

Joined GoDaddy through the Uniregistry acquisition. Promoted to Tech Lead mid-cycle for leading GoDaddy’s AWS migration team — its first AWS deployment of a new internal Golang stack, delivered with three mid-level engineers.

Platform & infrastructure

  • Architected the stack’s AWS infrastructure on ECS and EKS; served as the team’s AWS expert.
  • Built platform components — Service Catalog products, helm charts, CloudFormation templates — that other GoDaddy teams later picked up.
  • Contributed to GoDaddy’s internal Go web framework, auth libraries, and APM tooling.
  • Owned reliability and security practices for the new Kubernetes workloads.

CI/CD & containerization

  • Set up containerization for the Golang services from scratch — learned docker in depth, wrote Dockerfiles with carefully ordered caching layers, and used docker to build images for both CI and local development.
  • Built GitHub Actions pipelines that build the container images and publish to both GitHub Container Registry (GHCR) and AWS ECR.
  • Drove deployments with a GitOps workflow, so the cluster state followed what was declared in git.

Cluster operations & upgrades

  • Used k9s to debug live workloads on both the ECS and EKS clusters.
  • Experimented with blue-green deployments, and upgraded the EKS cluster version via a blue-green cutover — stood up a new cluster on the target version, shifted traffic across, then retired the old one.
  • ECS had an automated upgrade flow; EKS upgrades had to be done manually, which is exactly why the version bump went through the blue-green path.

Streaming & event processing

A core piece of the stack was an event pipeline built on Amazon Kinesis. Domain and registry events were published to a Kinesis stream, and we consumed from it with a fleet of AWS Lambda functions that fanned the data out to the downstream services that needed it.

  • Wrote the Lambda consumers in both Go and Python — Go for the throughput-sensitive, latency-sensitive consumers, and Python where we wanted to iterate quickly and lean on existing libraries.
  • Tuned shard counts, batch sizes, and parallelisation so consumers kept pace with the stream under load, with retry and dead-letter handling for poison records.
  • Wired the consumers into the same CloudFormation / Service Catalog deployment story as the rest of the stack, so other teams could stand up their own Kinesis consumers the same way.