a deep dive into aws's microvm technology that powers lambda and fargate
liju thomas
site reliability engineer at aion.
i build infra, ship fast, and keep things simple.
open for side hustles.
kalladikode, kerala, india · ist
work
sre at aion.xyz · bangalore, 2025–ongoing
- platform engineering: kubernetes on eks provisioned with terraform, autoscaling with karpenter, and gitops with argocd + helm
- sre, covering observability, incident response, capacity planning, and reliability engineering
- operating the full o11y stack: prometheus, loki in distributed mode, and grafana
- architected the cluster, networking, and observability (tempo tracing, oidc) for project meridian, aion's terraform-managed eks platform built for rezolve
- added canary deployments via argo rollouts on the helm chart, flexible enough to run real traffic shaping through nginx ingress or plain pod-count shaping through kube-proxy alone, with prometheus-backed analysistemplates for automated analysis runs
- built the go agent installed on every aion node, pulling user-submitted tasks through systemd/k8s task drivers, with sqlite+wal for local state, full audit logging, and m2m bootstrap auth; also built the grpc backend services behind it alone, on postgres, exposed through grpc-gateway
- traced gpu vm spin-up time end to end, through api timestamps, k8s events, virt-launcher/qemu logs, and cloud-init blame timing, then found the chokepoints and reworked the flow for a 10% gain
- added a cache pvc for the notebook addon, using cdi smart-clone on longhorn and uv for fast installs, cutting its spin-up time
- built the marimo notebook addon for aion's gpu vms, plus port forwarding for them, using nginx for port exposure and network policies for isolation
- building microservice systems in go, working on the kong api gateway, event-driven services, and grpc
- built aion-cli alone in go, with cobra and a bubbletea/lipgloss tui, covering ~90% of aion's core apis
- worked on aion's console (next.js): gpu/k8s provisioning flows, rjsf-driven config forms, zustand + indexeddb state, shipped across many releases
intern at brototype · kochi, 2024–2025
- built zenx, a competitive coding platform, from scratch: go, typescript, react, grpc, nats, docker sandboxing, postgres, mongodb, redis, prometheus, grafana, aws, gcp, kubernetes
projects
zenx — competitive coding platformsource code: github.com/zenxbattle
go, typescript, react, gRPC, nats, docker sandbox, postgres, mongodb, redis, prometheus, grafana, aws, gcp, kubernetes
- api gateway: go + gin, the single rest entrypoint proxying grpc to every service, with prometheus metrics, ip-based rate limiting, and a ristretto cache used as a jwt blacklist store
- auth & user service: grpc, postgres via gorm, redis session cache, jwt issuance and rotation, totp-based 2fa, role-based admin controls
- problem service: mongodb for problems and test cases, redis cache, nats for async solution validation, redisboard for problem-level leaderboards
- code execution engine: docker-sandboxed judging for python, javascript, c++, and go, dispatched through a nats-driven worker pool
- challenge service: local in-process state for live battles, redis-backed shared state, leaderboard backed via redisboard (sorted linkedlists), reads fall back to mongo once a challenge's been archived, graceful shutdown flushes completed challenges to mongo for permanent history and snapshots current matches in redis to .rdb
- frontend: react 19, vite, typescript, shadcn/ui, a real-time battle arena over websockets using a dispatch pattern
- commonproto: a global proto store, the single source of truth for every service's grpc contracts
- infra: terraform for cloud bootstrap and core (vpc, ecr, route53, eks), k3s + kustomize on-prem, argocd gitops, prometheus/grafana monitoring
redisboard — redis-backed leaderboard librarysource code: github.com/lijuuu/redisboard
go, redis
- atomic, pipelined score updates and o(log n) top-k / rank queries over redis sorted sets
- namespaced per leaderboard, built to scale to ~1m users and 200 entities
- the leaderboard engine behind zenx's problem and challenge services
foodbuddy — food ordering & restaurant platformsource code: github.com/lijuuu/foodbuddymonolithbackend
go, gin, mysql, gorm, grpc, docker, kubernetes
- started as a go + gin monolith: gorm/mysql, google oauth, jwt sessions, stripe + razorpay payments, cloudinary uploads, smtp notifications
- re-architected into grpc microservices (api gateway, user, restaurant + product, order + cart, admin auth), with a centralized proto repo as the shared contract source
shrtn — a url shortener built to scalesource code: github.com/lijuuu/shrtn
python, django, postgres, redis, scylladb
- postgres for entity data: users, organizations, namespaces, url metadata
- redis as a cache layer in front of the hot paths
- scylladb holds the short-url lookup table itself, since resolving a short code is the highest-read path by far
- partitioned by (namespace, shortcode), a single-partition-key lookup with predictable routing per redirect, plus a separate click-analytics table clustered by date, since scylla's wide-column model is well suited to high-volume, append-heavy event workloads
logito — a log ingestion platformsource code: github.com/lijuuu/logito
go, gin, react, typescript, postgres, elasticsearch, mongodb
- ingestion path: a batcher flushing on size or a timer, a worker pool with retries and backoff writing to postgres via copy, object pools and gc tuning to cut allocation overhead, and a mongo dead-letter queue for anything invalid or timed out instead of dropping it
- a separate query service indexes postgres into elasticsearch, gated behind a real cluster health check so it backs off instead of indexing into a degraded cluster, with manual dlq reprocessing back into postgres
- frontend: react + typescript, with a near-live view of the log stream drawn straight onto a canvas over a websocket feed, color-coded by level
- load-tested on a resource-capped setup matching its own compose limits: scaling to ~50-55k logs/sec at batch size 200, zero failures