I build secure, scalable cloud platforms. 10+ years turning complex infrastructure into automated, zero-trust systems at companies like PayPal, Charter Communications, and Silicon Valley Bank.
I'm a DevSecOps Platform Lead with a deep passion for building infrastructure that's not just scalable, but secure by design. My journey spans from writing my first Ansible playbook at Accenture to leading multi-account Kubernetes platform strategy at Charter Communications.
I specialize in Kubernetes (EKS/CAPA), CI/CD pipeline security, Infrastructure as Code, and cloud-native architecture across AWS and Azure. I'm currently exploring the intersection of AI/ML and DevOps - using machine learning for anomaly detection, intelligent alerting, and automated remediation.
Recently relocated to Hyderabad, India, and open to remote/global opportunities in DevSecOps leadership, Platform Engineering, and AI-driven infrastructure roles.
Zero-trust architecture, WAF rules, YARA signatures, secrets management
Multi-account EKS with CAPA, Helm, GitOps, service mesh
ML-powered monitoring, anomaly detection, intelligent automation
GitLab CI, Jenkins, GitOps workflows with integrated security scanning
Enterprise Kubernetes platform managing 20+ clusters across multiple AWS accounts using Cluster API Provider. Includes automated provisioning, DR, and GitOps-based deployments.
Designed and deployed bastion host architecture with IAM integration, network segmentation, KMS encryption, and automated vulnerability scanning across all environments.
Led migration of 30+ on-prem Java applications to AWS containers at PayPal. Windows Tomcat to Linux Docker with full automation documentation and SOPs.
Proof of concept integrating ML models with Datadog/CloudWatch for anomaly detection, intelligent alerting, and automated remediation workflows.
Production-ready templates I use in my daily work. Feel free to adapt them.
apiVersion: apps/v1
kind: Deployment
metadata:
name: secure-api
labels:
app: secure-api
security.policy/scan: "true"
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: secure-api
template:
metadata:
labels:
app: secure-api
spec:
serviceAccountName: secure-api-sa
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 2000
containers:
- name: api
image: registry.example.com/api:v1.2.0
ports:
- containerPort: 8080
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values: ["secure-api"]
topologyKey: "topology.kubernetes.io/zone"
stages:
- test
- security
- build
- deploy
variables:
DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
unit-tests:
stage: test
image: python:3.11-slim
script:
- pip install -r requirements.txt
- pytest tests/ --cov=src --cov-report=xml
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
sast-scan:
stage: security
image: registry.gitlab.com/security-products/sast:latest
script:
- /analyzer run
artifacts:
reports:
sast: gl-sast-report.json
allow_failure: false
container-scan:
stage: security
image: docker:latest
services:
- docker:dind
script:
- docker build -t $DOCKER_IMAGE .
- docker run --rm -v /var/run/docker.sock:/var/run/docker.sock
aquasec/trivy image --exit-code 1
--severity HIGH,CRITICAL $DOCKER_IMAGE
build-push:
stage: build
image: docker:latest
services:
- docker:dind
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $DOCKER_IMAGE .
- docker push $DOCKER_IMAGE
only:
- main
deploy-eks:
stage: deploy
image: bitnami/kubectl:latest
script:
- kubectl set image deployment/app app=$DOCKER_IMAGE -n production
- kubectl rollout status deployment/app -n production --timeout=300s
environment:
name: production
when: manual
only:
- main
module "eks" {
source = "terraform-aws-modules/eks/aws"
version = "~> 19.0"
cluster_name = var.cluster_name
cluster_version = "1.28"
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnets
cluster_endpoint_public_access = false
cluster_endpoint_private_access = true
# Encryption at rest
cluster_encryption_config = {
provider_key_arn = aws_kms_key.eks.arn
resources = ["secrets"]
}
# Managed node groups
eks_managed_node_groups = {
general = {
desired_size = 3
min_size = 2
max_size = 10
instance_types = ["m6i.xlarge"]
capacity_type = "ON_DEMAND"
labels = {
role = "general"
environment = var.environment
}
update_config = {
max_unavailable_percentage = 33
}
}
spot = {
desired_size = 2
min_size = 1
max_size = 8
instance_types = ["m6i.xlarge", "m5.xlarge", "m5a.xlarge"]
capacity_type = "SPOT"
labels = {
role = "spot-workloads"
}
taints = [{
key = "spot"
value = "true"
effect = "NO_SCHEDULE"
}]
}
}
# IRSA for pod-level IAM
enable_irsa = true
tags = merge(var.common_tags, {
"kubernetes.io/cluster/${var.cluster_name}" = "owned"
})
}
resource "aws_kms_key" "eks" {
description = "EKS Secret Encryption Key"
policy = data.aws_iam_policy_document.eks_kms.json
}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-network-policy
namespace: production
spec:
podSelector:
matchLabels:
app: secure-api
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: ingress-nginx
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
egress:
- to:
- podSelector:
matchLabels:
app: postgres
ports:
- protocol: TCP
port: 5432
- to: # Allow DNS
- namespaceSelector: {}
ports:
- protocol: UDP
port: 53
- protocol: TCP
port: 53
A visual cheat-sheet and decision tree for choosing the right way to expose your Kubernetes applications.
How I built security-first GitLab CI/CD pipelines with SAST, container scanning, and dependency checks.
Building intelligent alerting with Isolation Forest and Lambda that learns from your infrastructure patterns.
California State University, Fresno · 2018-2020
JECRC University, Jaipur · 2012-2016
Udemy · Feb 2024
Udemy · Mar 2024
I'm currently looking for DevSecOps leadership, Platform Engineering, and AI/ML Ops roles. Based in Hyderabad, India, and open to remote/global opportunities.