Hey, I'm Vishal "Goblin" Gurung.
I grew up in Nepal and now live in Japan, working as a system engineer. Most of my time goes into building software, fixing things, and figuring out why something that worked yesterday has suddenly stopped working today. I've always liked taking things apart to understand how they work, and eventually that turned into writing software and spending an unreasonable amount of time around computers.
What I do
My work is mostly around the systems behind software: CI/CD, release pipelines, infrastructure and the things that need to work before an application ever reaches its users. I enjoy the practical side of engineering, especially tracking down problems that aren't immediately obvious. A missing path segment, a configuration that behaves differently on another platform, or a deployment that fails for some completely unrelated reason. I've spent enough time debugging these things to know that the problem is not always where you expect it to be.
Most of my day-to-day work involves TypeScript and Node.js. I also work with Rust, React, PostgreSQL and SQLite, along with Cloudflare for hosting and infrastructure. I don't have a particular interest in using the newest tool just because it's new. If something does the job well, is reasonably simple to maintain, and doesn't make life difficult for whoever has to work on it later, I'm happy with it.
Projects
I tend to build things when I run into a problem that I don't want to deal with again. Sometimes they're small utilities, sometimes they turn into much bigger projects, and sometimes they end up being useful to people other than me.
RealityMap started because I was tired of manually going through large JavaScript and TypeScript repositories to understand their import relationships. I wanted a quick way to see how a project was connected without spending half an hour jumping between files. So I built one. You can run it with npx reality-map, explore the project structure locally, and keep your source code on your own machine. No accounts, uploads or cloud service involved.
I also maintain SUTRA, an open-source tool that reduces unnecessary output from AI coding agents. The goal is to make agent sessions less noisy without losing information that might be useful later. It's been an interesting project to work on, particularly because integrations with different agents come with their own quirks.
Open source
Apart from my own projects, I contribute to software maintained by other people. One example is Caveman, where I've worked on the Codex integration. Some of that work involved looking at assumptions in the existing integration and figuring out what needed to change to support a different coding agent properly.
Not every contribution goes as planned. I had a larger pull request declined, went back to the problem, and eventually submitted a smaller version that was merged. I wrote about the experience because I thought the first attempt was worth documenting too. There's usually something useful to learn from work that doesn't go the way you expected.
Writing
I occasionally write about projects, technical problems, open source contributions and things I've learned while working on software. I don't really follow a publishing schedule. Most posts start with something I found interesting, frustrating, or difficult to figure out, and I write it down while I still remember the details.
Contact
You can find most of my work on GitHub. I'm also on Instagram. For anything work-related, questions, or just a conversation about something I'm building, email is the best way to reach me. The address is in the sidebar.