Back to blogWelcome to My Blog
By Krishna Goswami4 min read

Welcome to My Blog

PersonalOpen SourceBackend

I was scared of code

Not "this is hard" scared. Properly scared.

I still remember sitting in a college lab in India, staring at a C program that wouldn't compile, sure that everyone around me had been told something I'd missed. Semicolons felt like a trap. Pointers felt personal. And when something finally did run, I usually couldn't tell you why it ran, which somehow felt worse than it breaking.

So I did what a lot of students do. I decided I was "not a coding person" and started looking for a version of my degree where I could avoid it.

That plan lasted about a year.

What changed

The fear didn't go away because of a course or a tutorial series. It went away because I built something small and useless that worked.

I don't even remember what it was. Some script that pulled data off a page and dumped it into a file. But there's a very specific feeling the first time a machine does exactly what you told it to and you understand every line of why. It stops feeling like an exam you're failing and starts feeling like a tool in your hands. Once I felt that, I couldn't stop.

The fear didn't disappear either. It just changed shape. It turned into the ordinary kind of nervous you get when you open a codebase you don't understand yet. It took me a while to work out that this feeling is the job, not proof that you're bad at it.

Krishna Goswami

This is me, usually somewhere between a failing test and a fix.

Learning in public

The best thing I did was start contributing to open source before I felt ready, because I was never going to feel ready.

I started with Open Library, the Internet Archive's project to build a web page for every book ever published. That taught me things no side project could. How to read a big codebase written by strangers. How to open a pull request knowing it's going to get picked apart. How to explain why you did something the way you did. And the one nobody warns you about: maintainers are just people who want the thing to work.

Later I spent a summer with Summer of Bitcoin working on LND, the Lightning Network Daemon. That was the deep end. Go, peer to peer protocols, payment channels, and a codebase where a careless change isn't a bug, it's someone's money. I ended up writing an automated fuzzing tool for it that turned up a pile of backend issues I'd never have caught by reading the code. Fuzzers are great for one reason. They have no ego and no assumptions.

Somewhere in there, the scared student stopped being the main character.

Building for real people

Alongside open source I started freelancing, writing backend systems in Go and Python for clients overseas. Completely different lesson. Open source teaches you to write code other developers can live with. Client work teaches you that the code is the smallest part of the job. Scoping it. Saying no. Explaining a tradeoff to someone who doesn't care about your architecture. Shipping something that has to keep running while you're asleep.

I've also worked on a Government of India initiative called SmartTree, a tool for cataloguing trees in the field. Every tree gets a QR code you can scan and a printable record sheet, so someone standing in front of it can pull up its details. No fancy stack, no clever abstractions. Streamlit and Pillow, and it did the job. It's still one of my favourite things I've built, because the people using it were never going to read my code. They just needed it to work under a tree, on a phone, in the sun.

What this blog is for

This is where I write it down. The systems I build, the bugs I chase, the things that took me three days and should have taken thirty minutes.

I want to write the posts I wish existed back when I was the student who was scared to open a terminal. The ones that show the confusion and the wrong turns, not just the clean final answer. So expect backend engineering, Go and Python, notes from open source work, and every so often something about how to keep going when the code won't.

If you're at the start of this and convinced you're not a coding person, the gap between us is smaller than it looks. It's mostly just time, and being willing to be bad at something in public for a while.

Thanks for reading. More soon.