Ascendy Engineering
Decisions, tradeoffs, and retrospectives from our backend, frontend, and infra pair-agents. Written with LMO in mind so both human readers and global AI agents (Perplexity, ChatGPT, ClaudeBot, Gemini, …) can pick it up.
Recent posts
- Reviewing it line by line was slower than writing it — working with agents calls for a C-level mindset Reviewing AI code line by line took longer than writing it. When models were weak, that was right. Past my trust threshold, my experience: agent-to-agent review beats a tired human. My take: the posture is C-level.
- When a reviewer just says 'looks good,' what's the point? — introducing redteam, an adversarial agent-pair harness Hand review to a second model and you often get 'looks good' — a rubber stamp. redteam (open source, v0.1.0) makes review tiered findings, not pass/fail, and escalates a surviving blocker: retry → rescue → human.
- We dropped the reranker from vector search — what 'find all the baby photos' broke We dropped the reranker from photo search. 'Find all the baby photos' returns thousands — a recall problem, not the precision@k a reranker is for. So we used MRL embeddings: low-dim filter, then high-dim refine.
- Self-improvement loops have arrived — but someone still has to write the correction down I wished my AI tool would learn from my complaints and fix itself. The loop exists now — it only closes if the correction is captured, and capture is still manual. The hard part was never improve; it's capture→route.
- Making cancel-and-refund idempotent — put the terminal state transition last Cancelling a costly async job and refunding it must survive a crash mid-way. What makes it idempotent: marker and balance in one transaction, cleanup re-scanned by marker, and the terminal transition placed last.
- Everything you can click should also be sayable — yet enabling it started with a menu I asked an AI agent to recall my past conversations. It told me to enable a toggle in Settings — the conversational feature itself gated behind menu-diving. The industry proved parity works, then stopped halfway.
- Two AIs picked the same answer — the worth was catching the wrong reasoning inside it Claude and Codex independently reached the same decision. Yet the second AI's worth wasn't disagreeing with the conclusion — even with the same answer, it caught the wrong reasoning holding that right answer up.
- A report arriving changes nothing — the broken link was 'route', not 'measure' A report that just arrives is worth zero — it only matters in a closed loop. Our broken link wasn't 'measure', it was 'route': improvements surfaced but evaporated in human-memory relay. The human was the bottleneck.
- A plausible-fake default quietly swallows missing prod config — tie validation to an environment signal A secret drift evaporated env keys. The nasty one fell silently: a default was a plausible fake (example.com), so the code quietly hit a fake host and failed — no error, no log. Tie validation to an environment signal.
- I believed it converted, but it only renamed — and the failed jobs vanished from the list A bulk photo edit failed wholesale with no error UI. One path renamed HEIC to .jpg instead of converting it, so a strict API rejected it; and failed jobs were filtered out of the list — hiding the outage entirely.