Ilya founded Nerdy Production and leads its engineering. He has been building software since 2010 and shipping production Flutter since 2018.

Before that he was CTO of QIWI, one of Russia's largest payment platforms, where he ran roughly 12 engineering teams spanning web products down to card processing, scope, and contactless payments — including building contactless card payments on Android via over ISO/IEC 14443, with EMV Contactless (Visa PayWave) on top.

He was also a principal developer at Yandex, where he worked on Yandex.Auto — taking native Android deep into the vehicle, with heavy CAN-bus integration through a custom CAN shield — and a principal at Evotor, whose point-of-sale devices run on a forked , giving him a low-level view of Android most app developers never touch.

Today he leads delivery on the agency's flagship apps — from the chart-heavy fintech UI of ExtraETF to the fully custom design system of Arcana. He writes most of the essays on this blog and maintains the agency's open-source work, including the dxpdf DOCX-to-PDF engine.

He works across Flutter, native iOS and Android, Go, Rust, TypeScript, Kotlin, Kubernetes, and Docker, with a focus on app architecture, cross-platform delivery, and building teams that ship.

Recent posts

How We Ship 20+ Branded Apps From One Flutter Codebase — and Survive Apple 4.2.6
Flutter

How We Ship 20+ Branded Apps From One Flutter Codebase — and Survive Apple 4.2.6

Most "white-label" app shops just reskin one binary — and Apple guideline 4.2.6 rejects exactly that. Here is the architecture we use to ship 20+ genuinely distinct branded apps from a single Flutter codebase: per-tenant authentication and server-driven content that make each app a real standalone product, not a duplicate.

July 10, 2026
How We Build With AI: Architecture and Flexibility Over Keystrokes
Software Engineering

How We Build With AI: Architecture and Flexibility Over Keystrokes

AI now writes a large share of the code in any serious shop — 84% of developers use it daily. We lean into that on purpose. Letting agents produce the code frees our engineers to do the work AI is worst at: architecture, flexibility, and the whole-system decisions that determine whether software survives its second year. Here is how we actually build in 2026, why we moved the human effort up the stack, and how we keep AI-written code from turning into the tangled codebases we audit every week.

June 19, 2026
AI Code Audit Findings: 11 Problems in Almost Every AI-Built Codebase
Software Engineering

AI Code Audit Findings: 11 Problems in Almost Every AI-Built Codebase

Your AI-built app may already be live, and the security holes are only part of the story. We audited dozens of codebases built with Cursor, Claude Code, Bolt, Lovable, and long ChatGPT sessions, and the same eleven problems recur almost every time: hardcoded secrets, no input validation, authentication that checks the box but not the request, zero tests, no error handling on the unhappy path, N+1 queries, stale dependencies with known CVEs, rampant duplication, no consistent architecture, callback hell instead of proper async patterns, and no awareness of the deployment environment. Here is what each one looks like, why AI produces it, and how we fix it.

June 18, 2026