Deploying a Go service to AWS ECS: a practical walkthrough
Infrastructure, CI/CD with OIDC, ECR lifecycle quirks, and what actually drives rolling-deploy speed on ECS with an ALB — including health checks, ENI limits, and deregistration delay.
Writing on software engineering, backend systems, and things I learn along the way.
Infrastructure, CI/CD with OIDC, ECR lifecycle quirks, and what actually drives rolling-deploy speed on ECS with an ALB — including health checks, ENI limits, and deregistration delay.
How I provisioned an AWS EC2 instance with Terraform, configured SSH access, installed Gitea, connected MariaDB, and put Nginx in front as a reverse proxy.
How we migrated from a single-process restart deployment to safer, zero-downtime blue/green releases on a self-hosted Linux server.
How I shipped a production-grade WebSocket chat service—Hub pattern, presence tracking, and memory-safe design—on Day 26 of my 100-day coding streak.
Production MySQL was slow and timing out—not mainly because of size, but because 119 sleeping connections had leaked and starved the pool. How we found them, added a read replica, and automated cleanup.
A complete auth microservice in Go: JWT access/refresh with hybrid token storage, Google/GitHub OAuth2, bcrypt passwords, password reset email flows, Redis workers, ECS Fargate, Prometheus, and OpenTelemetry.
Background jobs in Go with Redis-backed queues, goroutine worker pools, graceful shutdown, and patterns that hold up in production.
Designing a URL shortener in Go with Chi, PostgreSQL, Base62 short codes, multi-stage Docker builds, AWS ECS Fargate, and Prometheus metrics.
Why Kubernetes Secrets fall short, how Vault fixes audit, rotation, and access control, and how agent sidecar injection works in practice.
Use Helm charts and values files so one app deploys cleanly to dev, staging, and prod without copy-pasted YAML.
Make Git the single source of truth for cluster state: no more kubectl apply from your laptop, with audit trails and drift correction.
Instrument a Node.js app, deploy Prometheus and Grafana with Helm, and build dashboards around latency, traffic, and errors.
Deploy a Node.js API to Kubernetes with GitHub Actions, rolling deployments, and zero downtime—the way teams do it in production.
Plain files in git stay simple, portable, and easy to review.
A quick hello from the new markdown-powered blog on this site.