Available for opportunities

Building Resilient Cloud Systems

Multi-Cloud DevOps Engineer crafting scalable infrastructure, CI/CD pipelines, and container orchestration across AWS · Azure · GCP

3+ Cloud Platforms
9+ Projects Built
8.88 CGPA
ranjit@devops ~ $
$ kubectl get pods --all-namespaces
✓ 12/12 pods running
$ terraform apply -auto-approve
✓ 8 resources added
$ docker build -t app:v2.1 .
✓ Successfully built a8f3b21c
$ ansible-playbook deploy.yml
✓ PLAY RECAP — ok=14 changed=3
scroll

Engineering reliability into every layer

I'm a Motivated Multi-Cloud DevOps Engineer with hands-on experience across AWS, Azure and GCP. My work sits at the intersection of infrastructure automation and developer experience — making deployments faster, systems more resilient, and operations invisible.

Skilled in Linux administration, CI/CD automation, Docker & Kubernetes orchestration, Infrastructure as Code using Terraform, and observability stacks using Prometheus & Grafana. I believe infrastructure should be code — versioned, tested, and reviewed like any software.

AWS Certified Kubernetes GitOps SRE Practices

Technical Arsenal

Cloud Platforms

  • AWS — EC2, S3, IAM, VPC, RDS
  • AWS — ELB, ASG, CloudWatch, ECR
  • Microsoft Azure
  • Google Cloud Platform (GCP)
AWS
Azure
GCP

Containers & IaC

  • Docker & Docker Compose
  • Kubernetes (EKS, self-managed)
  • Terraform — modular design
  • Ansible — configuration mgmt
Docker
Kubernetes
Terraform

CI/CD & Monitoring

  • Jenkins & GitHub Actions
  • GitLab CI/CD pipelines
  • SonarQube — code quality
  • Prometheus & Grafana
Jenkins
GitHub Actions
Grafana
Linux Bash Git Maven Nginx MySQL Python YAML Helm AWS Lambda NAT Gateway IAM Flask Gunicorn CloudFront

Featured Work

01

Cloud-Native CI/CD Pipeline on AWS EKS

JenkinsECREKSTerraformSonarQubeDockerMavenGitLab

Designed and implemented a complete end-to-end DevOps pipeline that takes code from a developer's commit all the way to a live Kubernetes deployment without any manual intervention. The pipeline integrates GitHub and GitLab webhooks with Jenkins to automatically trigger Maven builds the moment code is pushed. Every build runs through SonarQube static analysis with quality gates configured — a failed gate stops the pipeline before a bad image ever gets created.

Once a build passes, Docker packages the application and the versioned image is pushed to Amazon ECR. Jenkins then applies the updated Kubernetes manifests to an Amazon EKS cluster using rolling update strategies, ensuring zero downtime during releases. Horizontal Pod Autoscaling is configured against CPU and memory thresholds so the cluster scales workloads automatically as traffic changes. Every AWS resource — VPC, subnets, EKS node groups, IAM roles, ECR repositories — is provisioned via modular Terraform, meaning dev, staging and production environments can be spun up from the same codebase with environment-specific variable files.

Zero-downtime rolling deployments on EKS
HPA scaling on CPU & memory metrics
SonarQube quality gates block bad builds at source
Modular Terraform for consistent multi-env parity
02

Secure Three-Tier AWS Architecture

VPCEC2RDSS3ALBIAMNAT GatewayACM

Architected a production-grade three-tier AWS environment with strict network segmentation designed around the principle of least privilege at every layer. The public subnets host only the Application Load Balancer and NAT Gateway — nothing else is directly internet-reachable. EC2 application servers live in private subnets with no public IP addresses, accessing the internet only through the NAT Gateway for package updates and outbound calls. The database tier runs Amazon RDS MySQL in Multi-AZ configuration across two Availability Zones with automated failover, also in private subnets with no route to the internet.

S3 is used for static asset delivery and backup storage, secured with IAM bucket policies enforcing deny-all-except-explicitly-allowed patterns and server-side AES-256 encryption. The Application Load Balancer terminates SSL using ACM-managed certificates and routes traffic using path-based rules, so a single ALB can serve multiple application endpoints. Security groups between each tier are tightly scoped — the web tier only accepts HTTPS from the internet; the app tier only accepts connections from the web tier's security group; the database tier only accepts MySQL port from the app tier.

Multi-AZ RDS with automated standby failover
ALB with ACM SSL termination & path routing
S3 server-side encryption & lifecycle policies
Zero public exposure for application and database tiers
03

Automated Monitoring for Auto Scaling Groups via Ansible & Lambda

AnsibleAWS LambdaEC2 ASGPrometheusGrafanaCloudWatch Events

Solved a fundamental problem with ephemeral infrastructure: when new EC2 instances spin up inside an Auto Scaling Group during a traffic spike, they need Node Exporter installed and Prometheus needs to know they exist — all without anyone manually running commands. This project automates that entire workflow so monitoring coverage is maintained regardless of how the fleet scales.

Ansible playbooks were written to install and configure Node Exporter across Linux servers, with custom labels embedded directly in the playbook to ensure each instance is correctly identified in Prometheus scrape targets. EC2 tags on the Auto Scaling Group are configured so every new instance inherits consistent naming conventions at launch time. An AWS Lambda function is subscribed to CloudWatch Events for the EC2 Instance Launch Successful event — the moment a new node comes up, Lambda fires, SSM Run Command triggers the Ansible playbook on that instance, and within minutes Node Exporter is running and Prometheus has picked it up via dynamic service discovery. Grafana dashboards aggregate metrics from the entire fleet in real time, so during scale-out events operators have full visibility without any manual steps.

Lambda auto-triggers Ansible on every new ASG instance
Dynamic Prometheus discovery — no manual scrape config
Grafana dashboards across the full scaled fleet
Monitoring consistency maintained through scale-in & out
04

Serverless Data Processing Pipeline

AWS LambdaS3CloudWatchIAMPython

Built a fully serverless ETL pipeline where S3 event notifications act as the trigger mechanism — the moment a file lands in the input bucket, an AWS Lambda function is invoked automatically with no polling, no queues to manage, and no servers to maintain. The Lambda functions, written in Python, handle the full processing lifecycle: reading the incoming file, validating the data structure, applying transformation logic, and writing the processed output to a separate S3 bucket.

Every Lambda execution emits structured JSON logs to CloudWatch Logs, making debugging and audit trails straightforward. CloudWatch Alarms are configured on Lambda error rates, throttle counts and p99 duration so any degradation triggers an alert before it becomes user-facing. All IAM execution roles follow resource-level least-privilege — each function's policy specifies exact S3 ARNs for read or write, with no wildcard actions or resources anywhere in the permission set. The result is a zero-maintenance, auto-scaling data pipeline that handles variable file volumes without provisioning or managing a single EC2 instance.

S3 event-driven Lambda invocations — zero polling
Structured CloudWatch logging with alarm thresholds
Zero-server ETL — fully serverless, auto-scaling
Resource-level least-privilege IAM per function
05

Multi-Environment Infrastructure with Terraform & GitLab CI

TerraformGitLab CI/CDVPCEC2IAMS3 BackendDynamoDB

Built a reusable Terraform module library covering VPC, EC2, IAM and RDS that provisions three fully isolated environments — dev, staging and production — from a single codebase. Each environment is parameterised through Terraform variable files, so the same module code creates a small t3.micro dev setup and a production-grade Multi-AZ deployment without any code duplication. Remote state is stored in S3 with DynamoDB state locking, which prevents two engineers from running terraform apply simultaneously and corrupting state.

GitLab CI/CD is wired into the Terraform workflow: every merge request automatically runs terraform plan and posts the output as a pipeline artifact so reviewers can see exactly what infrastructure will change before merging. Merging to main runs terraform apply behind a manual approval gate — a human has to click approve before any infrastructure is actually modified. IAM roles are scoped per environment, meaning a credential leak in dev cannot affect staging or production resources.

S3 + DynamoDB remote state locking across teams
GitLab CI runs plan on PR, apply requires manual gate
Reusable modules across dev, staging & production
Per-environment IAM roles for complete blast-radius isolation
06

High-Availability Web App with ELB & RDS Multi-AZ

ELBEC2ASGRDS Multi-AZCloudWatchSNSVPC

Deployed a web application designed around the assumption that any single component can fail at any time — and the system keeps running without user-visible impact. Traffic enters through an Elastic Load Balancer spread across two Availability Zones, distributing requests to an Auto Scaling Group of EC2 instances. The ASG uses ELB health endpoint checks rather than just EC2 status checks, so an instance that's running but returning 5xx errors gets replaced automatically rather than silently serving errors.

The database layer uses Amazon RDS Multi-AZ, which keeps a synchronous standby replica in a second Availability Zone. If the primary fails — hardware issue, AZ outage — RDS promotes the standby and updates the DNS endpoint within 60 seconds, with no application configuration changes required. CloudWatch dashboards give real-time visibility into ELB request rates, 5xx error percentages and RDS replication lag. SNS notification topics are wired to CloudWatch Alarms so on-call engineers receive immediate alerts when error rates spike or replication lag climbs, well before users are impacted.

ELB across 2 AZs with application health endpoint checks
ASG auto-replaces unhealthy EC2 instances without downtime
RDS Multi-AZ automatic failover under 60 seconds
SNS alerts on 5xx rate spikes and replication lag
07

Microservices Containerisation with Docker & Kubernetes

DockerDocker ComposeKubernetesHelmNginx IngressPrometheusGrafana

Containerised a full multi-service application stack — Nginx frontend, backend REST API and MySQL database — so that the local development environment is byte-for-byte identical to what runs in production. Docker Compose handled local orchestration with service networking, named volumes and environment variable injection. Each service was packaged into a versioned image and stored in a private registry, ensuring deployments reference exact image SHAs rather than mutable tags.

The migration to Kubernetes used hand-crafted manifests rather than auto-generated YAML: Deployments with carefully tuned resource requests and limits, Services for intra-cluster networking, ConfigMaps for application configuration, Secrets for credentials, and PersistentVolumeClaims for the MySQL data directory. Helm charts were authored on top of those manifests to support parameterised releases — the same chart deploys to a test namespace with minimal resources and to production with full replica counts by swapping value files. Nginx acts as the Ingress controller handling path-based routing and SSL passthrough. Prometheus scrapes pod-level metrics via ServiceMonitor custom resources and feeds Grafana dashboards tracking container CPU, memory usage, HTTP request rates and error budgets in real time.

Docker Compose for dev / Kubernetes manifests for prod
Helm charts with per-environment value overrides
Nginx Ingress with path-based routing and SSL
Prometheus + Grafana full container observability stack
08

GitOps Delivery Pipeline with ArgoCD & Kubernetes

ArgoCDKubernetesHelmGitHub ActionsDockerSonarQubeAnsible

Established a fully GitOps-driven delivery model where the Git repository is the authoritative source of truth for all cluster state — no kubectl commands, no manual deployments, no configuration drift. The workflow is split cleanly between CI and CD: GitHub Actions owns the CI phase, running Maven builds, SonarQube quality gates and Docker image builds. On a successful build, the CI pipeline commits the new image tag back to the Helm chart in the configuration repository rather than applying it directly to the cluster.

ArgoCD monitors the configuration repository and detects when the desired state diverges from what's running in the cluster. It automatically syncs the new image tag and applies the updated Helm chart to Kubernetes. Self-healing is enabled on the ArgoCD Application CRD, so any out-of-band manual change to the cluster — an engineer editing a Deployment directly with kubectl — is automatically reverted to match what's in Git within seconds. Ansible playbooks handle the day-zero Kubernetes node bootstrapping: installing the container runtime, applying kernel parameters and joining nodes to the cluster with no manual SSH steps. Rollbacks are a one-line Git revert — the history is auditable, the recovery is deterministic.

ArgoCD self-healing — out-of-band drift reverted instantly
GitHub Actions CI commits new image tags back to Git
SonarQube quality gates block bad code before any deploy
Ansible bootstraps Kubernetes nodes — zero manual steps

Academic Background

🎓
Master of Computer Applications (MCA) ABIT, Cuttack CGPA — 8.88 / 10
📘
Bachelor's Degree Utkal University Graduated

Let's Build Together

Open to full-time roles, freelance infrastructure projects, and consulting. Drop me a message — I respond within 24 hours.