Writings and ramblings

Microservices are often presented as an inevitable evolution of software architecture. The rationale goes something like this: once your codebase reaches a certain age or size, gravity itself pulls you toward service boundaries, containers, and a mesh of APIs because that’s the only way for to survive. Monoliths, they say, are the past. Microservices are…

Artificial intelligence, particularly large language models (LLMs), is routinely described as cutting edge technology. The term is used so often that it has almost lost its meaning. Any product, workflow, or company that includes an LLM is assumed to be modern by definition, regardless of what it actually produces, or whether it produces anything at all.…

There was a time when software respected the machine it ran on. Developers measured memory in kilobytes, not because they were nostalgic minimalists, but because they had no choice. Code was written with intent, because waste meant failure. Now, that discipline is gone, replaced by the assumption that users will simply have more RAM. Open…

For aspiring developers and juniors entering the field, this moment in time is pivotal. You’re being told you can build apps faster than ever, launch startups in a weekend, learn “just enough” programming to glue AI tools together. But if you skip learning how software actually works, you’re not speeding up your career. You’re quietly…

AI coding tools are spreading through software companies faster than any previous technology. Startups are embracing them for “productivity”, teams are embedding them in every IDE, and developers are boasting about how much code they can generate in an afternoon. It feels like progress. Is it? The truth is, using AI to write code is…

I’ve noticed a recent increase in project management method “obituaries” – Agile is dead, waterfall is dead, scrum is dead. I believe this sort of negativity should be considered harmful. Why? Every method was born out of necessity It’s only natural that in the early days of programming, in the 1950s and 60s, most projects…

Since the dawn of modern computing, files have been an integral concept in organizing and storing data. Today each device keeps internally track of hundreds of thousands or millions of files. This sheer quantity means that files perhaps are no longer an ideal way to either organize or store information. But is there anything to…

In the context of this article, the word “monolith” is used to represent monolithic development: a software or environment that lives in one source code repository and has one versioning scheme. This does not necessarily mean a single binary executable, or even a system that runs on a single computer. Almost every project starts as…