- Problem
- Bangladesh had no proper native solution for analyzing forensic investigative data. Analysts were connecting everything by hand in multiple formats.
- Approach
- I developed one tool where all kinds of investigative data such as CDR (Call Detail Records), Tower Dumps, IPDR and many more can be brought in and analyzed at one place. The name of the product is Location Analyzer because initially it was supposed to analyze only locations and the scope of the project has increased tremendously but the name remained the same. It is privately owned by me and only verified personnel of the government and law enforcement departments can use the tool.
- Outcome
- Nowadays, many forensic and investigative departments, like Detective Branch (DB) Police and RAB in Bangladesh, are using this tool to solve many criminal cases.
Nirjoy Hasan Antor
I build full-stack products end to end, from data model to interface, solving problems that actually matter.
Work
- Problem
- There is no Stripe in Bangladesh, and the official payment gateways (bKash API, SSLCommerz, ShurjoPay) all require a trade license that small sellers, students and side-project builders just don’t have. So everyone does manual bKash/Nagad payments, and verifies them by staring at SMS inbox screenshots and manually checking TrxIDs. It’s slow, error prone and trivially easy to fake. I needed a way for anyone with a spare phone to accept verifiable online payments with no paperwork.
- Approach
- I built a self-hosted verification pipeline. A native Android app that turns a spare phone into an SMS monitor with multipart reassembly, dedup and batched upload over a foreground service. A Go and Postgres backend parses each SMS with provider templates, regex mode and sandboxed per-provider JS for fees and edge cases, then checks customer-submitted TrxIDs against exact-decimal orders. It checks amount, single-claim, expiry and an arithmetic balance chain to catch spoofed/edited messages. I also built a svelte admin console to manage businesses, devices and the SMS inbox, and a typed typescript SDK for the full API.
- Outcome
- Every step in the process of making payment is carried out independently without requiring the involvement of the intermediary or licensing. The software development kit is available on npm as vindrapay-sdk and the Android monitor is provided in a signed sideload-friendly apk format while the source code for the entire software foundation is available to the public under MIT license and can be hosted independently on a single vps.
- Problem
- I kept reusing the same password across too many sites, and when I finally fixed that, a different problem showed up: remembering which account is which. I have several logins for the same service, a main one, an old alt, a work one, plus notes scattered between a spreadsheet and my browser. My browser can find a password if I remember the exact site name, but it cannot answer the question I actually have in my head, something like which of my Duolingo accounts is the alt one. And pasting a spreadsheet into a cloud AI to ask would mean handing over every password I own.
- Approach
- I built a password manager that does its encryption on your own device, so the server only ever holds scrambled data it cannot read. On top of that I added a search that takes a plain question instead of a site name. The part I cared about most was making that search safe: before anything is sent to a model, every entry is swapped for a made up label, so the model sees a label and the note you attached and never a real password. It answers with labels, and the app quietly turns those back into your real entries on your device. There is also a switch for where the model runs, so you can use a hosted service with your own key, or point it at a model on your own machine and send nothing out at all.
- Outcome
- Ahaai runs end to end: you can sign up, unlock your vault, store and organize logins, cards, identities and notes, then search them in plain language. Asking for my Duolingo login and asking for my alt Duolingo account are different questions and can come back with different entries, which was the whole point. The server cannot read a vault, an AI provider never receives a password, and the app runs without a cloud database or cache service. The parts that keep data safe are covered by 180 automated tests, so the security can change without quietly breaking.
About
As a full-stack developer, I enjoy being responsible for a feature from beginning to end, from backend structure to the SMS parser. My work includes Rust, Go, TypeScript, and Postgres, developing systems that work with real-world data, the kinds of data where accuracy counts and security is important, such as forensic investigation records, payment verification, and others.
Outside of product work I build developer tooling, SDKs, and self-hostable infrastructure that other developers can build on.
Toolkit
- Frontend
- TypeScript, React
- Backend
- Rust, Go, Node.js, Python, PostgreSQL