Skip to content
Dhaka, BangladeshOpen to remote roles

Ragib Hasan

Engineering Lead · Backend and platform architecture

I design and build multi-tenant SaaS backends and lead the teams that ship them. Since 2024 I've been the sole backend architect of ZOYEQ at Qzency, a commerce platform with e-commerce, POS, inventory and AI modules that runs 500+ active stores on Node.js microservices, MongoDB, RabbitMQ and Kubernetes. On my own time I build AI tools on local models, and I use the latest one to run my own job search.

Selected results

  • 94% fewer peak database connections (3,200 to about 180) and cold starts cut from 45s to 3s, by opening per-tenant connections lazily with LRU eviction
  • Tenant capacity from about 400 to 10,000+ without adding infrastructure, while the database bill fell from $580 to $180 a month
  • 100K+ transactions a month across 4 payment gateways, on 6 microservices I designed and built on my own
  • 60% faster deployments after automating CI/CD with GitHub Actions and Kubernetes, while leading a team of 6

Experience

6+ years building production systems, the last three leading the teams that build them

Engineering Lead

atQzency
Jul 2024 - Present

Sole engineering lead and backend architect for ZOYEQ, a multi-tenant SaaS combining e-commerce, POS, inventory and AI modules, serving 500+ active tenants.

  • Leading a cross-functional team of 6 (design and frontend) that delivered ZOYEQ end to end, from architecture to production
  • Designed the multi-tenancy model, then fixed connection exhaustion with lazy initialization and LRU eviction: peak connections down 94%, cold starts from 45s to 3s
  • Built an event-driven microservices system on RabbitMQ, so services stay decoupled and keep running under high-concurrency load
  • Integrated Google Gemini for product content, SEO generation, dynamic landing pages, and malicious-code detection on user input
  • Automated CI/CD with GitHub Actions and Kubernetes, cutting deployment time by 60%

Sr. Software Engineer

atDX Group
May 2023 - Jun 2024

Project lead for EBS, the ERP system for DX Group, one of Bangladesh's largest distributors and the national distributor for Xiaomi.

  • Led a team of 5 engineers (3 backend, 2 frontend), owning task delegation, code quality and cross-team coordination
  • Designed EBS as a set of microservices and ran its deployment on Docker and Kubernetes
  • Ran the client meetings, gathered requirements and turned them into delivery plans

Software Engineer

atMethod Melody
Aug 2021 - May 2023

Project lead on two products: the Method Melody learning management system, and Seattron, an event e-ticketing platform.

  • Took over the unfinished Method Melody LMS with limited resources and carried it to completion (Node.js, Express, MongoDB, React, Redux)
  • Optimized the application and cut server costs by 35%
  • Led Seattron end to end: built the Node.js, Express and MongoDB backend and contributed to the Next.js frontend

Software Engineer (Contract)

atClimax IT
Jan 2021 - Jul 2021

Built a web-based CMS for PROVATI3, a project of the Local Government Engineering Department (LGED).

Jr. Software Engineer

atAlliant Ltd.
May 2020 - Nov 2020

Full-stack developer on an in-house event management web application.

Engineering Deep Dive

Technical writing on architecture decisions and lessons from production

Featured
December 202518 min read

Architecting for N-Tenants: Database Connection Exhaustion

How we scaled from 300 to N tenants without adding infrastructure. The fix? Replace eager connection initialization with lazy loading, promise caching, and LRU eviction.

Impact Snapshot
Before3,000 connections at boot
After0 connections at boot
Result94% reduction in peak connections
#Node.js
#System Design
#MongoDB
#Multi-Tenancy
#Microservices
May 202612 min read

Event-Driven Microservices: Decoupling Services with RabbitMQ

How backend services publish events through RabbitMQ instead of calling each other directly, with retry queues, dead lettering, and idempotent consumers, built as an event-driven system from day one.

Impact Snapshot
ArchitectureEvent-driven from day one
Scale1M+ events/day
On failureAuto-retry, then dead letter queue
#Node.js
#RabbitMQ
#System Design
#Microservices
#Event-Driven Architecture
August 202610 min read

The Transactional Outbox Pattern: Making Event Publishing Atomic

How to guarantee a database write and the event it triggers either both happen or neither does, closing the one gap the RabbitMQ post left open, with a polling relay, a change-stream alternative, and where else the pattern applies.

Impact Snapshot
ClosesSilent event-loss gap
MechanismSame-transaction outbox row
DeliveryStill at-least-once, by design
#Node.js
#MongoDB
#RabbitMQ
#System Design
#Distributed Systems

Projects

Systems I designed and built, from architecture to production

ZOYEQ, multi-tenant commerce SaaS

Engineering Lead and sole backend architect · Qzency · 2024 to present

A multi-tenant SaaS that gives each merchant an online store, POS, inventory and AI-written content on one platform. I designed and built the whole backend, six microservices from first commit to production, and it serves 500+ active tenants, each on its own database.

94% fewer connections45s → 3s cold startLIVE REQUESTStenant_4a1ftenant_9c22REGISTERED TENANTS0 open connections500+ registered tenants, most idle, none holding a connectionTenantConnectionManager1 check active pool2 reuse, or open +cache the promise3 evict after 30m idletenant_4a1f · dbtenant_9c22 · dbMongoDB Atlas: one isolateddatabase per tenantLEGENDactive connectionidle, no connection
ZOYEQ opens a database connection only for tenants that are actually active. Idle tenants (the majority at any given moment) hold zero open connections, which is what let the platform scale past 300 tenants without adding infrastructure.
How the connection manager works

What I built

  • Six production microservices built on my own: Gateway, Core, Store-Core, Store-Product, Store-Order and Notification
  • A separate MongoDB database per tenant for full data isolation, with subdomains and custom domains resolved to the right tenant automatically
  • Lazy per-tenant connections with LRU eviction: peak connections from 3,200 to about 180, cold starts from 45s to 3s, memory per service from 1.8 GB to 400 MB
  • Tenant capacity raised from about 400 to 10,000+, while the MongoDB Atlas bill fell from $580 to $180 a month
  • Services talk through RabbitMQ events, with retry queues, dead lettering and idempotent consumers
  • 4 payment gateways (SSLCommerz, bKash, Stripe, PayPal) with per-tenant routing, carrying 100K+ transactions a month
  • Google Gemini for product copy, SEO, landing pages and malicious-code screening of user input
  • CI/CD from GitHub Actions to Kubernetes with autoscaling, 60% faster deployments, monitored with Prometheus, Grafana and Loki
Node.js
Express.js
MongoDB
Redis
RabbitMQ
Socket.io
Docker
Kubernetes
AWS
Prometheus
Grafana
Loki
Gemini AI
Next.js
TypeScript

Job Tracker, an AI-assisted job search workspace

Personal project · designed and built on my own · 2026

The tool I run my own job search on. It sweeps ten job boards and 42 company careers pages, ranks every posting against my profile in plain code, and hands the judgement calls and the writing to two language models running on my own machine, so my CV and every draft stay local. About 38,000 lines, built from scratch.

~800 postings in ~20sno AI call per postingSOURCES10 job boards42 company boardsAshby, Greenhouse and Lever,read straight from the sourcededupecompany + rolefingerprintscoreJob()stack35%location30%level20%domain15%+ gates, reasons shownQwen, localoptional: re-judges the top 20boardclears your bartrashunder the bar, re-scored
Ranking is plain code: free, instant, and the same answer every time. Qwen only re-checks the shortlist, and Gemma writes what follows.

What I built

  • A scanner over ten boards plus 42 Ashby, Greenhouse and Lever company boards: about 800 postings a sweep in roughly 20 seconds, with cross-board duplicates merged by a company-and-role fingerprint
  • A deterministic scorer instead of an LLM call per posting: four weighted dimensions, gates so a keyword-stuffed posting cannot outrank a real fit, and every score explained line by line
  • An optional hybrid mode where the algorithm ranks everything and a local model re-judges only the top 20, with both scores kept so the disagreements are visible
  • Two local models routed by task: Qwen for short structured calls (re-scoring, reading a posting against my profile), where clean JSON and no reasoning pass matter; Gemma for everything a person reads, with a reasoning-token budget measured on real prompts so its answer is never cut off
  • Served by LM Studio through an OpenAI-compatible API, with JSON-schema constrained output, a fallback parser for runtimes that ignore the schema, and hosted Gemini or DeepSeek as drop-in providers
  • Application prep in headless Chromium: it reads the real form, Qwen extracts the facts and an honest fit, known answers are copied straight from my profile so no model is asked to invent them, and Gemma drafts only what needs writing. Nothing is ever submitted for me
  • A skills radar that counts about 85 technologies across 60 days of postings with regex matching inside Postgres, plus Gemma-drafted learning roadmaps built on my own track record
Node.js
Express
PostgreSQL (Neon)
Qwen
Gemma
LM Studio
Gemini API
DeepSeek API
Puppeteer
Docker
JavaScript

EBS, ERP for a national distributor

Project lead · DX Group · 2023 to 2024

The ERP system behind DX Group, one of Bangladesh's largest distributors and the national distributor for Xiaomi. I led it from the first client meeting to production, with a team of five engineers, as microservices on Docker and Kubernetes.

Node.js
Express.js
MongoDB
Redis
RabbitMQ
Docker
Kubernetes
AWS
Next.js
TypeScript

Seattron, event e-ticketing

Project lead · Method Melody · 2021 to 2023

An event ticketing platform with seat selection and online payment. I directed it end to end, built the Node.js, Express and MongoDB backend, and contributed to the Next.js frontend.

Node.js
Express.js
MongoDB
Next.js
Socket.io
Stripe

Skills

What I use in production, grouped the way I use it

Backend
Node.js
Express
NestJS
TypeScript
JavaScript
Data
MongoDB
PostgreSQL
Redis
Prisma
Messaging
RabbitMQ
Socket.IO
Cloud and DevOps
AWS (EC2, Lambda, S3, RDS, IAM, EKS)
Kubernetes
Docker
NGINX
GitHub Actions
Observability
Prometheus
Grafana
Loki
AI models
Gemini (hosted)
DeepSeek (hosted)
Qwen (local)
Gemma (local)
AI engineering
Per-task model routing
Local inference (LM Studio)
OpenAI-compatible APIs
Structured output (JSON schema)
Hybrid ranking (code + LLM)
Prompt design
Browser automation (Puppeteer)
Frontend
React
Next.js
Redux
Tailwind CSS
Architecture
Microservices
Multi-tenant SaaS
Event-driven systems
Distributed systems
System design
Leadership
Team leadership
Technical mentorship
Stakeholder management
Release planning
Agile / Scrum
End-to-end product delivery

Working remotely

Open to full-time remote roles worldwide. The practical details:

Hours
Based in Dhaka (GMT+6). I move my working day to overlap with the team, whether that team is in the US, Europe or Asia.
Start date
Within 2 weeks of an offer.
Setup
Dedicated home office, fiber internet (100 Mbps+) and backup power.
Tools
Slack, Zoom, Jira, Linear, Notion and GitHub.
Languages
English and Bangla.
Relocation
Open to it for the right role.

Education & Publications

Degree and published research

Education

Bachelor of Science, Computer Science & Engineering

University of Asia Pacific · Dhaka · Graduated 2020

Publications

Character and Mesh Optimization of Modern 3D Video Games

Main author · Advances in Data and Information Sciences, Proceedings of ICDIS · Springer, Singapore, 2020 · pages 655 to 666

A method for optimizing game characters and 3D meshes by reducing polygon count, so modern games run on a wider range of hardware.

Contact

Let's discuss opportunities, collaborations, or technical challenges