Sarbojit
Rana

ECEB.Tech ’27

Backend Systems Engineer

Open to SDE / Backend Roles (IND) — Remote or On-site
NIT—A
SEC 01

Overview

General characteristics

I build the part nobody screenshots. Most of what I ship is a Go service behind an Echo router, with Postgres underneath and Redis in front of it for caching and background jobs — plus OpenSearch for when Postgres full-text stops being enough, and a fallback for when the index isn't there.

The other half is command-line tools. A port-drift watcher that reads /proc/net directly, a Codeforces client that fits in a terminal, a PII redactor that unzips OOXML and scores its own precision and recall. No runtime dependencies, one binary, exit codes that mean something.

Most recently I spent a summer at the National Informatics Centre, building a configurable JSON parser service in Go that maps workflow event payloads onto Postgres schemas defined in a spreadsheet — so adding a service is a row, not a deploy.

NameSarbojit Rana — sarbojitrana
RoleBackend engineer — services & CLI tooling
RecentSWE Intern (Backend), National Informatics Centre
May 2026 – Jun 2026 · completed · Go, Echo, PostgreSQL, Tern
EducationNIT Agartala — B.Tech ECE, 2023–2027
CGPA 8.03 / 10.0 (6th sem)
PrimaryGo · PostgreSQL · Redis · Echo · pgx
SecondaryTypeScript · Next.js · Node · C++ · Python · Bash
InfraOpenSearch · Asynq · S3/R2 · Tern · Docker · Linux
ContestsCodeforces max 1427 · LeetCode peak 1955
Meta Hacker Cup 2025 R2 — global 1783
StatusAvailable — new-grad & internship, 2027 start
SEC 02

Request path

Live model — press send

This is the middleware chain from Nexus, running for real in your browser — same order, same token bucket, same cache-aside. Send once and watch it walk. Send eight times fast and the bucket empties, and the rate limiter answers 429 before your request ever meets the database.

GET /v1/communities/golang/posts idle
Edgeecho routertls · h2
Rate limitredis token bucket5 / 5
Authclerk jwtjwks cached
RBACcommunity rolemember
Handlerts-rest contractzod ok
Servicefeed rulescursor
Cacheredis cache-asidecold
Repositorypgx · no ORMprepared
PostgreSQLidx scan + limit 2016 tables
Token bucket · cap 5 · +1 / 1.4s
5 tokensrefill 0.0s
// access log
SEC 03

Projects

8 published / 51 scanned · auto-refreshed 2026-08-27

P-01

Nexus

SERVICE
Nexus landing page — Every interest finds its nodeCAPTURED 2026-08-27 · 1280×800

A community-first social platform. Posts live inside communities you choose, each governing itself with its own moderators, roles and report queue, and the feed blends what's trending with the people you actually follow. Go + Echo API and a Next.js client share Zod → ts-rest contracts across a Turborepo, so a broken response shape fails at compile time instead of in production. WebSocket chat carries presence and read receipts; OpenSearch handles full-text with a Postgres ILIKE fallback for when the index isn't there; Asynq workers send the mail.

60+ ENDPOINTS16 TABLES9 SERVICES11 MIDDLEWAREGO 1.25PGX / NO ORMREDISOPENSEARCHCLERKS3 / R2NEW RELIC
P-02

CodeMetrics

SERVICE
CodeMetrics dashboard landing pageCAPTURED 2026-08-27

Competitive-programming stats with head-to-head leaderboards. JWT auth with Google OAuth, bcrypt hashing and token-based password reset over a normalised Postgres schema; a rate-limited Codeforces client with Postgres-backed caching aggregates acceptance rate, problems solved and rating history. Auth routes get stricter per-IP limits than the rest of the API.

15+ ENDPOINTSGO / ECHOJWT + OAUTHRECHARTSGMAIL SMTP
P-03

portwarden

CLI
$ portwarden diff --scope world

NEW       tcp/8080    node        uid 1000
SQUATTED  tcp/5432    postgres → pgbouncer
MISSING   tcp/9100    node_exporter

3 findings · 11 listeners · baseline 08-18

Watches this machine's listening TCP/UDP sockets and flags anything that drifts from an approved baseline — a new port, a baselined port whose owning process or user changed, or a service that quietly stopped listening. Reads /proc/net/{tcp,udp} directly and resolves socket inodes to PIDs through /proc/[pid]/fd, so it has no runtime dependencies at all.

GOZERO DEPSPROCFSBASELINE + WATCH
P-04

pii-redactor

TOOL
$ go run ./cmd/redact -in intake.docx

detect   regex 41 · gazetteer 12 · address 6
map      59 values → deterministic fakes
write    word/document.xml repacked

$ go run ./cmd/eval
precision 0.94   recall 0.89   f1 0.91

Redacts personal data out of .docx files by unzipping the OOXML, parsing word/document.xml, replacing values with deterministic fakes and repacking the archive. Hybrid detection — regex, a gazetteer and an address detector — chosen over NER and argued for in the README, with an eval command that scores its own precision, recall and F1 against ground truth.

GO 1.22STDLIB ONLYOOXMLEVAL HARNESS
P-05

codemetrics-cli

CLI
$ codemetrics Lord_Beerus

Lord_Beerus (Sarbojit Rana)
Rating       1262 (pupil)
Max Rating   1427 (specialist)
Solved       653      Acceptance  54.7%
Contests      77      Since  2023-09-29

  1400-1499  ######################### 77
  1500-1599  ########################  74
  1600-1699  ######################    69

The same Codeforces aggregation as the dashboard, without the browser. Looks up and compares profiles — rating, rank, problems solved, acceptance rate and a rating-wise problem histogram — straight in the terminal.

GOCODEFORCES APICOMPARE MODE
P-06

arcshot

TOOL
Arcshot capture toolbar overlaid on a live screenREPO PREVIEW

A screenshot and screen-recording chooser for Hyprland and other wlroots compositors — the GNOME capture flow on Wayland, without GNOME. The screen is live the moment it opens, so you can drag a region before deciding anything; the toolbar stays clickable over the live screen, recordings keep an elapsed timer, and it remembers your last choice so the common case is press-key, press-Enter.

PYTHONGTK4 / LIBADWAITAWAYLANDGRIM · SLURP · WF-RECORDER
P-07

json-parser

SERVICE
$ head -3 mappings.csv
service,json_path,column,type
workflow,$.event.id,event_id,uuid
workflow,$.payload,raw,jsonb

$ ./parser --service workflow event.json
10 fields → workflow_events  1 row · jsonb 2.1 kB

A configurable parser that turns workflow event payloads into normalised Postgres rows from a spreadsheet-defined mapping — adding a service is a row in a sheet, not a code change. Repository abstractions over pgx, JSONB for the parts that stay unstructured, Tern migrations, Docker Compose for the whole thing. The pattern behind my work at NIC.

GOPOSTGRES JSONBTERNDOCKERREACT UI
P-08

resume-copy

CLI
$ resume-copy "Acme Corp"

copy    Resume.pdf → Resume_Acme Corp.pdf
share   anyone with the link · view
https://drive.google.com/file/d/1I8wl4w…

Copies a master resume inside Google Drive, appends the company name to the filename, sets link-view sharing and prints the link — one command per application instead of six clicks. OAuth desktop flow, token cached locally, credentials never committed.

GODRIVE APIOAUTH DESKTOP
SEC 04

Open source

merged pull requests · upstream only

Bug fixes in other people's codebases, taken through review. Every row is a pull request I opened in a repository I don't own — merged, still open, or closed without landing. All of it comes from the GitHub API, none of it is typed by hand.

RepositoryPRWhat it fixedDiffDate
offset 0 · limit 5 · 17 rows page 1 / 6

28 upstream pull requests · 17 merged · 5 more in repositories of my own

SEC 05

Coding profiles

read 2026-08-27 · figures are live, not rounded up

Codeforces/profile/Lord_Beerus
1427 peak ratingspecialist current1262 · pupil
77 rated contests · Dec 2023 → Feb 2026
653
solved
54.7%
acceptance
1219
submissions
solved by problem rating
LeetCode/u/sarbojit_007
1955 peak ratingKnight current1863 · top 5.89%
67 rated contests · Jun 2024 → Aug 2026 · peak at weekly contest 490
657
solved
69.9%
acceptance
50,506
global rank
657 problems accepted
what the practice is for

Three years of contests, mostly greedy, math and constructive. It shows up in the day job as cheap instincts about complexity, off-by-ones and the edge case nobody wrote a ticket for.

Meta Hacker Cup 2025

Global rank 1783, Round 2.

21 Days of Code — 1st

First place among 300+ entrants. Developers & Coders Club, NIT Agartala.

Game of Codes — winner

Inter-college ICPC-style team contest, 100+ teams.


Sarbojit Rana's GitHub avatar sarbojitrana ↗ member since jun 2024
51public repos
30authored / 21 forked
18merged pull requests
15followers
languages across 26 authored repositories
public contributions · last 12 months
375 contributions · 115 active days · longest streak 15 · busiest day 30 less more

Go is where the load-bearing work goes. The JavaScript and TypeScript are clients for Go services, the Python and C++ are tools and coursework, and the Bash is glue that earned its place.

The forks aren't clutter — each one is a working copy of an upstream project I've sent a fix to. They feed section 04 rather than the project shelf.

SEC 07

Contact

replies within a day

Hiring, reviewing, or want a bug fixed — write to me
Résumé
assets/resume.pdfpdf · 1 page

Served straight out of the repo. The button hands over whatever assets/resume.pdf is on main at the moment you click it — replace that file in github.com/sarbojitrana/portfolio-v1 and everyone downloading from here gets the new one. No re-deploy, no stale copy sitting in a bucket.

APX A

How this page
updates itself

projects shelf · unattended

Nothing in section 03 is hand-maintained. A scheduled job reads every public repository, decides which ones are actually projects, writes the description you just read, and captures the preview from the live deployment. Push a new repo with a README and it appears here on the next run; push notes or a solutions dump and it never does.

STEP 01

Collect

GitHub API: repos, topics, languages, homepage, README, last push. Plus author:sarbojitrana is:pr is:merged for section 04.

STEP 02

Classify

A model reads each README and repo shape and answers one question: is this a piece of work, or a container for something else? Rules below.

STEP 03

Describe

The same model writes 2–4 sentences from the README and file tree — what it does and the one design decision worth knowing. No adjectives it can't source.

STEP 04

Capture

Headless browser shoots any live homepage at 1280×800, desaturates it, and drops the frame if it comes back blank or errored. CLIs get their recorded terminal output instead.

STEP 05

Commit

Writes projects.json and the previews, opens a PR against the site. Nothing publishes without a diff to look at.

Published when
Authored here, not forked
A README that explains what it does, beyond a title
Source code — not notes, slides, or answers
Solves a problem someone other than a grader had
Held back — 43 repositories this run
21Forks — routed to the open-source ledger instead
11Notes, coursework, solution archives, tutorial builds and scaffolding
11Set aside by hand in overrides.json, or folded into another card