Backend & Systems Engineer

Elvin RodriguesGo backends that hold up when the cache goes cold.

Two services in production on Go, PostgreSQL and Redis. The benchmarks, query plans and trade-offs are written down — including the known weaknesses. CS undergrad at NMAMIT, DSA Advisor at Finite Loop Club.

GET /:codetrimto.me

The short code is already in Redis.

  1. Ingressnet/http · MaxBytesReader1 req
  2. Rate limitRedis Lua · sliding-window ZSET1 round-trip
  3. CacheRedis cache-aside, allkeys-lruHIT
  4. Singleflightin-process request coalescingskipped
  5. PostgreSQLcovering index · index-only scanskipped
  6. Response302 Found → destination302
Concurrent in1
DB queries0
Redirectsub-5ms

Path and figures from the URL shortener's committed benchmarks. How it was measured

Measured, not estimated
Cache stampede
1DB query per 1,000Simultaneous misses on one cold key collapse into a single read.
Sustained load
195,357redirects, 0 errors60-second soak at 200 workers — 3,253 req/s, p99 139ms.
Singleflight A/B
+35%throughput5,871 vs 4,351 req/s on the same build, coalescing off then on.
Deploy artefact
12 MBscratch containerCGO-free static binary, down from a 604 MB build image.
01 / About

I care about what a service does on its worst day — when the cache is cold, the database is contended, and a dependency has stopped answering.

Most of what I know came from building two services end to end and then trying to break them: killing Redis in the middle of a benchmark run, firing a thousand concurrent requests at one expired key, reading the query plan instead of guessing at it. The interesting part was never the happy path.

Each project ships with a written case study — the problem, the trade-off I chose and why, the schema, and the benchmark output. Where something has a known weakness the write-up says so: the shortener's click counter still dirties the heap page that its covering index was built to avoid, and the fix is documented rather than hidden.

Alongside that I run DSA training for 150+ students at Finite Loop Club, which is where most of the C++ and the habit of explaining a trade-off out loud comes from.

Dossier
Core focus
Concurrency, queues, database internals
Languages
Go for backend · C++ for DSA
Problem solving
600+ solved · ~1700 contest rating
Campus leadership
DSA Advisor, Finite Loop Club
Academics
NMAMIT, Nitte (CSE '27) · 8.79 CGPA
Availability
Internships now · Full-time 2027
02 / Stack

A narrow toolchain, used properly.

Not a logo wall. Each entry below is something I have reached for on the hot path of a service that is running right now, and can explain the failure mode of.

01

Runtime & Concurrency

Go runtime mechanics & synchronization

  • Go (Golang)Primary backend language
  • Goroutines & ChannelsCSP concurrency model
  • Singleflight CoalescingThundering herd suppression
  • Sync PrimitivesMutex, RWMutex, WaitGroup, Once
  • Context DisciplineCancellation & timeout trees
  • Race Detectiongo test -race verification
02

Databases & Storage

Query optimization & transaction guarantees

  • PostgreSQL 15Schema design & EXPLAIN ANALYZE
  • Covering IndexesIndex-only scan optimization
  • Partial Unique IndexesSoft-deletion uniqueness
  • Redis CachingCache-aside & stampede guard
  • Redis Lua ScriptsAtomic sliding-window counters
  • Parameterized SQLNo ORM, injection-safe
03

Reliability & Tooling

Production resilience & deployment

  • Linux / Arch CLIProcess management & tooling
  • Docker Scratch12MB CGO-free static binaries
  • GitHub ActionsAutomated test & build pipelines
  • Fail-Open DegradationCache outage survival
  • Health ProbesDecoupled /healthz and /readyz
  • Load Testinghey & vegeta benchmarking
04

Foundations & CS

Algorithmic intuition & distributed design

  • C++600+ solved · ~1700 contest rating
  • System DesignLayered architecture & trade-offs
  • Operating SystemsConcurrency, scheduling & IO
  • Computer NetworksHTTP, TCP/IP, connection pools
  • Timing-Safe AuthConstant-time bcrypt verification
  • REST API ContractsChi Router v5 JSON envelopes
03 / Systems

Three systems, and what each one costs.

Every entry links to a written case study: the problem, the trade-off and its rationale, the schema, and the raw benchmark output. Where something is unfinished or has a known weakness, the write-up says so.

Concurrency & CachingLivetrimto.me

High-Throughput URL Shortener

URL shortening engine live at trimto.me — Go + PostgreSQL + Redis, with singleflight cache-aside, Lua rate limiting, and the benchmarks committed.

How it works
  • Singleflight Request CoalescingA thousand simultaneous requests for the same expired link become one database query instead of a thousand. Measured at +35% throughput versus coalescing off.
  • Fail-Open Under Cache OutageIf Redis disappears the redirect path falls back to PostgreSQL rather than returning 500s. Benchmarked with Redis killed mid-run.
  • Covering Index for Heap-Free ReadsThe lookup index carries the destination in its leaf pages, so a redirect resolves without touching the table — with a documented caveat about the click counter.
Measured
Singleflight A/B
+35% throughput5,871 vs 4,351 req/s; p99 448ms → 364ms (controlled, same build)
Stampede Guard
1 DB queryPer 1,000 concurrent misses on the same cold key
60s Soak
195,357 reqs3,253 req/s sustained, p99 139ms, zero errors
Binary Footprint
12 MBCGO-free static scratch container
GoPostgreSQLRedisDockerRate LimitingCachingSingleflight
Clean Architecture & SecurityLivecontact-manager-fawn-alpha.vercel.app

ContactHub Backend Service

Full-stack contact management engine live at contact-manager-fawn-alpha.vercel.app — Go clean architecture, bcrypt crypto, and partial unique indexing.

How it works
  • Timing-Safe Account Enumeration DefenceAn unknown email still pays the cost of a bcrypt comparison against a dummy hash, so response time cannot be used to discover which accounts exist.
  • Partial Unique Index on Soft DeletePhone uniqueness is scoped per user and to live rows only, so a deleted contact can be recreated or restored without colliding with its own tombstone.
  • Instant Session Revocation Without RedisA token_version column in PostgreSQL is carried in the JWT claims; a password reset increments it and every previously issued token stops validating.
Measured
Clean Architecture
4 LayersHandler → Service → Repo → Domain
Auth Defense
Timing-SafeConstant-time dummy bcrypt verification
Data Isolation
Partial IndexScoped WHERE deleted_at IS NULL
Shipped Endpoints
20 APIsFull-stack CRUD, Auth, Admin & Health
GoPostgreSQLDockerJWTREST APIClean Architecturebcrypt
Distributed Systems & ConcurrencyIn Progress

Concurrent Distributed Job Queue

Go + PostgreSQL queue engine using FOR UPDATE SKIP LOCKED for contention-free job claiming, with priority dispatch and orphan recovery.

How it works
  • Contention-Free Claiming with SKIP LOCKEDWorkers skip rows another worker already holds instead of queueing behind them, so adding workers adds throughput. A test asserts exactly one worker claims a given job.
  • Crash Recovery via Orphan ReaperJobs left in processing past a timeout are swept back to pending. Simpler than a heartbeat protocol, and it fails safe: a job may run twice, so processors must be idempotent.
  • Per-Job Panic RecoveryA panicking processor is recovered and recorded as a job failure rather than taking down the worker goroutine and the rest of the pool with it.
Measured
Worker Contention
SKIP LOCKEDWorkers never block on each other's rows
Execution Engine
Goroutine PoolContext cancellation & graceful shutdown
Crash Recovery
Orphan ReaperTimed-out claims return to pending
GoPostgreSQLDistributed SystemsConcurrencyQueues
Read the case studySource on request
04 / Milestones

Where the practice came from.

Campus technical leadership at Finite Loop Club and a computer science degree at NMAMIT, in reverse order.

2026 — PresentAdvisory Board

DSA Advisor

Finite Loop Club · NMAMIT

Elevated to the senior Advisory Board after serving as DSA Coordinator. Directing algorithmic training, structuring advanced dynamic programming and graph curriculums, and mentoring 150+ student engineers in competitive problem-solving.

2025 — 2026Core Committee

Core Committee · DSA Coordinator

Finite Loop Club · NMAMIT

Selected into the student Core Committee after a year of active club contributions. Coordinated weekly campus algorithmic workshops, organized coding contests, and delivered sessions on time-space complexity and foundational data structures.

2024 — 2025Member

Club Member

Finite Loop Club · NMAMIT

Joined Finite Loop Club as an active member, participating in campus hackathons, weekly competitive coding rounds, and collaborative peer learning circles.

2023 — 20278.79 CGPA

B.Tech, Computer Science & Engineering

NMAM Institute of Technology, Nitte

Coursework in Operating Systems, DBMS, Computer Networks and Systems Software, alongside 600+ solved algorithmic challenges and a ~1700 LeetCode contest rating.

05 / ContactOpen

Hiring for a backend team? Let's talk.

I am looking for a backend engineering internship now, and full-time work from 2027. Based in Nitte, Karnataka — open to relocating or working remotely. The fastest way to reach me is email; I reply to everything.

ELVINRODRIGUES.DEV
ERElvin Rodrigues

Backend Engineer focused on Go, PostgreSQL, Redis, and distributed systems.

CURRENTLY BUILDINGConcurrent Distributed Job Queue
Go + PostgreSQL FOR UPDATE SKIP LOCKED
AVAILABLE FOR
Backend Engineering · Distributed Systems · Infrastructure
Nitte, India · Relocation / Remote (2027)
© 2026 Elvin Rodrigues · Nitte, Karnataka, IN
Back to top