About me
I'm Nirjan, a senior software engineer based in Nepal. I build backend services and full-stack products, and like following a feature from its data model and API through to the interface and production behaviour. I have 7+ years of software development experience. These days I work mainly with TypeScript, Node.js and Postgres, as well as production Go services and frontend work with Vue, Nuxt and React.
I'm based in Nepal and open to sponsored relocation or remote work where I'm legally eligible. You can reach me at hi@nirjan.dev.
Work I've been doing
- Clickout: fixed out-of-memory failures in queue-mode n8n workers, moved execution and binary storage to R2 with retention controls, and built tracing and operational dashboards. I moved permissions into a standalone API with roles, audit history and impersonation, and worked on production Go feed parsing and AI workflow guardrails, evaluations and fallback sourcing.
- Athlos (February–December 2025): worked on a B2B tournament SaaS, including a creation-flow MVP used by 92+ creators, billing for 6+ tenants, white-label themes and six-language support. I introduced Storybook and Playwright, and used PostHog and Grafana to understand product usage and WebSocket behaviour.
- Gfinity (December 2020–September 2024): migrated services, including Go services, from GCP to Fly.io, reducing hosting costs by 93%. I also built Node.js stock and price scraping that reduced scraping costs by 80%.
Selected projects
Outside work, I build tools I want to use myself. These personal projects show different parts of how I work; the public code is linked below.
RemoteDevJobs
A remote developer job board built with Nuxt 4, PostgreSQL and Drizzle. It brings several job feeds into a relational data model, with source adapters, a database-backed ingestion queue and filtered, server-rendered job listings. Ingestion and queue execution are authenticated, POST-only operations, separate from the public read surface. Visit the job board.
SafeCap
A Chrome extension for recording a screen, window or tab, built with Vue and WXT. Recording chunks are streamed to the browser's Origin Private File System, with library metadata kept separately in Chrome storage. It includes a guided microphone setup and optional on-device AI summaries and chapters via Chrome's built-in Summarizer. View it on the Chrome Web Store.
Litsi
A video-chat prototype with a Nuxt WebSocket signalling service and WebRTC audio and video. Room membership lives in server memory; calls can use a TURN relay when a direct peer connection is not possible, with capability-bound credential issuance and documented operating limits for the single-instance prototype. Try the prototype or read the documentation.
Servomon
A self-hosted Linux server monitor: a Deno agent reports metrics to a Nuxt dashboard with live, stale and offline states, a 24-hour retention window, and alerts over web push and Discord. Agents enroll with pairing-code approval, and remote commands run over WebSocket with single-use tickets and audit logging. Read the documentation or watch the demo.
I've also built Rosetide, a local-first period tracker with browser-local data, CSV backup and installable offline support. Try the app.
How I like to work
- Start with the user's problem. Keep interfaces clear, accessible and fast, and follow a feature through from the data model to the screen.
- Understand the fundamentals before adding abstractions. Prefer simple, well-understood tools and use profiling, debugging and tests to guide changes.
- Treat security, privacy, backups and observability as part of the product, not something to bolt on after shipping.
- Ship small changes, learn from feedback and iterate. Give teammates the benefit of the doubt and share what I learn.
I enjoy Linux, self-hosting and owning my data. I'm interested in how systems fit together, but I still care just as much about a useful interface and a good experience for the person using it.
Away from coding, I'm a cinephile and enjoy books, history, mythology and storytelling. I listen to a lot of hip-hop, play football or futsal whenever I can, and support Manchester United.