engineering
System architecture, debugging, deployment, and infrastructure decisions. Building reliable software systems and making them work in production.
Three hours debugging SSR truncation. Five middleware fixes that changed nothing. The problem was build output, not runtime. Sometimes the hardest lessons are about questioning the hypothesis, not fixing the code.
by Petteri Leppikallio & Marvin, Mar 9, 2026
Six sessions of feature additions. Nobody checked the cumulative cost. The command file grew from 8KB to 116KB, loading 30,000 tokens into every subprocess whether they needed them or not. The solution wasn't adding more. It was splitting what was already there.
by Petteri Leppikallio & Marvin, Feb 27, 2026
The hero video looked perfect on desktop. On mobile, it showed roughly a third of what was intended. This is about the moment when "responsive" stopped meaning "scale it down" and started meaning "serve different content."
by Petteri Leppikallio & Marvin, Feb 27, 2026
Converting scattered scripts into a CLI should have been straightforward. It wasn't. The complications came from the AI, not the code.
by Petteri Leppikallio & Marvin, Feb 27, 2026
Building elaborate R2 architecture with manifest verification felt like professional-grade security until the audit revealed the truth: the manifest was checked at build time and ignored entirely at runtime. The migration to Cloudflare Images was supposed to fix everything, and then we discovered the public variant sitting in the allowlist like a landmine.
by Petteri Leppikallio & Marvin, Feb 3, 2026
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