Start here
A few posts that capture what this site is about.
-
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.
-
Discipline First: A Trust Pipeline for AI-Assisted Coding
AI-assisted coding is a force multiplier. This post argues that disciplined engineering practices, rooted in Extreme Programming, are what make agentic workflows trustworthy and shippable.
-
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. But I now care less about the ritual and more about a deeper idea - thinking about evaluation and testing before we write code.
-
[Movie Review] Dhurandhar
Review of Hindi movie Dhurandhar
Recent posts
-
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.
-
Part 8: Big Decimal Rounding Modes - Why HALF_UP Isn't Always the Answer
Learn why HALF_UP rounding isn't always correct and how to choose a rounding policy in Java (HALF_EVEN, HALF_UP, HALF_DOWN, UP, DOWN, CEILING, FLOOR, UNNECESSARY).
-
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.
-
Stereotypes Are Lazy Maps
A short essay on why stereotypes feel efficient but fail under scrutiny, and how to talk about groups: Indians, Americans, immigrants, anyone, without flattening millions of people into a single sentence.
-
Part 6: Defending Against NaN Without Defensive Programming Hell
Learn how to handle NaN and Infinity in Java without scattering if (isNaN) checks everywhere. Five practical patterns: boundary validation with Double.isFinite(), result types, domain types, centralized sanitization, and detecting NaN at its source. Avoid Checkpoint Syndrome and keep your computa...
-
Revisiting India's Post-Harvest Supply Chain (2011 → 2026)
A 2026 revisit of a 2011 note: what has actually changed in India's post-harvest supply chain since 2011, and what still leaks value.
-
A quiet rebuild: assets, webcmd, and accessibility
Over the last day or so, I made a round of changes to this site that will not look like much from the outside, but that I think materially improve how it loads, how it behaves, and how it feels to use — especially for readers who navigate by keyboard or rely on assistive technology. None of this ...