AmanERPAmanERP
Blog

AmanERP Blog

Engineering notes from AmanERP on AI-native software, verification, audit trails, and operating with rigor in public.

A horizontal timeline with four marks — a license flipping upstream, the dependency adopted, the audit that catches it, and a wide migration span — showing the cost of the unasked license question.

OPEN SOURCE LICENSING

The AGPL Trap That Forced an Identity Provider Migration

Why AGPL license risk forced a six-week identity-provider migration: the Go static-linking trap, the two-axis license matrix, and the rule that keeps product code safe.

Niraj Kumar2026-06-175 min read
Read article
An illustration of a single hand resting on one deliberately chosen lever beside many identical untouched levers.

FOUNDER STRATEGY

30 Sprints Solo With AI: The Bottleneck Was Never Velocity

30 sprints solo with AI, roughly 921 items shipped, zero open bugs. The honest retrospective: the real bottleneck in software is decision quality, not velocity.

Niraj Kumar2026-06-176 min read
Read article
A dark editorial control room interface where structured prompt cards route work through clear engineering gates.

AI ENGINEERING

Prompting Is a Control Plane, Not a Vibe

Treat prompts as an engineering control plane: scope the task, point to sources, name checks, state constraints, and make evidence mandatory.

Niraj Kumar2026-06-165 min read
Read article
A precise blueprint table showing scope, acceptance criteria, and definition of done before any code is written.

SPEC DISCIPLINE

Spec Before Speed: The Cheapest Place to Catch Scope

Before an AI agent writes code, make the ticket engineering-ready: objective, boundaries, acceptance criteria, definition of done, and deliverables.

Niraj Kumar2026-06-165 min read
Read article
A top-down coordination board with four agent lanes, file ownership boundaries, and a supervisor lane preventing collisions.

AGENT ORCHESTRATION

Parallel Agents Need Air-Traffic Control

Parallel AI engineering needs sequencing, file ownership, a concurrency ceiling, and supervisor discipline before it needs more agents.

Niraj Kumar2026-06-166 min read
Read article
A verification console where command output, exit codes, and screenshots are pinned above a blocked completion stamp.

VERIFICATION

Evidence Beats Assertion in AI Engineering

AI agents should report commands, outputs, exit codes, and screenshots, not confidence. Verification is a contract, not a mood.

Niraj Kumar2026-06-165 min read
Read article
Two independent review panels compare a pull request, highlighting production risks before the merge path opens.

CODE REVIEW

The Adversarial Review Loop That Keeps AI Useful

A useful AI review loop separates planning, adversarial critique, implementation, branch review, and only the high-confidence fixes.

Niraj Kumar2026-06-166 min read
Read article
A root-cause investigation board showing logs, hypotheses, a failing reproduction, and the confirmed cause converging into one fix.

DEBUGGING

Debugging Starts After the First Counterexample

Disciplined AI debugging starts with evidence, ranked hypotheses, a reproduction, and a root-cause fix rather than patching the symptom.

Niraj Kumar2026-06-165 min read
Read article
A test dashboard where one meaningful red assertion blocks a row of shallow green checks.

SOFTWARE TESTING

Tests Must Be Able to Fail for the Right Reason

Useful AI-generated tests assert behavior, cover acceptance criteria, avoid fake mocks, and prove they can fail for the right reason.

Niraj Kumar2026-06-165 min read
Read article
A context window meter allocates limited space to decisions, changed files, tests, and next actions while noisy transcripts fade out.

CONTEXT HYGIENE

Context Is a Budget, Not a Backpack

Treat context as a finite operating budget: offload broad investigation, write handoffs, preserve decisions, and restart before drift becomes rework.

Niraj Kumar2026-06-164 min read
Read article
A pull request review surface with exact staged files, risk notes, rollback notes, and distinct gate status rows.

PR HYGIENE

Clean PRs Are an Engineering Interface

AI-written code still needs human-reviewable commits and PRs: exact staged scope, clear intent, risk, rollback, and distinct gate status.

Niraj Kumar2026-06-164 min read
Read article
A product screen audit board marking hierarchy, spacing, states, and missing workflow cues as operational defects.

ENTERPRISE UX

Premium UX Review Is Not Taste, It Is Operations

Premium UX critique should inspect workflow, hierarchy, state coverage, interaction, copy, and information availability, not generic styling opinions.

Niraj Kumar2026-06-165 min read
Read article
Two nearly identical abstract control panels sit side by side, differentiated only by a small shape difference.

ENTERPRISE UX

Cognitive Load Is the Real Enterprise Software Killer

Mode confusion cost Citibank $500M and has killed aircraft. The same named failure class lives in enterprise software. Here is the design rule that prevents it.

Niraj Kumar2026-06-037 min read
Read article
Two terminal panels describing one server — a health endpoint returning status ok beside a psql \dt output reading "Did not find any relations."

RELIABILITY ENGINEERING

Your Server Said 'Healthy.' The Database Had Zero Tables.

A database connection proves TCP and auth, not that the schema exists. The silent empty-database failure, and the one health-check that actually catches it.

Niraj Kumar2026-06-032 min read
Read article
A three-row matrix showing unit tests, mock acceptance tests, and integration tests, each with a column of what it proves and a column of what it cannot see — the cannot-see cells lining up into a single visible gap.

SOFTWARE TESTING

181 Tests Passed. Zero Features Worked.

181 tests passed while the app had zero tables, dead metrics, and broken auth. What mock-only tests prove, what they miss, and the layer that closes the gap.

Niraj Kumar2026-06-036 min read
Read article
A minimal terminal card showing a pathspec git commit stopped by a pre-commit check reporting unstaged lines.

AI-NATIVE VERIFICATION

git commit -- file.go Doesn't Limit Scope. It Does the Opposite.

git commit pathspec re-stages the file's whole working tree. With parallel AI agents sharing one git index, that means ghost commits. Here's the fix.

Niraj Kumar2026-06-026 min read
Read article
An illustration of a precise, fully poured building foundation beneath a lot where the visible structure has not yet been built.

FOUNDER STRATEGY

I Said No to ERP Features for Multiple Sprints. It Was My Best Decision.

Why I refused to build an ERP feature for multiple sprints and built the authorization platform first: a competitive-moat call most founders get backwards.

Niraj Kumar2026-06-025 min read
Read article
A minimal terminal card showing a mutation report: 100.0000% effective efficacy directly above mutants_killed = 0 and mutants_timed_out = 603, the contradiction carried by the numbers alone.

AI-NATIVE VERIFICATION

100% Mutation Efficacy, Zero Mutants Killed: A Gate That Asserts Nothing

A mutation-testing gate reported 100% efficacy with 0 mutants killed — all 603 were timeouts. A gate that asserts nothing scores perfectly. Why filed ≠ solved.

Niraj Kumar2026-06-026 min read
Read article
A structured drill receipt with its recovery-time row blank, a ghosted zero being stamped into the gap beneath a green pass verdict.

ENGINEERING DISCIPLINE

Schema-Aware Gates: Validate, Don't Coerce

Schema-aware gates should validate and fail closed. Defaulting missing fields to zero turns a correctness gate into false evidence.

Niraj Kumar2026-06-026 min read
Read article
A rejected one-page proposal ending in a four-item revisit-if checklist, three boxes ticked, with the rejected reasoning preserved at the fork of an untaken path.

ARCHITECTURE DECISIONS

RFC Before ADR: The 'Maybe' Layer That Saves Bad Decisions

An RFC layer between idea and ADR records rejected options, open questions, and constraint tradeoffs before decisions become permanent.

Niraj Kumar2026-06-027 min read
Read article