💻 KTLO - робота, яку не видно в планіУ кожної команди є робота, яка не виглядає як “нова фіча”, але без неї все повільно розсипається.Підтримати старий сервіс. Почистити чергу багів. Оновити залежності. Розібратися, чому алерт шумить третій тиждень. Відповісти сапорту. Підняти впалий джоб. Пояснити, чому “дрібний баг” ламає половину сценарію.У цієї роботи є нормальна назва - KTLO, Keep The Lights On. Дослівно - тримати світло увімкненим. По-інженерному - робити все, що не додає блискучу нову кнопку, але підтримує продукт, команду і її комітменти живими.KTLO - це не тільки “підтримка продакшена”. Це ціна вже зроблених обіцянок.Коли фіча вже в користувачів - її треба підтримувати. Коли сервіс вже є частиною інфраструктури - його треба оновлювати. Коли інтеграція вже працює - вона колись зламається. Коли є алерти - хтось має розуміти, які з них важливі, а які просто щодня їдять увагу.Проблема починається не тоді, коли KTLO багато. Проблема починається, коли його не видно в плануванні, але всі поводяться так, ніби воно має магічно зробитися між задачами.Тоді біль проявляється дуже буденно: спринт знову не вліз, сеньйори весь час зайняті, оцінки не працюють, команда наче багато робить, але план не рухається.Часто відповідь нудніша, ніж хочеться: частина команди підтримує вже запущене, але ця робота не має окремого місця в плані.KTLO не треба романтизувати. Це не героїзм і не привід пишатися хаосом. Але його треба бачити.Бо якщо робота потрібна, щоб продукт жив, вона не “між іншим”. Вона просто ще не отримала нормальне місце в плані.---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
💻 Чому для job sourcing знадобилася своя тулза, а не ще один скрол LinkedInА що, якщо проблема не в тому, що вакансій мало? Під час пошуку роботи легко повірити, що треба просто більше скролити LinkedIn, частіше оновлювати Indeed/DOU/Djinni/etc. і чекати, поки алгоритм нарешті покаже щось нормальне. Але в якийсь момент стає зрозуміло: це вже не пошук вакансій, а job sourcing. Треба збирати джерела, відфільтровувати шум, памʼятати рішення й розуміти, чому одні ролі проходять далі, а інші летять у “не підходить”.Масові платформи тут не погані. Вони просто оптимізовані під іншу гру. Їм треба швидко відповідати мільйонам людей, нормально ранжувати результати, показувати promoted jobs і не дозволяти кожному запускати по великій базі свій маленький SQL-хорор. А мені іноді треба було навпаки: кривий, повільний, дуже особистий фільтр і 10-20 секунд очікування. Для глобального продукту це жах. Для мого процесу - норм.Другий біль виявився ще важливішим: state пошуку не належить тобі. Якщо нотатки, відфільтровані вакансії, причини “не підходить” і вся історія живуть всередині чужої платформи, нормальну ретроспективу зробити майже неможливо. Для світчерів це особливо боляче: треба швидко вчитись, перевіряти гіпотези про ринок, бачити повторювані патерни й розуміти, чому до одних ролей хочеться повернутись, а інші треба відсікти ще на вході.Так зʼявився JobScan. Кілька місяців він був моїм щоденним інструментом. Починалось усе як простий парсер по таймеру, а виросло у self-hosted інструмент для соурсингу вакансій: дошки вакансій, локальний кеш, пошук, легкий CRM-пайплайн для ролей, збережені рішення і підтримка 35+ ATS-sources. Не вилизаний SaaS. Не “майбутнє рекрутингу”. Просто інструмент під конкретний процес, а не під середнього користувача на планеті.Масові інструменти виграють масштабом, але іноді програють точністю. А локальний інструмент може бути некрасивим, повільним і дивним - зате він тримає форму саме твого процесу. Якщо хочеться власну систему для job sourcing, repo тут: https://github.com/raslab/jobscan---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
🧠 Одна цінність, кілька різних ігорНайцікавіше в цінностях не сам список.“Гроші важливі”, “кар’єра важлива”, “сім’я важлива”, “здоров’я важливе” - це ще майже нічого не пояснює. Важливо інше: з якого стану людина дивиться на цю цінність.Візьмемо гроші. Нудний приклад, зате працює.Для виживання гроші - це страховка. Подушка, запасний вихід, можливість не залежати від токсичного менеджера, ринку чи чужого настрою. Тут питання не “скільки хочеться?”, а “чи мене можна загнати в кут?”.Для ідентичності гроші - це доказ. Що вже не треба просити дозволу. Що є сила, свобода, статус, здатність захистити свої межі. Гроші тут не тільки про купити. Вони про “я тепер не та людина, яку можна легко посунути”.Для досягнення гроші - це рахунок у грі. Маркер масштабу, підтвердження, що система працює. Не “хто я?”, а “що вдалося побудувати?”.І вже тут часто починаються конфлікти. Двоє людей кажуть “гроші важливі”, але одна говорить про безпеку, інша - про перемогу. Формально слова ті самі. Всередині - різні операційні системи.Для належності гроші - це можливість підтримати своїх: сім’ю, команду, спільноту.Для довгої гри - здоров’я, дім, репутація, діти, майбутні опції. Менше дофаміну, більше відповідальності за роки вперед.Для сліду після себе - ресурс навчати, менторити, будувати речі, які переживуть твій поточний sprint.Для сенсу й гри - спосіб купити час на цікавість, красу, віру, мистецтво або радість без очевидного KPI.І це тільки одна цінність. Те саме можна зробити з кар’єрою, здоров’ям, сім’єю, свободою, навчанням, навіть з “хочу спокою”. Тому питання не лише “які в тебе цінності?”. Краще питання: з якого місця всередині тебе ця цінність зараз говорить? Бо якщо людина захищає безпеку, їй марно продавати славу. Якщо шукає ідентичність, сухий план може не спрацювати. Якщо вже грає в довгу гру, “а давай просто ризикнемо” звучить не як свобода, а як баг у проді.---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
🚀 Спочатку зрозумій, який це хаосЄ знайомий інженерний рефлекс: прилітає мутна задача - і всередині одразу вмикається “ну окей, зараз розрулю”. Тикет кривий? Уточнимо. Scope поплив? Підріжемо. Бізнес-сенс загубився? Знайдемо. Хтось написав “треба просто швидко зробити”? Ага, тільки спочатку розберемося, що саме.Цей режим реально рятує. Без нього команда швидко починає якісно робити не ту роботу. Але саме тому він небезпечний: коли щось багато разів допомагало, рука тягнеться застосовувати це всюди. І в якийсь момент ownership стає не силою, а способом мовчки забрати чужу нечіткість собі.Бо є два різні типи хаосу. Перший - туман: тикет описує симптом, рішення неочевидне, зв’язок з результатом слабкий. Тут треба копати, ставити незручні питання, сперечатися зі scope і, можливо, зупиняти імплементацію. Другий - розсинхрон: проблема вже більш-менш зрозуміла, але люди не домовилися, хто вирішує, що входить у роботу, що точно не входить і що робимо, якщо план знову поїде.Ось тут “я зараз розрулю” часто робить гірше. Домовленостей не стає більше, зате з’являється людина, яка тримає їхню відсутність на собі. Начебто допомагаєш команді, а на практиці закриваєш нечіткість власною увагою і зайвими ітераціями.Тому перед тим як рятувати задачу, варто поставити дуже нудне, але корисне питання: це туман чи розсинхрон? Якщо після розмови стало зрозуміліше, що саме треба зробити, це був туман. Якщо всі й далі “плюс-мінус згодні”, але рішення, межі й відповідальність не зафіксовані, це розсинхрон.Туман лікується ініціативою: сформулювати проблему, результат і ризики. Розсинхрон лікується ясністю: зафіксувати межі, людину за рішенням і що зміниться, якщо scope поїде.І це не про “працювати по ТЗ і не думати”. Іноді найкорисніше, що можна зробити для задачі, - не тягнути її сильніше, а спитати: “ми зараз шукаємо відповідь чи просто ще не домовилися?”---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
💻 Хотів AI-помічника. Вийшла система для знаньКоли підключаєш AI до бази знань, очікування просте: зараз буде розумний помічник для нотаток. Запитаєш, де рішення з минулого проєкту, він знайде. Попросиш контекст для поста - принесе. Трохи магії, трохи Ctrl+F на стероїдах.Але швидко стає незручно від простих питань. Звідки йому читати? Яким нотаткам довіряти? Що вважати джерелом правди? Чи може він щось міняти? А якщо може - як перевірити, що він не “допоміг” у стилі джуна з доступом до продакшена?Я додавав AI-бібліотекаря до бази знань в Obsidian як помічника. А в процесі вийшов бекенд для роботи зі знаннями. Пошук там не магічний: простий індекс нотаток і посилань плюс regex-пошук через bash-скрипти. Бібліотекар читає нотатки, рішення й технічний контекст, але не має права вивалити все в чат або “пофіксити щось” напряму в master. Для різних задач - різні джерела. Для короткого контексту - повернути вижимку або цитату і шлях до джерела. Для змін - branch + PR, а не запис у темряву.І в цей момент “чат з нотатками” перестає бути чатом. База знань стає схожою на database, а не на папку з нотатками. Посилання, теги й структура - на schema. Git - на протокол запису. Джерела - на audit trail. А модель - не центр всесвіту, а просто частина системи.Оце, здається, головний урок для задач “AI + знання компанії”. Підключити документи, embeddings і RAG може бути хорошим стартом. Але це ще не вся система. У командній роботі проблема не тільки в пошуку тексту. Складніше - безпечно з ним працювати: відрізнити джерело правди від випадкової нотатки, не чіпати зайве й залишити зміну, яку можна нормально переглянути.Бо знайти текст і зробити корисну роботу зі знаннями - різні задачі. Чим більше я працюю з агентами, тим менше вірю в майбутнє “все стане чатботом”. Цікавіше інше: AI як інженерна система - з протоколами, межами доступу, ревʼю і відповідальністю за зміни.---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
💻 Печерні промпти і доросла оптимізаціяПів року тому всі рахували, скільки коштує сказати ChatGPT “thanks”. Остання хвиля була смішніша: пиши промпти як печерна людина — коротко, грубо, без зайвих слів — і рахунок за AI нібито впаде на 80–90%.Звучить як магічний ритуал із LinkedIn. Але мем не повністю бреше. Він просто пропускає головне: масштаб і перевірку на живій системі.Я прогнав схожу ідею на OpenClaw — agentic-системі з реальним трафіком: 13 агентів з окремими воркспейсами, локальними/шареними скілами, крон-джобами і щоденним активним використанням. За період аналізу система прокрутила ~327M токенів і ~7700 записів використання.Компресія справді спрацювала. Постійно підвантажені інструкції для agents/skills “схудли” з ~245k до ~132k символів. Мінус 46.2%. За оцінкою “що було б без компресії”, це дало ~37.2M зекономлених prompt/cache токенів за 7 днів.І ось тут починається доросла частина. У мемі 700 зекономлених токенів у 4k-діалозі виглядають як революція. У реальному agentic-запиті на 100k–150k токенів ті самі 700 токенів — уже не “мінус 90%”. Це корисно, але лише шматок великої системи. На всьому масштабі вийшло близько 12.3% промпт-токенів.Ще один нюанс: дешевше не завжди означає краще. Задачі здебільшого працювали нормально, але текстура агентів просіла: теплота −26.3%, присутність від першої особи −49.9%, emoji у відповідях −50.9%, шаблонні фрази й ШІ-слоп +54.5%.Простіше: агент став економнішим, але сухішим, більш шаблонним і менш “живим” у розмові.Тому висновок не “будь грубішим до моделі” і не “всі ці оптимізації — маячня”. Стиснення промптів — це інфраструктурна робота, а не лайфхак. Вона має сенс, коли є обсяг, метрики й перевірка регресій. Без цього “пиши як печерна людина” — не інженерія, а cost-saving cosplay.---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
🚀 Пʼятничний бургер і golden pathЄ дивна доросла навичка: тримати біля себе щось стабільне, поки все навколо перекроюється на ходу. Для мене такою опорою став пʼятничний бургер. За шість років він пережив дві компанії, дві країни, пʼять квартир, десятки закладів, кілька тімбілдингів і відряджень у місця, де одна бургерна — вже свято. Колись це була особиста звичка. Потім — маленький командний ритуал у стартапі з настроєм: «Може, наступного тижня задеплоїмо майбутнього єдинорога. Може, закриємось. Але цієї пʼятниці йдемо їсти бургери».Смішно, поки не помічаєш: такі штуки допомагають не розсипатись. Хаос і так лізе в плани, дедлайни, релокації, пріоритети, прод, roadmap і календар. Якщо ще й базові дії щоразу доводиться вигадувати заново, голова втомлюється не від складних задач, а від зайвої метушні.В інженерних командах це видно особливо добре. Як стартуємо сервіс? Як деплоїмо? Де дивимось метрики? Що робимо під час інциденту? Коли потрібен rollback? Де нормальна документація, а не археологія в Slack? Коли на такі питання немає підтриманої відповіді, команда не отримує більше свободи. Вона отримує більше шуму.Тому мені подобається ідея golden path. Це не табличка «крок убік — розстріл», а протоптана й доглянута стежка: зрозуміло, куди йти, що вже працює і де не треба винаходити велосипед. Зійти зі стежки можна. Але краще робити це свідомо, а не тому, що навколо самі хащі.Для мене це одна з ознак здорового platform engineering: прибрати зайву драму з типових речей, щоб енергія лишалась на складні. Сильні ритуали й платформи не обіцяють світ без хаосу. Вони просто не дають хаосу зайняти весь простір у голові.Тому сьогодні в мене бургер, чого і вам бажаю.Один стабільний дефолт у світі, який занадто любить edge cases 🍔---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
💻 Оптимізація, яка спрацювала. І майже не мала сенсуДуже легко закохатися в оптимізацію, яка гарно виглядає в цифрах. Мінус 30% тут, мінус 500 токенів там — і вже здається, що ось воно, інженерне щастя.Я нещодавно так стиснув інструкції для свого тьютора німецької в OpenClaw. Це агент, який на старті кожного діалогу тягне за собою чималий пакет правил: роль, тон, поведінку, підказки по інструментах, пам’ять, робочі процедури. Ідея була проста: винести необов’язкове в посилання, а основне переписати коротше й простіше — але не зламати саму поведінку.Технічно все вийшло дуже пристойно. Базовий пакет інструкцій зменшився з 7422 до 5192 символів. У середньому це дало мінус 500+ токенів на API call. Для мовного тьютора це вже відчутно: звичайна практика легко набирає 50 коротких реплік у дві сторони, тобто одна розмова може зекономити десь 25 тисяч токенів. На цьому місці дуже хочеться сказати: ну все, перемога.Але доросла частина інженерії починається саме тут. Бо оптимізація — це не лише про те, скільки вдалося зекономити. Це ще й про те, скільки коштувало довести, що ти нічого не зламав.Підготовка, переписування, прогони, перевірки, документація, фінальне допилювання — сумарно цей експеримент з’їв близько 16.7 мільйона токенів. Щоб така економія відбилася, треба майже 30 тисяч запусків. Або приблизно 600 повних навчальних діалогів. Тобто відповідь вийшла кумедна: як технічний експеримент — успіх, як окреме бізнес-рішення — майже ні.І це, мабуть, найкорисніший висновок. Не кожна неефективність заслуговує на твій час. Не кожна красива оптимізація варта того, щоб за неї битися. Іноді найдоросліше інженерне рішення — чесно визнати: метод хороший, але інвестував не туди.---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
💻 Anthropic вимкнув підписку для OpenClaw. Куди тікати?Півтора тижні. Рівно стільки я протримався на Anthropic Max, перш ніж вони відрубали доступ для third-party harness'ів. Купити підписку спеціально під OpenClaw, налаштувати агентів, відчути як все літає — і отримати "sorry, we're shutting this down." І не знати що робити далі... Знайомий біль? Тоді ось три робочі варіанти що робити далі.Z.ai GLM — $30 або $80/місGLM-5.1 замість Opus, GLM-4.7 замість Sonnet, обидва в одній підписці. $30 — для лайтового навантаження, $80 — для серйозного. 5-годинні та тижневі вікна на промпти — рівно як було в Anthropic підписках. Дані місцями йдуть через китайську інфраструктуру хоч і інтерференс в США — для особистих даних може ок, для робочого IP варто подумати.ChatGPT Pro — $20 або $100/місOpenAI відкрито підтримує OpenClaw — контрактно протилежна позиція до Anthropic. GPT-5.4 Pro як розумна модель для складних задач, GPT-5.3-Codex як проста модель для рутини. До кінця травня діє промо — ліміти на $200 за ціною $100. Як і з будь-якою новою моделлю — перший тиждень підлаштовуватимеш SOUL.md і агентів під GPT-сімейство. Стратегія на подумати: вижимай промо зараз, а потім мігруй на GLM за $30.DeepSeek V3.2 + розумний мікс — від ~€28/місОплата по токенах. Порада: при виборі pay-as-you-go дивись не на ціну за мільйон, а на знижку за кеш. При 95% cache hit rate провайдер із кешем, навіть в 5 разів дорожчий — реально дешевший за "бюджетного" без кешу. Той самий DeepSeek через Nebius без кешування — €133 замість €28. DeepSeek V3.2 як проста модель для рутини коштує ~€28/міс. Але якщо додати розумну модель для складних задач — Kimi K2.5, Qwen3.5 або GLM-5.1 через OpenRouter — бюджет зростає до €80-100/міс. Зате отримуєш повноцінну заміну будь-якій підписці, без вендор-локу.А взагалі, це ж класичний вендор-лок з підручника, який ми ігноруємо, поки не вдаримось. Anthropic показав на практиці: будь-який вендор вимикає рубильник за ніч. Справжня міграція — не "куди перейти", а "як побудувати архітектуру, де жоден провайдер не тримає за горло." Ти вже мігрував чи ще думаєш?---🌱 Keep calm and grow | 💬 Обговорити 1-на-1
🚀 Туман нікуди не дінеться. Тримай його сам.Є ілюзія, що з кожним кроком вгору — від сеньйора до ліда, від ліда до директора — стає зрозуміліше. Більше контексту, ширша картинка, чіткіший план. Правда? Ні. Чим вище — тим густіший туман. Стратегія змінюється щокварталу, пріоритети суперечать один одному, а рішення треба приймати на 40% інформації. І при цьому команда дивиться на тебе як на людину, яка точно знає, куди йти.Ось що мене спочатку зламало, а потім зібрало заново: твоя робота — не розганяти туман. Він нікуди не дінеться. Твоя робота — тримати його в собі, щоб команда працювала в ясності. Звучить красиво. На практиці — це щодня ковтати невизначеність і видавати з себе спокій, якого всередині немає.Ти — буфер між хаосом зверху і продуктивною роботою внизу. CEO змінив курс? Стейкхолдери тягнуть в різні боки? Ринок непередбачуваний? Це все — твоє. Не тому, що ти знаєш відповіді. А тому, що якщо невизначеність дотече до команди — вона не лишається абстрактним дискомфортом. Вона перетворюється на конфлікти між людьми.І тут ключова різниця. Коли ти поглинув туман — команда сперечається про рішення, підходи, архітектуру. Це здоровий конфлікт — він народжує кращі результати. Але якщо невизначеність просочилась вниз — ті самі люди починають сперечатись про інше: хто винен, кого не попередили, чому знову все з нуля. І це вже не робочий процес — це тертя, яке з'їдає команду зсередини.Сеньйорність — це не менше сумнівів. Це вміння тримати невизначеність і не передавати її далі. Питання на завтрашній 1-на-1: ти поглинаєш туман — чи пропускаєш його вниз?---🌱 Keep calm and grow | 💬 Обговорити 1-на-1