Notes
What I learned building it
Build logs, teardowns and the occasional framework. Written for the version of me who was about to waste a weekend on the same thing. No predictions — only what I ran, what it cost, and where it fell over.
- 4 min
The API that could buy but not sell
Four buys placed clean. Three sells failed with the same cryptic error. The asymmetry was the diagnosis — buying credits your demat account, selling needs the depository's standing permission.
- 5 min
Assume filled, allow correction
When someone mirrors a model book by hand, you cannot see their fills. Book the intent, stamp it 'assumed', and make provenance a field — because a rebalance that nets against a phantom position sells shares nobody holds.
- 4 min
Cash is a position, not a residue
'No trade' is a valid decision only when it names what is missing. The rule that stopped my book from quietly hoarding cash: a hard ceiling, and a ladder that must act above it.
- 4 min
The copied stop was looser than mine
Everyone who mirrors the book is supposed to carry the same exit as the book. Then I diffed the published file against the live one: twelve days stale, and five of twelve exits looser than the ones protecting my own money.
- 4 min
Publish after the fill, never before
The morning post renders at 08:50. The order fires at 09:20. Naming the stock in between is publishing your own order thirty minutes ahead of it — in names that trade a few lakh a day.
- 4 min
The retry loop that traded twice
For three days my reconciler kept re-queuing exits a human had already placed by hand. The machine's audit log was honest — it just wasn't the whole truth — and one order finally executed twice.
- 4 min
The right answer, printed to nobody
A cash-management script computed the correct action on every single run — as a printout, with nothing wired to read it. ₹3,677 of tradeable cash, a ₹30,000 buffer, and a perfectly idle recommendation.
- 3 min
The track record started on the wrong day
My public performance page rebased its index to the first day a snapshot existed — not the first day money was at risk. Sixteen days of history quietly fell off the chart.
- 4 min
Two companies with the same first name
My filing monitor matched an exchange announcement to a company I hold — from a company I don't. The matcher had quietly thrown away every word that told them apart.
- 4 min
Unreadable is not zero
The costliest type confusion in finance: an account that fails to read is unknown, and unknown is not empty. Three places my system nearly treated a timeout as a balance.
- 4 min
The lookalike cut reach 87% — and the midnight read nearly cost more
CPM stepped up the exact day a new audience went on. The obvious fix was wrong, the panic read was an artifact, and every correct answer came from a check that was free.
- 4 min
The metric the platform optimises is not the metric you sell with
Ranked by cost per conversation, the fear ad was our best performer. Ranked by actual buyers, it was the most expensive lead source in the account — by 12×.
- 4 min
22 leads at ₹10 each, and nobody home
A campaign ran for 20 hours and produced the cheapest conversations the account had ever bought. Every one was dropped — because a campaign has four parts and we launched one.
- 4 min
An ad set named for a placement proves nothing
Cost per conversation went from ₹8 to ₹20 on flat spend. The ad set was named after the cheap placement; its configuration had never heard of it.
- 3 min
The audit that was out by 13×
An ad-account review read one page of an API response and reported ₹41,000 of lifetime spend. The true figure was ₹5.4 lakh. Pagination is a finding, not a footnote.
- 4 min
The commit landed. The server didn't care.
A fix I'd marked done ran nowhere for four days. The repo, it turns out, is not production — and my calmest log file was a decoy.
- 4 min
The account records 97 conversions and bids on 4
A month inside a small search account: the number in the meeting was 24× the number the machine optimises toward, and budget was never the constraint.
- 4 min
Your competitor's CTR does not exist
Every tool selling rival ad metrics is estimating. The one honest signal in the Ad Library is free: how long an ad has been allowed to live.
- 4 min
The dashboard said 1.5×. The till said 0.97×.
Reconciling a month of ad-platform claims against the store's own orders. The platform over-claimed by 40%+, and 'profitable' quietly became 'underwater'.
- 4 min
The best ad was already in the account
Before generating anything with AI, I listed a client's old ad videos. The footage that beat everything was unpolished phone video nobody was using.
- 5 min
Token discipline: five questions before an agent run
Most agent cost isn't the model. It's context you re-send, work you re-do, and a model tier you never questioned.
- 6 min
Why an LLM wiki beats RAG for law that amends itself
Retrieval assumes your documents sit still. Tax law does not. The structural argument behind CA_wikiIndia.
- 3 min
Receipts, not takes
A take is a sentence. A receipt is a screenshot. The rule I use to decide whether something is worth publishing at all.
- 4 min
The technical co-founder I spent years looking for
Every idea I had needed someone else to build it. So none of them got built. Then that stopped being true, and nobody sent a circular.