I'm a software development engineer with ~10 years of experience spanning backend engineering, cloud‑native infrastructure, and DevOps automation. I love turning complex problems into elegant, reliable systems — and learning something new every day.
| Domain | Tools & Languages |
|---|---|
| Languages | Java, Python, C/C++, JavaScript/TypeScript, Go |
| Cloud / DevOps | AWS, Kubernetes (K3s & EKS), Terraform, Flux CD, Ansible |
| Observability | Prometheus, Grafana, Loki |
| Networking & Infra | Proxmox, OPNsense, MetalLB, Traefik, BIND9 |
| Data | DynamoDB, PostgreSQL, Redis |
| Learning | Algorithms & Data Structures, System Design, Low‑Level Programming |
My portfolio site is a fully serverless application on AWS, deployed via GitHub Actions with OIDC — no static credentials.
graph TB
subgraph Edge
DNS[Route53 DNS]
WAF[WAFv2 Rate Limiting]
CF[CloudFront CDN]
CFFunc[CloudFront Function<br/>SPA Rewrite + Subdomain]
end
subgraph Origins
S3[S3 Static Site<br/>React SPA + Prerendered HTML]
APIGW[API Gateway REST<br/>API Key Auth]
end
subgraph Compute
LInt[Lambda: Interactions<br/>Likes & Comments]
LCon[Lambda: Contact<br/>Email via SES]
LAdm[Lambda: Admin<br/>Comment Moderation]
LAuth[Lambda: Authorizer<br/>Basic Auth]
end
subgraph Storage
DDB[(DynamoDB<br/>Single-Table Design)]
SSM[SSM Parameter Store<br/>Admin Credentials]
SES[SES v2<br/>Transactional Email]
end
subgraph Observability
COG[Cognito Identity Pool<br/>Unauth RUM Access]
RUM[CloudWatch RUM<br/>100% Sampling]
BG[Budget Guard<br/>$10/mo Hard Stop]
EB[EventBridge Cron<br/>Monthly Reset]
LRes[Lambda: Reset<br/>Detach Deny Policy]
end
subgraph CI/CD
GHA[GitHub Actions<br/>OIDC Auth]
TF[Terraform]
ART[S3 Artifacts Bucket]
end
DNS --> WAF --> CF
CF --> CFFunc --> S3
CF -->|/api/*| APIGW
APIGW --> LAuth
APIGW --> LInt & LCon & LAdm
LInt & LAdm --> DDB
LCon --> SES
LAuth --> SSM
GHA --> TF --> Origins & Compute
GHA -->|Lambda Zips| ART
GHA -->|S3 Sync| S3
S3 -.->|RUM Telemetry| COG --> RUM
BG -.->|Deny Policy| COG
EB --> LRes -.->|Detach Deny| COG
Key design decisions:
- SPA with prerendering — React Router 7 generates static HTML at build time for SEO; client-side navigation after hydration
- Single-table DynamoDB — likes, comments, and moderation state in one table with composite keys
- CloudFront error handling — only 404 triggers SPA fallback (not 403), so API error responses pass through correctly
- IP deduplication — extracts first IP from
X-Forwarded-Forchain for like toggle tracking - RUM budget guard — $10/month hard stop via AWS Budgets action that attaches a deny policy to the Cognito role; auto-resets monthly via EventBridge + Lambda
Three public repositories: jyatesdotdev-frontend (React SPA), jyatesdotdev-api (Go Lambdas), jyatesdotdev-infra (Terraform). A private bootstrap repo manages account-level resources (OIDC provider, deploy role, state/artifacts buckets).
An interpreter written in C to teach myself data structures and algorithms from the ground up — syntax inspired by Python, with an interactive REPL and AST visualizer.
Terraform + Flux CD modules that provision and continuously reconcile a self‑hosted K3s cluster (Traefik ingress, MetalLB, external‑dns, BIND9, DHCP, VLAN segmentation, and more).
Interactive maze/graph explorers (DFS/BFS, Manhattan distance tweaks) built with Python + JavaScript to make algorithm study tactile and fun.
I document my journey — successes and face‑plants — through blog posts, code comments, and discussions. Current deep‑dives include:
- Distributed systems & consensus primitives (Raft, TO‑Bcast)
- Performance tuning for JVM & Go micro‑services
- Spaced‑repetition workflows for continuous learning
I'm always excited to chat about infrastructure, dev tooling, and projects that make an impact. Feel free to open an issue, start a discussion, or just say hi.
"Spot the bottleneck, learn fast, ship the fix."