ARSENII
Loading0%
Nervio Systems
EN RU PL
Привет! Я

ARSENII

Фулстек

Я не пишу код. Я сдаю системы. Пропущенный звонок — это не статистика, это клиент, который уже позвонил другим, и я строю то, что ловит его первым.

6систем в проде
81дня с нуля
906коммитов
97%точность ии-вердикта
Каждая цифра на этой странице посчитана в репозиториях. Код приватный — показываю и объясняю на созвоне.
Nervio Systems — это нервная система бизнеса: звонки, переписки, заявки и деньги, связанные в один организм. За названием стоит один человек — я.
Обсудить проект
Листай
ШЕСТЬ СИСТЕМОДИН РАЗРАБОТЧИКНОЛЬ ДЕМОЯ СДАЮ СИСТЕМЫ, А НЕ КОДШЕСТЬ СИСТЕМОДИН РАЗРАБОТЧИКНОЛЬ ДЕМОЯ СДАЮ СИСТЕМЫ, А НЕ КОДШЕСТЬ СИСТЕМОДИН РАЗРАБОТЧИКНОЛЬ ДЕМОЯ СДАЮ СИСТЕМЫ, А НЕ КОДШЕСТЬ СИСТЕМОДИН РАЗРАБОТЧИКНОЛЬ ДЕМОЯ СДАЮ СИСТЕМЫ, А НЕ КОД

Роли, которые язакрываю сам

Это не список пожеланий. Каждая строка ниже — то, что я делал на системе, которая работает в проде прямо сейчас. Поэтому одного человека хватило на шесть систем.

Бэкенд

Python 3.11, async SQLAlchemy поверх PostgreSQL, планировщик на 21 задачу, поллеры, очереди, конечные автоматы и скучная аккуратность вокруг денег и времени.

глубина

ИИ и LLM

Промпты, которые переживают встречу с реальностью, структурированный вывод, харнесс оценки, вторая модель-судья, стражи, запасная модель, плюс зрение и голос.

глубина

Фронтенд

Next.js 15 с TypeScript, Prisma и Tailwind для кассы; серверные панели с живым обновлением для цеха; лендинг на GSAP и доска на телевизор.

глубина

Инфраструктура

Docker Compose, nginx с HTTPS, Linux VPS, бэкапы наружу с отрепетированным восстановлением, cron, сканер секретов на pre-commit и выкатка, отказывающая на грязном дереве.

глубина

Продуктовые решения

Решать, чего не строить. Посчитать кампанию до написания отправщика, вырубить дашборд, отдававший данные, выбрать, где человек обязан остаться в цепочке.

глубина

Документация и тесты

В каждом репозитории своя карта и свои грабли. 63 состязательных теста на одноразовой базе, офлайн-наборы тестов и паритет переводов, который держит падающая сборка.

глубина

Мой путь иопыт

Фулстек- и ИИ-разработчик

ARMACAR — автосервис, Польша

Единственный разработчик всего, на чём работает сервис: поллер телефонии превращает каждый пропущенный звонок в долг с эскалацией и SLA, Gemini расшифровывает разговоры, судья Claude закрывает долги по смыслу, «Марк» отвечает клиентам в пяти каналах, веб-панель держит работу цеха, чекап машины на 79 пунктов идёт на четырёх языках, а касса сделана на Next.js.

Pythonaiogram 3PostgreSQLClaude OpusGeminiNext.jsDocker
2026

Фриланс-разработчик

Независимые заказчики, ЕС

Проекты под ключ вне автосервиса: польский лендинг акции со своей сборкой без зависимостей, приём заявок за ним и рассылка по ЕС для производителя деревянного декора, которая началась не с кода, а с расчётной модели.

HTML/CSS/JSGSAPPythonopenpyxlOverpass API
2026

Студент — программирование, уклон в ИИ

Сейчас, параллельно с продом

Учусь на программиста со специализацией по искусственному интеллекту. То, что читаю вечером, обычно оказывается в проде в том же месяце: судья на модели, харнесс оценки и работа с изображениями начинались как учебное любопытство, а закончились ответами реальным клиентам.

Machine learningLLM systemsApplied AI
now

IT STEP Academy — пятилетнее обучение

Окончено, полный курс

Пять лет учился. Три месяца — доказывал. Системное обучение программированию и информатике, пройденное до конца. Оттуда неяркая половина профессии: алгоритмы, базы данных и привычка доводить начатое, а не бросать на самом интересном месте.

AlgorithmsOOPDatabasesWeb
graduated

Моиработы

Девять работ: шесть в проде, остальные в тесте или работают как внутренние инструменты. Откройте строку — или спросите Марка.

01

Контроль звонков

Телефония · долги · SLA · вердикт ИИ↗

Опрашивает телефонию каждые 30 секунд. Завершённый пропущенный звонок становится долгом с ответственным, SLA и эскалацией — менеджер, админ, владелец — пока кто-нибудь не перезвонит. Долг закрывается по сказанному: Gemini расшифровывает, судья Claude выносит вердикт с цитатой.

  • 97% верных на 214 реальных перезвонах против 70% у правил, которые он заменил.
  • Долгом становится только завершённый пропуск: звонящие забили бы доску призраками.
  • Узкое место — человек: система показывает, кто ждёт, звонит всё равно человек.
Инструменты и решенияPython 3.11aiogram 3APSchedulerPostgreSQL 16GeminiClaudeDocker
02

Марк — ИИ-менеджер

LLM в проде · 5 каналов↗

Марк ведёт почту, Telegram, Instagram, Facebook и WhatsApp на одном ядре: доводит клиента до записи и кладёт лид в ту же очередь, что и заявки с сайта. Называть цены и бронировать время ему нельзя — страж переписывает ответ. Мозг — Claude Opus 5, при пустом балансе подхватывает Gemini, а не молчание.

  • Два вызова модели, не один: просьба выдать ответ и восемь полей разом заставляла модель думать внутри полей.
  • Модель пишет телефон в тексте вместо поля — движок достаёт его из текста.
  • Канал запускается в теневом режиме: ИИ пишет, ничего не уходит. Включение — переключатель, а не выкатка.
Инструменты и решенияClaude Opus 5Gemini fallbackstructured outputeval harnessLLM judgeMeta GraphWhatsApp Cloud
03

Панель цеха

Веб-панель · ТВ-доска · отчёты↗

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

  • Прежний дашборд отдавал телефоны клиентов любому по ссылке с токеном. Нашёл, закрыл в тот же день, переделал роли.
  • Время реакции считается в рабочих минутах, чтобы звонок в 23:40 никого не записал в бездельники.
  • За nginx с HTTPS, в отдельном контейнере от поллера.
Инструменты и решенияaiohttpSSEnginxPostgreSQLrole-based auth
04

Чекап машины

Telegram-бот · зрение · цены↗

Механик фотографирует номер и VIN — оба сверяются с нарядом — и проходит 79 пунктов, фото обязательно на всём жёлтом и красном. Работа считается по прайсу владельца, детали подбираются по VIN, к ценам поставщика идёт наценка, выведенная из 136 реальных пар «закупка — продажа». Отчёт уходит клиенту только после того, как его утвердил человек.

  • Тормозной диск 22 мм прошёл как норма против минимума 26 мм: порог сравнивал не ту величину, которую вводит механик.
  • 205 ключей интерфейса на RU/PL/UK/EN и тест, который валит сборку, если перевода нет.
  • Чекап без цен напоминает о себе сам: через 2 часа, дальше каждые 4, максимум пять раз, только в рабочее время.
Инструменты и решенияTelegram bot UXYAML checklistvision modelsVIN cataloguesupplier API
05

Экзамены для персонала

Три бота · одна база↗

В проде с июля. Один бот ведёт ежедневный опрос, экзамен на пятьдесят вопросов с дедлайном в воскресенье и кнопку «спросить регламент». Второй показывает статистику по людям и рейтинг месяца. Третий снимает копию базы в 03:30. Все трое следят друг за другом по сигналам жизни.

  • Регламент отслеживается по SHA-256 на каждый пункт: правка запускает объяснение, рассылку и пересборку затронутых вопросов.
  • 63 злых теста на одноразовой базе: здесь неверная статистика — это реальный вред живому человеку.
  • Выкатка только по явному «да» в чате: эти боты судят людей.
Инструменты и решенияaiogram 3SQLAlchemy 2asyncpgAPSchedulerpytest
06

Касса

Next.js · деньги · конечный автомат↗

Пошаговый помощник на стойке: что спросить, сколько сдачи, чек или фактура, в конце список самопроверки. Схема расчёта — граф в конфиге, который проверяется при старте: битый конфиг не даст контейнеру подняться, вместо того чтобы подвесить расчёт у кассы. Шаг расчёта неизменяем, и это держит триггер в базе, а не договорённость в команде.

  • Там, где настоящей интеграции ещё нет, код громко отказывается, а не притворяется.
  • Миграции идут отдельной одноразовой службой, затем приложение проверяет окружение, конфиги и реквизиты и только потом поднимается.
  • Брошенные расчёты закрываются по cron каждые 15 минут, с тревогой, если деньги уже взяли.
Инструменты и решенияNext.js 15TypeScriptPrisma 6Auth.js v5Vitest
07

Лендинг акции

Статика · сборка вместо тестов↗

Польская страница акции для направления импорта машин: тексты строго по брифу, калькулятор сверен с основным сайтом, форма уходит в систему колл-центра, правила в HTML и PDF. Сборка — чистый Python без зависимостей: всё встраивает внутрь, делает WebP, рисует превью и PDF через headless Chrome и доходит до релиза через проверки.

  • Ни Google Fonts, ни CDN: шрифты и библиотека анимаций со своего домена, и это стережёт проверка в сборке.
  • Страница и приём заявок лежат в разных репозиториях, поэтому договор между ними — написанный документ.
  • Публичная сборка отказывается собираться, пока в текстах остаётся хоть один маркер «дозаполнить».
Инструменты и решенияHTML/CSS/JSGSAPPython stdlib buildheadless Chrome
08

Пиксельный офис

Внутренний инструмент · только чтение↗

Пиксельная сцена, где каждая живая сессия и агент — персонаж за столом. Сервер — только стандартная библиотека Python, читает состояние прямо с диска и никуда ничего не пишет. Всё, что уходит из процесса, проходит через маску секретов.

  • Нарочно только чтение: монитор, который умеет действовать, рано или поздно сломает прод.
  • Режим отказа описан, включая случай, когда у машины меняется адрес.
Инструменты и решенияPython stdlibSSEReact 18ViteTailscale
09

Рассылка по ЕС

Модель кампании · исследование данных↗

Производителю нужны клиенты в ЕС. Вместо того чтобы начать с кода, я собрал кампанию как модель в таблице — кому пишем, сколько стоит тест, сколько он идёт, что разрешает закон — и два конкретных варианта. Аудиторию взял из OpenStreetMap: 2 881 магазин декора, 6 751 отель и 11 730 ресторанов во Франции с пригодным адресом.

  • Клиенту сначала нужно решение, а не скрипт. Код начинается после выбора.
  • Модель прошла слепой спор двух проверяющих до того, как попала к клиенту, и цифры изменились.
Инструменты и решенияPythonopenpyxlOverpass / OSMGDPR limits

Что я могу снятьс ваших плеч

Шесть вещей, которые я уже построил от начала до конца для настоящей компании — это не список услуг, а список того, что уже работает.

01

ИИ, который отвечает вашим клиентам

Почта, Telegram, Instagram, Facebook и WhatsApp на одном ядре: ведёт диалог, собирает нужное, не называет лишнего и передаёт человеку телефон клиента.

Работает в проде, пять каналов
02

Ничего не теряется по дороге

Каждый пропущенный звонок, заявка или лид становится задачей с ответственным, SLA и эскалацией. Напоминает, пока дело не сделано, и закрывается по смыслу разговора, а не по галочке.

97% точности вердикта на 214 перезвонах
03

Панель, с которой реально работает команда

Все каналы в одной ленте по клиенту, доска на стену, отчёты, отвечающие на вопрос руководителя одним экраном, и роли, чтобы лишний человек не видел базу клиентов.

Используется каждую смену
04

Полевая работа, которая влезает в телефон

Бот-чек-лист для людей с грязными руками: обязательные фото, замеры с настоящими порогами, четыре языка и готовый отчёт клиенту, который сам считает цену по вашему прайсу.

79 пунктов, 205 ключей интерфейса
05

Денежные потоки, которые нельзя тихо переписать

Целые числа вместо float, шаги расчёта, которые запрещает менять сама база, и конфиг, проверяемый на старте: ошибка ломает деплой, а не расчёт у стойки.

Ни одного float на деньгах
06

Встраивается в то, что у вас уже работает

Телефония, CRM, почта, каталоги поставщиков, базы деталей, мессенджеры. Чужое API — моя обычная работа, и склейка переживает их падения.

Ringostat, CRM, Zoho, Meta, WhatsApp, API поставщиков

Что ломалось и какоеправило после этого осталось

Шесть правил, каждое написано в день, когда что-то сломалось в проде. Обычно эту часть прячут — а именно она и говорит, как человек работает.

цена: полдня неверных цен

Флаг деплоя снёс базу знаний

К синхронизации добавили --delete, чтобы сервер зеркалил репозиторий. Стёрся файл с ценами диагностики, и ИИ-менеджер полдня работал без них.

правилоОдин скрипт выкатки, никаких ручных rsync. Данные и секреты не возятся никогда, и об этом написано прямо в скрипте.
цена: пароль в истории git

Пароль базы лежал в compose-файле

Открытым текстом в docker-compose.yml, а значит во всех коммитах. Платное сканирование секретов на этом плане недоступно.

правилоСвой pre-commit хук плюс сканер по всей истории, ставится на каждой машине.
цена: открытые телефоны клиентов

Ссылка с токеном была всей авторизацией

Ранний дашборд показывал телефоны клиентов любому, у кого есть адрес. Удобно и неоправдываемо.

правилоОтключён в тот же день, добавлены роли и пароли, мёртвый код оставлен с датой и причиной прямо в нём.
цена: изношенный диск прошёл нормой

Порог сравнивался не с той величиной

Минимальная толщина диска у каждой машины своя, поэтому одно фиксированное число пропускало диск 22 мм при минимуме 26.

правилоПорог обязан сравниваться ровно с тем, что вводит человек. Теперь просим запас до минимума, в его же миллиметрах.
цена: прод терял апдейты

Локальный запуск отбирал боевой токен

Два поллера на одном токене — и боевой бот теряет апдейты. А в локальном .env лежали боевые токены.

правилоПроект нарочно не запускается на ноутбуке: локальных секретов нет, локально — синтаксис и офлайн-тесты.
цена: зелёные тесты ни о чём

Тесты на Mac проходили, пропуская себя

Без зависимостей часть файлов молча пропускала проверки. Локально зелено, в образе сломано.

правилоТесты считаются только в боевом контейнере. Тест, который проходит не запустившись, — баг в тесте.

Как мы будемработать вместе

Четыре шага без сюрпризов. Остановиться можно после любого, и всё построенное остаётся у вас.

01

Разговор на двадцать минут

Вы рассказываете, где утекают деньги — пропущенные звонки, медленные ответы, ручная бумажная работа. Я задаю скучные вопросы. Без презентаций и продаж.

02

План с ценой и отказом

Вы получаете, что я построил бы первым, сколько это стоит, сколько займёт — и чего не стал бы делать вовсе, с причиной. Последний пункт экономит больше, чем первые три.

03

В прод уходит самый маленький полезный кусок

Не демо и не прототип: то, чем ваши люди пользуются в настоящую смену, пока остальное ещё строится. Если идея неверна, мы узнаем это рано и дёшево.

04

Передача, которая не требует меня

Репозиторий, доступы к серверу, документация, бэкапы с отрепетированным восстановлением и обученная команда — на тех экранах, которыми они реально пользуются. Поддержка потом по желанию, а не поводок.

Вопросы, которыевы сейчас зададите

Нажмите — ответит Марк.

Мойстек

Backend

  • Python 3.11
  • aiogram 3
  • SQLAlchemy 2 async
  • PostgreSQL 16
  • aiohttp
  • APScheduler

AI & LLM

  • Claude Opus 5
  • Gemini
  • structured output
  • eval harness
  • LLM judge
  • vision & voice

Frontend

  • TypeScript
  • Next.js 15
  • Tailwind 4
  • Prisma 6
  • GSAP
  • SSE

Infra & ops

  • Docker Compose
  • nginx + HTTPS
  • Linux VPS
  • Backblaze B2
  • pre-commit hooks
  • one-command deploy

СпроситеМарка, мой ИИ

Обычно он продаёт чужое. Сегодня продаёт меня. Марк ведёт клиентов в пяти каналах и доводит до заявки. Ядро не привязано к отрасли — его ставят туда, где клиенты теряются в переписке. Здесь он отвечает на вопросы обо мне, вживую.

M Mark ИИ-менеджер · построен Арсением live ai
Марк
Я Марк — ИИ-менеджер, которого построил Арсений. Обычно я веду клиентов в почте, Telegram, Instagram, Facebook и WhatsApp: довожу до заявки и передаю человеку. Отрасль неважна — важно, что клиенты теряются в переписке. Здесь задача другая: рассказать про Арсения.
Ваш
ход

Опишите задачу в двух предложениях — «мы где-то теряем клиентов» уже достаточно — и я пришлю в ответ, как бы её построил: что система делает в первый день, сколько это по времени и чего я делать не стал бы вовсе. Бесплатно и без созвонов.

Почта kontakt@nerviosystems.com
Телефон +48 791 666 708
Телеграм @federaIu
LinkedIn Arsenii Bondarenko
Соцсети
Локация Катовице, Польша