Written by Kishore Athrasseri
Published on Fri Oct 10 2025
I was bitten by the existentialist bug in my late teens and spent much of my undergraduate engineering years agonising over the lack of meaning and purpose in the abstract technical concepts we were taught in class. I was one among a few chronic backbenchers who were notorious for dozing off in classes.
It’s hard to describe the shock on the face of our Computer Networking professor when one fine day I, along with a fellow backbencher (who I refrain from naming for fear of defaming him - he’s a highly accomplished analog electronics engineer today), walked up to him and asked if we could give a presentation to the class about a networking simulation tool.
My friend and I had stumbled upon Netkit. A powerful, yet simple tool for exploring and learning about computer networks. You could spin up lightweight virtual machines represented as terminal windows, and connect them together in virtual networks of different shapes. You could configure one as a router with multiple network interfaces, another as a regular node, and so on. All using standard linux utilities and commands.
I didn’t know much about it at that time, but now I understand that the Netkit VMs were based on User Mode Linux, a lightweight container-like technology that existed before Docker was a thing.
This was in the late 2000s, and powerful multi-core processors were still only starting to appear on the horizon. The Netkit machines weren’t full-fledged VMs, the experience of tinkering with them felt very real and not contrived. That authenticity of the tool stimulated us two backbenchers enough to gather the courage to pitch the presentation to our professor, knowing fully well that he knew we slept through most of his classes. We wanted to share our excitement with the class.
Our professor gracefully agreed to give us an hour for the presentation. I’m sure the irony wouldn’t have escaped him, but he was too decent to voice it out aloud. The presentation went well. Most of the class and the professor appreciated it, though I don’t think any of them ever tried playing around with Netkit themselves. Linux and the command line was far too alien even for a bunch of engineering students.
To be fair, I don’t either my friend or I spent much time on Netkit either, once the presentation was done. We had just found a cool toy that we wanted to show off, and that was that. Still, it was one of the brighter moments from those years when I look back, and I realise that experience of tinkering stayed with me.
My existential questions took me on a meandering journey in my professional life. Through my twenties, I worked as a teacher in a school, I worked on a sustainable development project in a village in Kerala, tried my hand at organic farming, went back to teach in the same school, worked in an “ed-tech” (educational technology) company, before becoming a full-time software developer.
The details of that journey are not relevant to the topic at hand, except to illustrate how tenuous my link with software technologies was in the intervening decade.
By the quirks of fate, I ended up in a one-man team building a web application. I found myself in a rare position of being able to experiment with and learn about the entire workflow, from frontend UI to the backend to deployment on the cloud.
A choice I made early on was to avoid serverless solutions and manage my own VPSes. For the application, for the database, everything. I’ve been deeply influenced by the Law of Leaky Abstrations and I feel it’s better to get one’s hands dirty and deal with the messy details than to be blissfully unaware of them until the whole facade collapses. Thankfully the project I was working on was a reasonably-paced one with a long term vision, so I had the space to invest time in infrastructure management.
When I started deploying applications on VPSes on the cloud, I realised that at times the configuration involved is non-trivial and it’s difficult to always get it right in the first attempt. I turned to Virtualbox to launch VMs locally that mirrored the deployment I wanted in the cloud, and experimented with them until I arrived at the right settings.
When I see the terminals of the VMs scattered on my screen, I’m reminded of the experiments with Netkit all those years ago. It strikes me that these terminals I’m talking to today are full-fledged linux servers, unlike the lightweight UML containers of Netkit. My host machine is a modest one, with an i5 processor and 8 GB RAM. Still, I can comfortably spin up half a dozen of these VMs at a time.
It’s one of those moments when it strikes you how abundant computing resources have become over the years. That’s not something I get to feel much in everyday usage, because generally the software bloat has outpaced the increase in computing power.
I plan to document some of my Virtualbox VM experiments on this blog in the coming days.