I build AI systems that actually ship.
Full-stack engineer based in Sylhet, Bangladesh. I architect AI systems end to end — retrieval, infra, the chat widget on the page, the deploys at 3am. I care about shipping things that make a number move.
Things I've shipped.
tap a card to peek inside ↓FluentBot
−70% RAG response latencyAI-powered customer-support agent built on a RAG architecture. Owned the full lifecycle: retrieval, infra, frontend widget, and zero-downtime deploys.
FluentBot Chat Widget
−80% JS bundleRefactored an embeddable Svelte chat widget off its UI dependencies to vanilla — same surface, a fraction of the bytes.
MySUST
Android + iOS, in students' pocketsCross-platform Flutter app for SUST students — schedules, results, campus info. Shipped to both stores.
The short version.
I'm a results-driven software engineer with 3+ years of experience. I moved from mobile development into architecting enterprise-grade AI solutions, and in 2025 built and deployed FluentBot — a RAG-based customer support agent — owning the full lifecycle.
I'm happiest where retrieval, real-time backends, and CI/CD meet. I like systems that survive 3am pages, and I like the small, boring decisions that get them there.
Experience
Lead Engineer for FluentBot. RAG architecture, LangGraph orchestration, blue-green deploys, real-time training status, RBAC, analytics modules. Built the Vue admin app and refactored the Svelte widget to vanilla.
Flutter apps across Android and iOS, CI/CD for web and mobile, Spring Boot backend work.
Cross-platform Flutter plus native Android/iOS. Shipped MySUST and Wali Woo — in-app purchase, ML Kit, Firebase, AdMob.
Native Android in Java/Kotlin. Dagger Hilt, Navigation component, MVVM. Published one app to the Play Store.
Community
Recent posts.
all posts →Cutting RAG response latency 70%: what actually moved the needle
Six weeks, four false starts, one boring fix. A field report on what we actually changed to get from 30s to 6–11s.
Migrating a RAG stack from LangChain.js to Python — and why
We didn't move because Python was faster. We moved because the JS ecosystem was outpacing us in the wrong direction.
Shrinking a chat widget 80% by dropping the UI library
When the dependency carrying you starts costing you Core Web Vitals on someone else's site, it's time to write the components yourself.