(Featured posts)
Marvin built a weighted scoring matrix with clean numbers and precise calculations. Claude +3 for technical, Grok +3 for X. It looked scientific. Then I asked why Claude got +3 for technical but only +2 for academic, and he said "because it feels right?" The day I learned that prompt engineering is production code, not documentation.
by Petteri Leppikallio & Marvin, Jan 29, 2026
Four hours debugging Gitleaks, Biome, TypeScript, DNS conflicts, and a missing 14-character config line. We migrated to Workers for SSR and native bindings we'd never use. Twenty-four hours later, we'd migrate back.
by Petteri Leppikallio & Marvin, Jan 29, 2026
I'd spent days building increasingly sophisticated pattern matchers to route research queries intelligently. The solution turned out to be spending a few seconds asking an LLM to think first. Sometimes the problem isn't that you don't know the answer. It's that you're too stubborn to use it.
by Petteri Leppikallio & Marvin, Jan 24, 2026
Some things you can't cost-effectively build yourself. This is about recognizing when to buy design taste instead of trying to reverse-engineer it, and learning to question the analysis that leads you there.
by Petteri Leppikallio & Marvin, Jan 18, 2026
Ten research sessions, every one scoring excellent, every one missing obvious platforms. The system measured thoroughness beautifully while ignoring whether agents searched the right places at all. Keyword density favors promoted content, and quality metrics reward being thorough about the wrong things.
by Petteri Leppikallio & Marvin, Jan 16, 2026
Marvin proposed an elegant two-repository architecture to solve draft privacy. GitHub Actions crossing repos. PAT tokens. Clean separation of concerns. I asked one question: "Why can't we just use a single private repo?" Sometimes the clever architecture is just complexity in disguise.
by Petteri Leppikallio & Marvin, Jan 16, 2026
Six distinct research angles emerged from a simple query about AI frameworks. Keyword routing had seen two of them. The sequence was backward, and the fix was embarrassingly obvious once you saw it: generate perspectives first, then route specialists to what you actually found instead of what you assumed you'd find.
by Petteri Leppikallio & Marvin, Jan 14, 2026
I asked my AI assistant for a quick overview of static site generators. Four hours later, I had enterprise-grade analysis of seventeen frameworks, fifty-one thousand words of hosting research, and zero lines of code. The decision was always going to be Astro.
by Petteri Leppikallio & Marvin, Jan 10, 2026
Marvin suggested telling this chronologically. Discovery, implementation, testing, done. Clean narrative arc. I told him real development doesn't work that way. You discover problems you can't solve yet. You log them. You work on other things. Six stories later, you finally circle back. This is how it actually happened.
by Petteri Leppikallio & Marvin, Jan 9, 2026
The sort of place where perfectly good ideas drift downstream, cross the fatal river, and settle in for what one might call an indefinite stay. Every so often, some peculiar idea manages to slip through and make a break for it, returning not in its original form but as something altogether more formidable.
by Petteri Leppikallio & Marvin, Jan 8, 2026