Projects

Infrastructure, pipelines, and things that ship

Selected DevOps work — AWS, Kubernetes, Terraform, and CI/CD loops I've built end to end.

ASTERRA DevOps Assignment

AWS pipeline for GeoJSON ingestion: S3 upload triggers a Lambda that parses the data into a PostGIS-enabled RDS instance, with an ECS Fargate service behind an ALB serving it. Multi-AZ VPC, bastion host, and the full stack provisioned with Terraform.

TerraformAWS LambdaRDS / PostGISECS Fargate

AWS EKS Infrastructure with Terraform

Modular Terraform that provisions a VPC, EKS cluster, and ECR from scratch, with a Flask app containerized, pushed to ECR, and deployed to the cluster via a Helm chart.

TerraformEKSHelmDocker

FastAPI Service on EKS

A FastAPI service with Prometheus instrumentation, deployed to an EKS cluster provisioned with Terraform (VPC, IAM, IRSA, KMS-encrypted etcd), with Jenkins pipelines handling build and deploy.

FastAPITerraformEKSJenkinsPrometheus

Rick & Morty K8s Pipeline

A small Flask/REST service that fetches and filters characters from the Rick and Morty API, packaged with a Docker image, Kubernetes manifests, a Helm chart, and a CI pipeline running smoke tests end to end.

KubernetesHelmDockerGitLab CI/CD

Monorepo CI Pipeline

A Jenkins pipeline for a monorepo housing three services in different languages (Node.js, Python, Go). It detects which service changed and runs lint, test, and scan stages only for that service.

JenkinsDockerNode.jsPythonGo

DevOps CI/CD Pipeline — Flask on AWS

An end-to-end delivery pipeline: a push to GitLab triggers Jenkins to lint, test, and build a Docker image, push it to Docker Hub, then roll it out to an EC2 app server, with infrastructure provisioned by Terraform.

JenkinsDockerTerraformAWS EC2

Floating IP Monitor & HA Cluster

A 3-node Docker cluster behind a floating IP, with Jenkins monitoring node health and supporting manual failover between nodes to keep the service reachable.

DockerJenkinsLinux