█████╗ ███╗ ██╗██╗██╗ ██╗███████╗████████╗
██╔══██╗████╗ ██║██║██║ ██╔╝██╔════╝╚══██╔══╝
███████║██╔██╗ ██║██║█████╔╝ █████╗ ██║
██╔══██║██║╚██╗██║██║██╔═██╗ ██╔══╝ ██║
██║ ██║██║ ╚████║██║██║ ██╗███████╗ ██║
╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝
██████╗ ██╗ ██╗ ██████╗ ███████╗██╗ ██╗
██╔════╝ ██║ ██║██╔═══██╗██╔════╝██║ ██║
██║ ███╗███████║██║ ██║███████╗███████║
██║ ██║██╔══██║██║ ██║╚════██║██╔══██║
╚██████╔╝██║ ██║╚██████╔╝███████║██║ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝
$ ssh aniket@lily
Last login: today · from everywhere · via Tailscale -` aniket@lily
.o+` ───────────────────────────────────────────
`ooo/ OS Arch Linux x86_64 (btw)
`+oooo: Host lily · hardened self-hosted VPS
`+oooooo: Shell zsh + tmux Editor nvim
-+oooooo+: Uptime 3 yrs of shipping backends
`/:-:++oooo+:
`/++++/+++++++: Role Backend Engineer · Go
`/++++++++++++++: Focus distributed systems · cloud infra
`/+++ooooooooooooo/` Runtime goroutines · channels · contexts
./ooosssso++osssssso+` Languages Go · TypeScript · SQL · Bash
.oossssso-````/ossssss+` Data PostgreSQL · Redis
-osssssso. :ssssssso. Infra Docker · Kubernetes · Nginx · AWS
:osssssss/ osssso+++. Network Tailscale · gRPC · TCP transports
/ossssssss/ +ssssooo/- Learning K8s operators · gRPC · AWS SAA-C03
`/ossssso+/:- -:/+osssso+- Audio PipeWire → EasyEffects → USB DAC
`+sso+:-` `.-/+oso:
`++:. `-/+/ Location West Bengal, IN (UTC+05:30)
.` `/ Status focusing · open to opportunities
$ whoami --verboseBackend engineer. I build distributed systems in Go — the kind where the interesting problems are coordination, failure, and throughput rather than screens. Peer-to-peer file storage with content-addressable replication, custom TCP transports with their own handshake and framing, services that run identically under Compose, Swarm and Kubernetes.
Most of my work lives in the unglamorous middle of the stack — the part that still has to be correct at 3AM when nobody is watching. Goroutine lifecycles that don't leak, contexts that actually cancel, caches that fail open, and queries that stay in the database instead of dragging half a table into application memory to count it.
I care about three things, in this order: correctness, observability, speed. Anything that can't be measured will eventually just be believed.
$ pacman -Qe --explicitgo 1.24 # first language, still favourite
# goroutines, channels, sync, pprof
grpc ─ # protobuf contracts over http/2
postgresql 17 # cte-heavy raw sql, explain analyze, no orm heroics
redis 7 # caches, distributed locks, rate limits, pub/sub
docker 27 # everything ships in a box
kubernetes 1.32 # deployments, services, the yaml tax
nginx 1.27 # tls termination, reverse proxy, load balancing
linux ─ # arch on the desktop, ubuntu on the metal
tailscale ─ # wireguard mesh — my entire security model
aws ─ # ec2, s3, vpc, iam · studying for SAA-C03
typescript 5 # when the browser insists
$ ls -la ~/interests/drwxr-xr-x distributed-systems/ p2p topologies, replication, consistency, gossip
drwxr-xr-x go-performance/ pprof, escape analysis, allocation budgets
drwxr-xr-x concurrency/ worker pools, backpressure, graceful shutdown
drwxr-xr-x orchestration/ k8s, swarm, and what actually differs in practice
drwxr-xr-x caching/ redis patterns, invalidation, distributed locks
drwxr-xr-x observability/ metrics that matter, logs that don't lie
drwxr-xr-x self-hosting/ the topology below, and its many scars
drwxr-xr-x audio/ iem tuning, parametric eq, pipewire graphs
-rw------- .cert_grind aws solutions architect associate · in progress
$ tailscale status --topology
laptop ──┐ ┌── phone
│ │
└──────┐ ┌────────┘
▼ ▼
╔═══════════════════════════════════════╗
║ lily · ubuntu vps ║
║ ufw + fail2ban + adguard home ║
╠═══════════════════════════════════════╣
║ nginx ── wildcard tls (dns-01) ║
║ │ ║
║ ├──▶ vaultwarden secrets ║
║ ├──▶ paperless-ngx documents ║
║ ├──▶ joplin server notes ║
║ └──▶ netdata telemetry ║
║ │ ║
║ ▼ ║
║ postgresql + redis ║
╚═══════════════════════════════════════╝
public surface area: 0 ports
everything terminates inside the mesh. http-01 challenges don't work
when nothing is reachable from the internet — which is exactly the point.
$ journalctl -u aniket.service --priority=err
ERR net: container network unreachable after firewall reload
diagnosis: two firewalls rewriting the same iptables chains, with a
wireguard mesh caught in the crossfire. each layer was individually
correct and collectively fatal.
resolution: stop fighting the platform. ufw + fail2ban, let docker
own its chains, drop the container onto host networking.
ERR db: p99 latency climbing under load, cpu idle
diagnosis: aggregation happening in application memory. thousands of
rows crossing the wire so the process could count them.
resolution: push the work down. cte pipeline, one round trip, the
planner does what it was built to do.
ERR auth: redirect loop, infinite
diagnosis: a refresh timer scheduled past the 32-bit signed cap.
overflowed, fired immediately, forever. the code looked fine.
the clock was the liar.
resolution: clamp the delay, chain the timers.
INFO service restarted. lessons retained.
$ git log --stat --author="Aniket Ghosh"


