Архітектура баз даних
Справжні обмеження, індекси під реальні шаблони запитів, партиціонування, повнотекстовий і векторний пошук, міграції, що переживають розгортання на кількох інстансах.
Лише сеньйори, розподілена робота, чітка позиція. Виводимо прототипи у продакшн і лишаємось підтримувати й покращувати.
Houdrik — розподілена студія, у якій працюють лише сеньйори. Ми беремо прототипи — згенеровані AI, написані на відчуттях, передані попереднім підрядником або вашу власну першу спробу — і доводимо їх до промислової якості. Після цього лишаємось, щоб підтримувати і розвивати продукт.
Студію ведуть інженери, які роками випускають промисловий софт разом. Тримаємось малими свідомо — лише сеньйори, усі розподілені, працюємо асинхронно через різні часові пояси з однією синхронною точкою контакту кожні два тижні. Найменша команда, яка здатна надійно випустити серйозний продукт, водночас найдешевша в координації, найпростіша в утриманні спільного бачення і найшвидша в русі. Кейси на цьому сайті відображають проєкти, які ті самі інженери вели разом — як під брендом студії, так і до того.
AI зробив дивовижно простим створення каркаса застосунку. Засновник без інженерного досвіду може отримати робочий прототип за один вечір. Продакт-менеджер може дати моделі скріншот і отримати у відповідь щось, що майже виглядає як справжній продукт.
Чого AI не зробив простим — це наступний етап. Той, на якому прототип зустрічається з реальними користувачами. Де автентифікація має бути справді безпечною, схема бази даних — витримати аудит, конвеєр розгортання — допускати відкат, спостережуваність — відповідати на питання «чому було повільно о 14:07 минулого вівторка?», а інструкція реагування для чергового інженера — читатися о третій ночі напівсонним.
Це приблизно 90% роботи з експлуатації софту. AI допомагає з частинами цієї роботи, але недостатньо, щоб випускати без досвідченої команди. Ми — та команда.
Ми не для всіх — і кажемо це прямо. Найкраще ми працюємо з:
Ми відмовляємось від проєктів, де:
Фронтенд чи бекенд. TypeScript, Python, Go або те, що краще підходить. Керована хмара або власний хостинг. Postgres або інша база даних там, де вона заслуговує своє місце. Ми принципово не наводимо стек на цій сторінці, бо відповідь повністю залежить від ваших строків, навичок команди, обмежень хостингу і того, як виглядає збій о третій ночі.
Що універсальне: ми обираємо зрілі, добре підтримувані інструменти, які ваша команда зможе успадкувати й експлуатувати ще через три роки. Кожен вибір ми чітко називаємо в документі старту і обґрунтовуємо письмово. Якщо у вас є переваги щодо стеку — як правило, ми пристосуємось.
Проєкти обмежені в часі. Навіть ретейнери мають визначений місячний бюджет і ритм продовження. Завжди є вихід.
Демонстрації в кінці кожного спринту. Спринти двотижневі. Демо — на реальному URL, на реальній інфраструктурі, ніколи не скріншот, ніколи не localhost. Ми не імітуємо проміжний прогрес — ми випускаємо в кінці спринту і даємо результату говорити за себе. Якщо потрібна позачергова розмова — ми її проводимо, але ритм лишається спокійним.
Рішення записуємо. Кожне архітектурне рішення живе в репозиторії як одноекранний Architecture Decision Record. Майбутні ми вдячні; клієнти можуть читати разом із нами.
Робота ваша з першого дня. Код, інфраструктура, конвеєри розгортання, інструкції реагування, дашборди спостережуваності. Ми не використовуємо пропрієтарного проміжного шару. Ми не залишаємо прив'язки до себе. Можливість піти на 91-й день закладена в дизайн.
Ми не зникаємо після запуску. Найпоширеніше продовження роботи — місячний ретейнер на підтримку і розвиток. Якщо ви хочете завести роботу всередину команди, ми чисто передаємо все. Обидва варіанти нормальні.
Найпростіший шлях: надішліть нам один абзац про те, що ви хочете збудувати, виправити чи перебрати. Ми відповідаємо протягом одного робочого дня. Перша розмова — від п'ятнадцяти до тридцяти хвилин, без зобов'язань, із тим, хто з нашої команди вестиме проєкт. Якщо ми не підходимо одне одному — скажемо чесно і, як правило, порекомендуємо когось, хто підходить.
Ми також охоче беремось за платні тижневі проєкти зі складання обсягу робіт — письмова архітектурна пропозиція, план із ранжируванням ризиків, фіксована вартість — для випадків, коли правильна форма роботи ще не очевидна.
Знайти нас можна через сторінку контактів.
Без джуніорів, без запасних на лавці. Кожен проєкт спирається на ті самі сеньйорні дисципліни — ті, від яких залежить, чи переживе система свій другий рік.
Справжні обмеження, індекси під реальні шаблони запитів, партиціонування, повнотекстовий і векторний пошук, міграції, що переживають розгортання на кількох інстансах.
Межі сервісів, черги, кешування, ідемпотентність, повтори — патерни, від яких залежить, чи функція масштабується, чи тихо деградує.
Чиста за OWASP автентифікація, ізоляція тенантів на рівні бази, сховище секретів, аудит-журнали, комплаєнс для регульованих клієнтів.
Структуровані логи зі скорельованими ідентифікаторами запитів, метрики, що відображають вплив на користувача, розподілені трасування, інструкції реагування для напівсонного інженера.
RAG-конвеєри, eval-набори, стелі вартості, структура промптів, коректна відмова — інженерія, що перетворює відповідь моделі на продуктову функцію.
Контейнеризовані розгортання, оборотні релізи, бюджети продуктивності, які команда вимірює і захищає.
Компонентні системи, доступність, продуктивність фронтенду, та редакційна полірувальна робота, що робить інструмент завершеним.
Процеси CRM і бек-офісу, замінені надійним софтом — планування, звіти, фінансові конвеєри, що не падають тихо.
Без джуніорів. Без запасних на лавці. Люди на першому дзвінку — це ті, хто пише код, що опиняється у вашому продакшні.
Фронтенд, бекенд, SQL руками, інфраструктура і налаштування CI — без вагань і без передачі комусь молодшому.
Ростемо по одному, а не по п'ять. Радше відмовимо прибутковому проєкту, ніж розмиємо планку, що робить роботу можливою.
Відповідаємо протягом одного робочого дня. MVP, написаний на відчуттях, чернетка від AI, недороблений проєкт або робочий продукт, що починає тріщати — усе приймається.
Запустити проєкт