Client project
Exact Digital
Web hosting, VPS and domains on AMD EPYC servers.
The website for a hosting company: plans and prices, live domain search and ordering. Built in Next.js.
Built with Next.js, TypeScript

Open to work · Full-stack developer, also known as Light Yagami
I mostly write React, Next.js and TypeScript, with Node behind it when a feature needs a server. I've been at ThemeXpert since 2022, first on Quix Page Builder and now on ThriveDesk, where I build the frontend of its AI live chat.

Where I spend most of my time: React Server Components, how Next.js renders and caches, and keeping state easy to follow.
Also: Angular 21 with signals, PrimeNG and Zard UI, and Svelte
APIs, auth and databases for the features that need them. I'm learning NestJS by moving Habit Lens onto it.
Also: Morgan for logging, and some PHP with Symfony
Tests, builds and deploys, including the pipeline that ships Assistant to S3 from GitHub Actions.
One company with two products: Quix, a page builder for Joomla, and ThriveDesk, helpdesk software. I've worked on both.
2023 to now
The main helpdesk: email, live chat and an AI agent in one inbox.
I work on the frontend of the main ThriveDesk app, which is written in Angular. It's the screen support agents spend their day in: the inbox, conversations, teammates and labels.
Built with Angular, TypeScript

2023 to now
The AI live chat that sits on a customer's website.
A visitor can ask a question, search the help docs or email the team. The AI assistant answers from the company's own content, so what it says matches what the company has actually written.
It also lets customers shop without leaving the chat: they browse a store's collections, add products to the cart and check out right there. I build the widget's React frontend, next to the Angular app.
Built with React

Jun 2022 to mid 2023
The drag-and-drop page builder for Joomla, with 200+ draggable components.
Dragging one block was re-rendering the whole page. React Context sends every change to every component that reads it, and our data was a nested tree, so one move touched everything.
I moved the state to Redux and stored it as a flat list of items instead of a tree. Each component now listens only to its own piece. Drags update the screen first and roll back if the save fails. The bundle ended up 40% smaller.
Built with React, Redux, TypeScript

Mar 2022 to Jun 2022
Joined ThemeXpert on 1 March 2022.
Three months later I was made permanent and moved onto Quix.
WordPress tools
A set of tools for the company's own use. They're private, so there's nothing to link.
A Shopify app
Built for the company alongside the main products.
Client project
Web hosting, VPS and domains on AMD EPYC servers.
The website for a hosting company: plans and prices, live domain search and ordering. Built in Next.js.
Built with Next.js, TypeScript

Personal project, in progress
A habit tracker where you log entries with your own fields and see what they add up to.
Sign-up with email verification, daily logs with custom fields, and an insights view over time. The auth and API layers have unit and feature tests.
I'm adding an AI-written weekly summary of your logs next, streamed into the page as it's generated.
Built with Next.js, NestJS, TypeScript, Prisma, Postgres, Auth.js
I'm not looking for Rust work. I write it to understand what React and Node are built on: how a request gets parsed, how a shell starts a program, who owns a piece of memory. It makes me quicker to find the real cause of a bug instead of blaming the framework.
A shell that parses commands, runs programs and has its own built-ins and line editing.
HTTP/1.1 over plain TCP: a hand-written request parser, a static file server, and protection against path traversal.
Rust compiled to WebAssembly runs the game logic, and TypeScript draws it on a canvas.
A task board in Dioxus with columns, priorities and search, built on signals. It runs on the web and the desktop, and I'm extending it to explore native apps.
Email is the quickest way to reach me. I'm in Bangladesh and happy to work remotely.
I like the whole stack, and I live in the frontend.
Most of my time goes into state, rendering and what the browser is actually doing. I write the backend when a feature needs one, and I'll dig into the build config when it's slow.
On the side I write Rust to learn how things work underneath. So far that's a shell, an HTTP server and a few small apps. They're listed below.
Loading recent repositories…