Tanhab Sarker

Tanhab Sarker

Software & Backend Engineer · MSc Computer Science (UBC)

I like building software and backend services that scale. Most of what I work on sits behind the product rather than in front of it: event-driven architecture, distributed systems, and thinking hard about edge cases and how things behave once the load goes up.

Kelowna, BC·Open to work · will relocate anywhere in Canada
Tanhab Sarker

What I Do

Backend Systems

Java, Spring Boot, Node, Postgres, REST APIs.

Distributed Systems

Microservices, Kafka sagas, idempotent consumers.

Cloud & DevOps

Docker, Terraform, AWS, and CI/CD pipelines.

Problem Solving

Codeforces Expert. 1000+ problems solved.

Selected Projects

What I've Built

Argus

Distributed multi-region service monitor: three checkers on three continents vote on whether your service is actually down before anything pages you.

  • Replaced per-checker alerting with 2-of-3 majority consensus over a sliding 90-second window, so one checker on a bad network path cannot page anyone — a checker dropping 33% of its requests produced zero false alerts.
  • Serialized per-monitor evaluation with Postgres advisory locks inside a single transaction, chosen non-blocking so contention skips rather than queues, and the lock releases on commit rather than needing cleanup.
  • Inserted a four-state machine (up / degraded / down / recovering) between raw verdicts and notifications, collapsing 199 consensus edges into 0 alerts on sub-threshold flapping while still catching every sustained outage.
  • Detected latency anomalies online with per-checker EWMA baselines and z-scores, distinguishing a service-wide slowdown (two of three paths) from one slow region, so a bad transit route is recorded rather than paged.
  • Reconstructed uptime from an append-only transition log with half-open interval arithmetic, excluding scheduled maintenance and gaps where monitoring itself was down.
  • Made alert delivery crash-safe with a transactional outbox and a pg-boss retry queue, keeping network I/O out of the locked transaction entirely.
  • Sustained ~500 req/s ingestion on a single instance at p99 81 ms, behind ~210 tests including integration tests against real Postgres via Testcontainers.
TypeScriptNode 24FastifyPostgreSQLDockerGitHub Actions

HoldTheSeat

Event-driven ticket-booking backend: three Spring Boot services coordinating a booking over Kafka, with no shared database and no distributed transaction.

  • Split booking, seat, and payment into three independently deployable services that never touch each other's tables, coordinating them as a choreographed saga over Kafka.
  • Held seats atomically with a server-side Redis Lua script, so simultaneous claims on one seat resolve all-or-nothing and exactly one booking wins.
  • Made the saga crash-safe with a transactional outbox and idempotent consumers, turning Kafka's at-least-once delivery into exactly-once effect.
  • Compensated on payment decline — cancel the booking, release the holds — and benchmarked the seat map returning to its precise opening state.
  • Proved both invariants under Testcontainers against real Kafka, Postgres, and Redis, including a harness that fires simultaneous claims at a single seat.
  • Runs live on a Hetzner VPS, with the whole AWS equivalent — ECS Fargate, RDS, ElastiCache, ALB — as apply-and-destroy Terraform.
Java 25Spring Boot 4KafkaPostgreSQLRedisTerraformAWS

Beaverworld Project Management

Internal issue tracker and Kanban tool built for the 15-20 person game team I run, and used by them every day since.

  • Built it after bug reports started getting lost in Discord chat: the team's version control has no web issue UI, leaving the non-programmers with no way to file or track one.
  • Shipped the full surface solo — issue tracking, drag-and-drop Kanban boards, threaded comments, per-issue audit trail — replacing an Asana plan the team had outgrown at its 10-user free cap.
  • Fanned notifications out in-app, by email, and to Discord across 18 event types, behind a rate limiter that queues bursts rather than dropping them.
  • Hardened the live app after shipping: moved a Discord webhook server-side once the URL turned up in the client bundle, and sanitized error messages that were leaking database internals.
Next.js 16React 19TypeScriptSupabaseVercel
Work Experience

Where I've Worked

Project Manager & Unity Developer

Beaverworld · UBC Okanagan

Sep 2024 – Present
  • Run delivery for a 15-20 person team of programmers and art students: set priorities and deadlines, own the engineering process, and design the core mechanics — mission flow, cycle progression, inventory and crafting, and the in-game encyclopedia.
  • Onboarded 5-6 undergraduate developers and migrated the team's Unity project from Plastic SCM to GitHub, rebuilding branching and review so first-time git users could ship without breaking the build.
  • Ran product research with 40+ high school students across two schools to decide what the game should be: designed the study, facilitated the sessions, analysed the surveys and interviews, and built the features the findings pointed to.
  • Restructured the codebase and established the architectural intentions, coding conventions, and contribution process the team works to.
  • Built the team's internal tooling and agentic workflows: an in-game developer console with 12 domain tabs, a Unity MCP integration driving the editor programmatically, and agent operating rules covering LFS-versus-git asset storage and scene merge conflict resolution.

Software Engineer I

Samsung R&D Institute Bangladesh

Feb 2024 – Jul 2024
  • Built the on-device inference path for a live breast-lesion detection assist feature on Samsung ultrasound systems, owning inference optimisation and integration into the scanner's real-time video pipeline.
  • Took live inference from roughly 30 to 55 FPS on a fixed GTX 1660 whose 6 GB of VRAM was already shared with the scanner's own imaging application, converting the detector to TensorRT and quantising to FP16 and INT8.
  • Benchmarked the 2024 real-time detection field — multiple YOLO generations, transformer-based RT-DETR, and EfficientDet against ResNet baselines — and chose DAMO-YOLO for the best accuracy per millisecond on hardware that could not be upgraded, because the device was a certified medical product.
  • Wired the detector into the live scan path — frame capture, preprocessing, inference, and bounding-box overlay on the operator's display — so findings surfaced during the examination rather than after it.
  • Evaluated multi-frame tracking to stabilise detections and, when it could not hold up against ultrasound speckle noise and out-of-plane probe motion, shipped per-frame detection with overlay rendering instead.
  • Contributed to finetuning experiments across ResNet and YOLO architectures that raised detection mAP from 65% to 78%.
Education & Research

Academic Focus

MSc in Computer Science

University of British Columbia, Okanagan

Sep 2024 – Expected Nov 2026
  • 90% average, with a thesis focused on human-computer interaction.
  • The thesis work is the classroom research behind Beaverworld: study design, on-site sessions with 40+ high school students, analysis, and the product changes that came out of it.

BSc in Computer Science and Engineering

Shahjalal University of Science and Technology, Bangladesh

Jan 2019 – Jan 2024
  • Graduated with a 3.91 / 4.00 CGPA.
Leadership & Community

Leadership

SUST ACM Student Chapter

Executive Member

2021 – 2022
  • Helped organize 10+ webinars on software engineering with engineers from Google, Facebook, and Microsoft, covering technical interview prep, CV writing, graduate applications, and design patterns.
  • Ran a Mobile Game Development training seminar in partnership with the ICT Division of the Bangladesh Government, MARS Solutions, and SHADOWHITE.