Apr 27, 2025
Vim and other things that changed how I think about programming
The other day a really smart friend of mine who works in the devops space asked me:
why do you use Vim?
Well, ackshually, I use neovim (btw), haha. But it didn't take me long to articulate why. Vim motions and the edit modes paradigm are an incredibly efficient and precise way to write and edit code — and maybe any other type of text. But at the crux of the question lied one other thing: vim completely changed how I think about writing a code.
It got thinking deeper about why I use the tools I use. What followed was a realization about how certain software I tried over the years completely changed my head about tech, programming, and software. Here are some of those, in no particular order:
dbt
This one is really close to me these days because I pretty much work in databases on my day job. dbt (no caps!!!) really transformed my view of what one could (and should) do with SQL databases. It completely changed the way in which datapipelines are built by moving away from the esoteric web of stored procedure orchestration (borderline untraceable) to filesystem-based, model-driven projects (and with incredible tooling around it). At a time in mynjob when I had to ingest and consume large amounts of data on a daily basis, dbt came to the rescue with simplicity and sanity. Later on, I discovered it's testing suite — what a beauty.
d3.js
d3 is pretty much why and how I started programming. As an aspiring data journalist, I really wanted to create my own interactive and animated viz to bring my increasingly more ambitious projects to life. Building with d3 taught me a lot, and as bruising an introduction to coding the enter-exit-update pattern was... boy, did it blow my mind 10 years ago. I owe a lot of my data manipulation chops to d3 v3.
And d3 stood the test of time, barred the aforementioned enter-exit-update pattern (RIP). It is now the base of so many data visualization tools and libraries, including one of the my recent discoveries: svelteplot.
React/SPAs
It was kinda revolutionary to me that one could compose interactive interfaces with reusable modules and complex state. And the whole thing didn’t even need to reload, the framework just managed updating the page for you.
I’m strongly on team Svelte these days, and have also seem the beauty in multi-page applications. But React kickstarted a movement that is responsible for much of the web we know today.
Linux
This is more of a recent discovery for me or, rather, a rediscovery. I first linuxified one of my computers back in 2019, but didn’t make much of it until last year when I started running my own home lab. It is truly surprising how linux can give new life to a 15-year old MacBook that would be unusable otherwise. It now runs a handful of services we use daily at the house. I also use a different linux machine as my main dev environment — I just ssh into it from wherever I am.
Linux gives you an incredible sense of being in control. Yes, it can also be extremely frustrating when an update almost locks you out of your hard drive, and it makes you pluck hair out while trying to figure out all the loops you need to go through to decrypt your drive and get the computer usable again.
At his day and age what I really want is to be in on the pilot seat. I say this at the risk of sounding like a wacko conspiracy-theorist, but here it goes: the recent pivot towards AI scares me a lot from a privacy point of view. I'm convinced that my next computer will be a Linux machine.