OCaml and the ML Lineage: What Survived, What Broke, and Why It Still Matters

The ML family is one of the most influential yet consistently misunderstood lineages in programming language history. OCaml stands at the center of this tradition as a rare example of a language that preserved conceptual clarity while evolving toward real world practicality. Many modern languages borrow from ML without acknowledging the source. Others attempt reinvention and rediscover solutions ML had decades earlier.

Reclaiming Knowable Machines Across Systems

After I published my earlier essay titled The Decade We Forgot: How We Traded Intimacy for Scale a reader asked whether it is still practical to foster introspection at scale or whether the economic barrier has become too high to overcome. This article is a direct continuation of that piece. It expands the discussion to tooling, hardware, infrastructure, organisational culture, AI systems and economic incentives. The goal is to show that we can still build machines we understand. My answer is that yes, introspection remains possible at scale, but only if we recognise how many dimensions it touches and act accordingly.

The Hidden Internet

The old internet felt special because it was small. The early web was shaped by hobbyists and enthusiasts who built communities that were small enough to feel human. This feeling faded not because of nostalgia or technology but because the internet grew larger than the communities that once defined it. These communities were overshadowed by platforms built for scale but they continue to exist underneath the noise.

Designing a Language with a VM Model but without Runtime Bloat

Many developers want the clarity and control that comes from designing a language around a custom virtual machine, but they do not want to ship a heavy runtime, a slow interpreter, or a dependency that resembles Java or the .NET framework. A language can use a virtual machine internally while still producing very small native binaries. The VM becomes the semantic core, not a component that must be delivered to the end user. This article explains how such a system can be designed, how to structure the toolchain, and how to keep native executables small and portable.

A Language With Pluggable Syntax

Introduction Modern programming languages keep repeating a mistake that goes all the way back to the 1950s: they force you to commit to one syntax. The moment you choose a language, you inherit not only its semantics and features, but also its aesthetic, its indentation rules, its punctuation rituals, and all the historical debt that came with its design.

Lost Wonders of Computing

Lost Wonders of Computing When I look back at the languages and systems of the 60s, 70s, and 80s, I don’t just see “old tech”. I see entire worlds of thought, ideas that modern computing quietly abandoned.

Abandoning Windows for Linux - Part 4

Over these five days I transformed my workflow. I learned how to manage time and notes with Org-agenda, linked my journal to Org-roam, wrote admin scripts, fell into the VPN transparency rabbit hole, considered building my own mail server, and wrestled with the absurd verification hurdles of modern social media. By the end of the week, I had a working Hugo blog fully integrated with Emacs keybindings and a deeper appreciation for how messy, funny, and rewarding the digital world can be when you insist on doing things your own way.

Abandoning Windows for Linux - Part 3

After several rounds of installing, breaking, and nuking both Emacs and Doom Emacs, I somehow ended up learning Vim, Lisp jokes, and the art of starting from scratch. Between building configs, experimenting with Org-mode for everything, and testing games on Linux (which surprisingly ran better than Windows), I spent more time tweaking than doing—but I’m finally starting to understand how it all fits together. Pain, parentheses, and progress.

Abandoning Windows for Linux - Part 2

The Process of Discovery While I am still working on my method of delivery, what I hope those articles will give the readers, is to show all the benefits of alternative working environments that they might not be aware of and the process of learning all of it. Instead of making me look like an expert who makes no mistakes, I want to show how a true process of learning looks like, even for someone who is already experienced with technology.

Abandoning Windows for Linux - Part 1

Nuked Windows, embraced chaos, and installed Arch (twice). Learned that “manual install” means “pain”, discovered archinstall is the real hero, fought UEFI demons, and achieved enlightenment through Btrfs, Wayland, and two reinstallations. Now running a minimal desktop with maximum trauma and a newfound sense of superiority.

Abandoning Windows for Linux - Introduction

This isn’t just another “I switched to Linux” story. It’s a journey. It’s a documentation of my slow descent into madness a slow, glorious descent into terminal dependency. A story I want to document. A record of confusion, discovery, frustration, and small victories.