Monarch Wadia
LLMs and agents are not magic. They're a handful of well-understood pieces. The hype around them makes that hard to see.
I do innovation work in environments that don't tolerate surprises: banks, telecom, government, wealth management. In those places, "the model has to log what it does" and "a person must approve that before it ships" are requirements, not suggestions. Most of what I write here is what my work has taught me.
- This website has no framework. It has a spec.This site is rendered by a custom static site builder that an AI agent wrote in Go. Every behavior comes from a plain-text spec, and the build fails if the code drifts from it. Here is how that works.
- Convention as code: enforcing architecture with scripts, CI, and AI agentsScripts solve the knowing. Agents solve the doing. CI solves the forgetting.
- Why LLMs can't count lettersTokens, vectors, and the strawberry problem.
- Large language modelsTireless, fast, and unable to count the R's in strawberry.
- Pattern: LLM in backendKeep prompts, orchestration, and keys server-side. The default for regulated environments.
- Pattern: LLM in frontendThe browser owns prompts and orchestration; the backend proxies. Fast iteration, weaker control.
- Vibe coding creates legacy code from day oneLegacy code is any code the team can't easily understand.