About
I'm Bishal, a backend engineer in Nepal.
I've spent about three years writing Node and TypeScript. For the last few months, most of that time has gone into Nura, an app for the night after a fight with your partner.
Nura started in May as a journaling app with rituals and an insights screen. Building it taught me what the product needed to be. Someone who opens an app at 11pm, still upset, can't face a blank page. They need to be asked the right question, one at a time, and to leave with something they can keep. So I pulled 1,500 posts and 10,000 comments from relationship forums to hear how people actually describe those nights. Then I wrote the product down properly and rebuilt the backend from that spec.
That rebuild is the clearest picture of how I work.
I start with the person on the other end. In Nura's case, that's someone whose partner might pick up their phone. That one sentence shaped dozens of decisions. There's exactly one notification in the product, and its data type has no room for anyone's words. Deleting an account destroys that person's encryption key before anything else happens. Error reports and traces pass through a gate that drops anything it doesn't recognize, so a crash report can't carry someone's message out of the server.
I think about what a decision costs and what it earns. Screening every message for safety adds latency and cost to every turn. I took that on after measuring that the cheaper design could never catch more than 30% of what it needed to. Comparing two classifiers across 145 test cases then cost 62 cents to run. The paywall shows at the moment someone keeps a card, and never in the middle of a hard conversation. A session that ended with crisis resources on screen never counts toward the free limit. Some of those are engineering calls and some are business calls, and I like being in the room for both.
I care about the parts around the feature. A job queue that keeps running when one job fails badly. A refresh token that signs out every device the moment a stolen one is reused. A background sweep that recovers lost work without ever sending the same notification twice. The feature someone asked for is rarely the hard part.
I say what isn't done. Nura's safety screen catches 97% of disclosures in testing. It still misses one kind of message that every engine I've tried misses, and the numbers are fitted on the same cases they're scored on. Both of those are written in the results, beside the headline. I'd rather someone trust a smaller number than question a bigger one.
I build with AI coding agents, and I write the rules they work under. I design the system and make the product calls. The rules are types that make wrong states impossible to write, architecture boundaries the build enforces, and a test for every rule that I've watched fail by breaking the code on purpose. Every phase ends with a written log of what shipped, what changed, and what I chose to leave out and why. The agents type faster than I do. Deciding what to build, and what to refuse, is still my job.
I'm happiest on small teams building something that matters to the people using it, where the backend engineer is expected to have an opinion about the product.
Background
- 2026– Nura Founder and backend engineer on an app for the night after a fight
- 2024–2025 Intosoft Backend engineer on search, real-time, and billing
- 2023–2024 Yatri Design Studio Software engineer on EV charging admin and inventory
- 2022 Leapfrog Technology Software engineer intern
Working with
Node · TypeScript · PostgreSQL · MongoDB · Redis · BullMQ · Socket.IO · Docker · AWS