SystemHalted — Palak Mathur on software engineering, leadership, and Emacs
Start here
A few posts that capture what this site is about.
-
My Naming Philosophy
The rules I follow when naming variables, API fields, and schema elements. Most of it is borrowed from Kent Beck, Strunk, and Russ Cox; the rest is how I read their rules when the thing being named is a variable rather than a design.
-
Types Check Shape, Tests Check Behaviour
Notes from building a small text editor in Rust, and what a green-but-wrong save() function taught me about the line between what a type system can prove and what only a test can.
-
Org Incentive Optimization Problem
Most orgs are unknowingly running an “Org Incentive Optimization” algorithm that over-rewards flashy new platforms and under-values quiet reliability work, so you have to translate maintenance into visible, computable outcomes.
-
Reforming the Security Council Without Breaking Trust
A practical case for UNSC reform that preserves stability, legitimacy, and the incentives for major powers to stay invested.
-
Either This Or That - Why I Wanted Disjunctive Types In Java
When your Java methods really mean "either this or that" but the type system only says "here’s something…maybe," you’re flying blind. This post walks through using Result types, sealed hierarchies, and a bit of logic-thinking to make those hidden alternatives explicit, so the compiler – not your ...
Recent posts
-
My Naming Philosophy
The rules I follow when naming variables, API fields, and schema elements. Most of it is borrowed from Kent Beck, Strunk, and Russ Cox; the rest is how I read their rules when the thing being named is a variable rather than a design.
-
Removing a Package and Purging Its Traces
Removing Ghostty from Ubuntu turned into a walkthrough of the Debian package lifecycle - apt remove, the ii and rc states in dpkg, apt purge, and the per-user files no package manager will clean for you.
-
Running Ghostty on a 2012 GPU
I tried Ghostty after ghostel.el made coding agents usable inside Emacs. On my ThinkPad T430's Ivy Bridge GPU it would not open — Mesa stops at OpenGL 4.2 and Ghostty needs 4.3. The debugging steps, a look at Mesa's drivers, and why I removed it.
-
Switching to WezTerm
I switched to WezTerm on a 2012 ThinkPad T430 because it felt faster than GNOME Terminal and copy-paste was simpler. Benchmarks on the same machine show where that impression holds up, followed by the full Lua setup.
-
Review: Software Malpractice in the Age of AI
A review of Danny Tobey's argument that AI makes software malpractice harder to avoid, and why responsibility in software cannot be modeled exactly like medical malpractice.
-
[Book Review] Miner Town: Awakening (Miner Town, #1) by Ankit Saxena
An honest review of Miner Town Awakening, Ankit Saxena's ambitious dystopian science fiction debut - an imaginative world and a strong cast, held back a little by dense prose.
-
The 2D↔1D Problem in Text Editors
Editors show a 2D grid but store text as a 1D sequence. How textr, gedit, and Emacs bridge the gap, and why the choice follows the buffer's data structure.
-
Agent Loops as a Team Diagnostic
Four questions a team can ask about its own work, using Anthropic's agent loop taxonomy, to find the artifact it should write next.