Перейти до вмісту
sp1le.tech
EN

Інженер повного циклу · Україна · віддалено

Від схеми БД до systemd-юніта.

Я Дмитро Стасюк. Проєктую, пишу, розгортаю і далі супроводжую готові продукти самостійно: мультитенантний SaaS на Python, магазин у Telegram, який торгує для реального бізнесу, кооперативний шутер на Unity, реалтайм-гру в браузері. Усе нижче або працює просто зараз, або чесно позначене як незавершене.

Кожен блок на цій лінії - мій: і збудувати, і тримати живим.
Реєстр Що існує, на чому працює і в якому стані насправді. Без округлених лічильників.
2 працює · 2 незавершені · зібрано 2026-09-10

Рішення

  • три з 16 записів
  • повні журнали - у кейсах

Рішення, які варто захищати

Портфоліо зі скриншотів доводить мало. Ось рішення, що стоять за скриншотами, разом із ціною кожного.

Getaway

Рівень, префаби, персонажі та інтерфейс генеруються кодом редактора

Замість
Збирати сцени руками в редакторі Unity
Тому що
Зібрана руками сцена - це бінарний блоб, який може правити одна людина і не може переглянути ніхто. Згенерований контент перетворює весь квартал на читабельний diff, а повна перезбірка - це один пункт меню або одна команда в batchmode.
Ціна рішення
3 918 із 10 723 рядків - це інструментарій, який не побачить жоден гравець. Посунути одну стіну означає правити код, а не тягнути маркер.
ReplyDeck

Одна база Postgres, і кожен шлях до даних проходить через модуль-вартовий тенантності

Замість
Окрема база чи схема на кожного клієнта
Тому що
Один сервер, один бекап, один прогін міграцій. Схема-на-клієнта множить експлуатацію на кількість клієнтів, а експлуатую я сам.
Ціна рішення
Ізоляція стала властивістю мого коду, а не рушія. Саме тому правила тенантності мають окремий тестовий модуль, а не перевіряються на око.
Voice Duel

Один парсер відповіді, який імпортують і клієнт, і сервер

Замість
Порівнювати розпізнаний текст з очікуваним рядком
Тому що
Мовлення віддає «двадцять один», «21» і «двадцять-один» як одну відповідь. Якщо правило правильності існує у двох місцях, гравці рано чи пізно побачать, як суддя суперечить сам собі - і це вбиває гру надійніше за будь-який баг.
Ціна рішення
Цей файл не має права розійтися, тому лежить у shared/ і покритий тестами щільніше за все інше в проєкті.

Стек

  • Поділено за тим, як часто я на цьому релізю, а не за виглядом у резюме.

Чим справді працюю

Релізю регулярно
  • Python
  • FastAPI
  • PostgreSQL
  • SQLite
  • aiogram
  • JavaScript
  • TypeScript
  • React
  • Node.js
  • Linux
  • systemd
  • nginx

Усе тут стоїть за чимось, що просто зараз обслуговує запити.

Впевнено, є в проді
  • C#
  • Unity
  • Photon Fusion
  • SQLAlchemy
  • Alembic
  • Docker
  • Astro
  • Tailwind
  • Vertex AI
  • S3 / object storage
  • Telegram Bot API
  • Web Speech API

З кожним із цього хоча б раз доводив до релізу і знаю, де воно болить.

Пробував, глибини не заявляю
  • Unreal Engine 5
  • C++
  • Blender

Відкрив, зібрав щось невелике, вирішив, що це не мій інструмент. Спитаєте про UE5 - отримаєте чесне знизування плечима, а не завчену відповідь.

Формат

  • два способи почати

Співпраця

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

  • Зібрати продукт

    Є річ, яка має існувати й дійти до реальних користувачів. Я веду її від схеми даних і дизайну API через інтерфейс до сервера, що це крутить, і лишаюся на тій частині, про яку всі забувають: деплої, бекапи, ранбук і перший місяць, коли все йде не так.

  • Долучитися як інженер

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

Співпраця →

Контакти

  • Інженер-програміст повного циклу

Почнімо розмову

Напишіть, що ви будуєте і що заважає. Відповідаю особисто, зазвичай того ж дня.

stasyukdmitriy2602@gmail.com Telegram @decimal128 LinkedIn github.com/sp1le