Інженерна майстерність і карʼєра / крок 09
Вайб-коджу новий крутий проєкт (стрім)
Про що це відео
Стрім, на якому автор починає зовсім новий pet-проєкт — застосунок гоночної телеметрії — з порожньої папки, використовуючи Claude Code (Opus 4.5 на Max-тарифі за ~$100–120/місяць) як основного кодуючого агента. Спершу він показує раніше навайбкоджений Flutter-застосунок для своєї камери Blackmagic (нативні збірки літають, а веб-збірка була «супер повільна» в debug, поки Claude не оптимізував роботу зі станом), а потім розкриває свій реальний workflow: брейншторм застосунку з Gemini, ітеративна генерація дизайнів екранів у Google Stitch (безкоштовний, креативніший за AI Фігми, з України потрібен VPN), вставка повного опису в репозиторій і запис інструкцій у CLAUDE.md замість повторення промптів. Більша частина стріму — це він диктує Claude свою бекенд-філософію: чиста архітектура (проєктування ПЗ у дусі поста Robert Martin 2012 року — він доводить, що "vertical slice architecture" не є нічим новим), тонкі контролери як клей, один application-сервіс на ендпоінт з єдиним методом run(), валідація всередині сервісу (справжня межа), заборона витікання доменних сутностей з контролерів, і завжди HTTP 200 з пейлоадом status: 0/1 «як в API Facebook». Роботу він планує в plan mode Claude, читає кожен план рядок за рядком, виправляє його («роутинг в одному файлі», «використовуй виведення типів з правил валідації») і ганяє кілька інстансів Claude паралельно з випадаючого термінала в стилі Quake всередині dev-контейнерів.
Головне
- Його цикл вайб-кодингу: порожній репозиторій →
CLAUDE.mdз гайдлайнами проєкту (постійно оновлюється) →/init→ plan mode → прочитати й виправити весь план → дати Claude працювати нон-стоп від закоммічeного стану git і переглядати диффи потім. "Skills" у Claude Code мали для нього сенс лише для повторного використання; він залишається «vanilla + постійно оновлюваний CLAUDE.md». Старий трюкultrathinkна Opus 4.5 більше не потрібен — модель, на його думку, драматично краща в проєктуванні й менш ненажерлива до токенів. - Архітектура — робота людини: бізнес-логіка не повинна знати про веб-фреймворк; контролери — важкий для тестування клей, який має бути максимально тонким (товсті контролери й анемічні доменні моделі — антипатерни, які він прямо називає). Ментальний тест: якщо ті самі сервіси можуть живити CLI або Telegram-бота (він показує свого 7-річного гольф-бота на Perl 6 з тим самим патерном сервіс-класів), шарування правильне.
- Валідація живе в сервісі, а не в контролері — контролер лише перевіряє, що JSON парситься. Ті самі правила обслуговують і рантайм, і статичну типізацію через виведення типів у стилі LIVR; дублювання валідації на кожен транспорт (HTTP, CLI, GraphQL) — це запах.
- Не повертайте доменні об'єкти: сервіси віддають лише явно публічні поля — інакше одного дня ви віддасте назовні хеш пароля користувача. Саме хешування пароля — бізнес-політика доменної моделі, а не код use case (помилка, яку Claude зробив і яку він виправляє на стрімі).
- Його «API для терранів»: JSON:API здався йому настільки низькорівневим і нелюдським, що він охрестив його «API для зергів» (жарт зі StarCraft) і написав власну простішу специфікацію JSON-відповідей, яку згодовує Claude разом зі своїми npm-модулями
chista/chista-expressяк еталонними реалізаціями. - З AI-агентами ти стаєш техлідом з першого дня (AI-агенти, кар'єра): LLM пише тести, а ти їх проєктуєш; твоя дефіцитна навичка зміщується до архітектури, аналізу вимог і читання коду. Але глибокий фундамент важить більше, а не менше — він обрав Flutter замість React Native саме тому, що розуміє: Flutter компілюється нативно, а RN ганяє повідомлення через JS-міст, що критично для телеметричної математики в реальному часі; без цього розуміння ти не можеш виправляти AI, «а він робить стільки всього неправильно».
- Оновлення з життя: він пішов з Google, бо не міг вмістити все — волонтерство (війна), дисертацію про витягування чутливих даних з великих текстових корпусів за допомогою LLM і YouTube; шукати роботу не буде, поки не напише дисертацію. Відступ про Rust: він якось переписав JS-бенчмарк на Rust→WASM і отримав лише 2× прискорення — не варте переходу.
- Книжки, якими зараз насолоджується (аудіо): Essentialism і Effortless Greg McKeown та Atomic Habits — від останньої нічого нового не чекав і «в захваті».