The System Halted — Palak Mathur on software engineering, leadership, and Emacs
Start here
A few posts that capture what this site is about.
-
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.
-
Part 7: Kahan Summation - A Better sum() for Java Streams
Learn why naive summation loses digits and how Kahan compensated summation helps. Includes Java Stream integration, test strategies, and when to use BigDecimal instead.
-
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.
-
TDD as a Management Technique Revisited
I still think TDD is a Taylorian construct. What I care about now is thinking about testing and evaluation before writing code.
-
[Movie Review] Dhurandhar
Review of Hindi movie Dhurandhar
Recent posts
-
What Sits Underneath the Agent Loops Post
Anthropic's Claude Code team described four kinds of agent loops. Notes on where the check on the work lives in each, and on the artifacts a team has to make durable underneath them.
-
Property-Based Testing: Testing Rules Instead of Examples
An example test checks the inputs you happened to choose. A property-based test states a rule and lets the framework generate inputs that try to break it. Notes from continuing a small text editor in Rust.
-
Git Worktree and the Myth of a Single Working Directory
While working on a feature recently, I needed to look at something on another branch. Normally this would involve one of the workflows most Git users are familiar with: commit the current changes, stash them, or temporarily abandon the current state and switch branches. None of those options felt...
-
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.
-
Java Generics: The Cost of Type Erasure
Generic types in Java are excellent for compile-time safety, but weak as runtime type descriptors. Whenever a framework crosses a runtime boundary such as JSON, reflection, dependency injection, messaging, persistence, or RPC, it often needs an explicit replacement for the erased generic type inf...
-
Renaming a Linux User Without Losing Your Setup
When I installed Ubuntu on a spare laptop, my intent was to make it usable for my son. So, I named the account old-user (obfuscated for obvious reasons). However, my son moved on and took my old MacBook Pro, leaving this laptop for me. The first thing I wanted to do was personalize it by renami...
-
Saving Private Notes
How I cleaned up a thousand Apple Notes by being honest about what I actually use notes for, building a small folder structure to match, and drawing a hard line between notes and tasks.
-
Insight Agents and the End of Dashboard-Driven Analytics
Why Insight Agents signal a shift from dashboard-driven analytics to conversational, agentic systems that prioritize speed, context, and real business understanding.