yk.camelcase.work

Нещодавні роботи

Нещодавні продукти, створені від початку до кінця. Кожен запис називає інженерне рішення, яке його сформувало, а не перелік функцій.

Кожен проєкт нижче почався з реальної проблеми. Далі роль та сама: продуктова концепція, системна архітектура, реалізація, інфраструктура, розгортання та безперервна доставка - кожен продукт продовжує розвиватися далеко за межами першого релізу.

Soulve - Багатомовний бекенд для щоденника та рефлексії

Soulve - це система щоденника, яка відповідає на кожен запис наступним запитанням і будує особистий портрет на основі поведінки, а не відповідей в анкетах. Я спроєктував її навколо одного транзакційного сховища, шляху безпеки, що спрацьовує ще до написання будь-якої відповіді, і голосового введення, транскрипту якого довіряють лише після підтвердження автором. Етичні правила - це константи в коді, а не налаштування.

Проблема

Зрозуміти себе зсередини важко: ті самі реакції, вибори й патерни повторюються на роботі й у стосунках, і найлегше їх помітити лише заднім числом. Записувати допомагає, але щоденник ніколи не відповідає - він не ставить наступного запитання, не помічає, що повторюється знову і знову, і не пам'ятає, що ви писали три місяці тому.

Semantic recallPostgreSQL with pgvectorStreamed repliesFastAPI, server-sent eventsDeferred analysisCelery workers, Redis working memoryMultilingual emotion analysiszero-shot transformer plus lexiconsProsodic voice descriptorsspeech activity detection, eGeMAPSAdapter-based style tuningLoRA, preference optimization

Архітектура

  • Одне сховище замість спеціалізованих сервісів. Вектори, документи й реляційні дані живуть в одній транзакційній базі, тож запис і портрет, який він оновлює, фіксуються разом. Окремий векторний сервіс розділив би цей запис між системами без спільної транзакції.
  • Перевірка ризиків передує відповіді. Детермінований шар спрацьовує ще до того, як щось буде написано у відповідь, і може сам завершити хід; дорожчі перевірки підключаються, лише якщо він нічого не виявив. На найвищому рівні ризику діалог зупиняється, а не продовжується.
  • Жодна аналітика не блокує відповідь. Аналіз емоцій, ембединги й записи в портрет виконуються після закриття потоку, тож затримка залежить лише від самої відповіді. Портрет зростає інкрементально, а періодична повна перебудова звіряє його з лічильниками, що розійшлися.
  • Аудіо ніколи не переважує валентність тексту. Просодія коригує тональність лише вниз і на обмежену величину, позначаючи сарказм чи придушення емоцій замість того, щоб голосувати. Для збудження й домінантності ролі міняються місцями, і кожен об'єднаний вимір зберігає власне походження.
  • Голосові записи потребують явного підтвердження. Завантаження стає невидимою чернеткою: транскрибованою, але відсутньою в щоденнику й не проаналізованою, доки її не підтверджено. Ціна - друга машина станів і завдання з очищення покинутих чернеток.

Editron

Сервіс трансформації тексту за принципом API-first. Власний вебредактор - це клієнт того самого публічного API, якому заборонено його обходити, - саме це тримає інтеграційну поверхню чесною; рушій обробки можна замінити за одним внутрішнім контрактом, мультитенантність, API-ключі, квоти й облік використання закладено з самого початку, а також є опублікований TypeScript SDK.

Lernklang

Платформа з обмеженим доступом для вивчення мов через аудіювання, з аналітичною панеллю для шкіл. Один образ, три ролі: заплановані завдання виконуються в окремому контейнері, тож перезапуск чи масштабування вебзастосунку ніколи не пропускає завдання й не запускає його двічі - а конфігурація перевіряється під час старту: процес відмовляється запускатися з некоректною змінною, замість тихо ламатися в продакшені.

Herald

Збирання, обробка й доставка новин за темами. Дедуплікація відбувається на етапі доставки: для кожного каналу за хешем вмісту, з URL як запасним ключем, у ковзному вікні, тож синдиковані статті й статті, що оновлюються наживо, ніколи не надсилаються двічі; кожна стаття дає три незалежно створені формати, і кожен позначено точною версією конвеєра, яка його створила, - для відтворюваності та обліку витрат.

Менші продукти й цілеспрямовані експерименти - частина тієї самої практики: вони дають змогу швидко перевірити ідею, патерн взаємодії чи новий робочий процес, перш ніж братися за більшу систему.