VotaCrudGenerator
Мой пакет для Laravel, который генерирует CRUD по схеме базы данных: 850+ установок на Packagist.
Senior бэкэнд-разработчик · PHP / Laravel · LLM-функции в проде
Пишу бэкэнд на Laravel и встраиваю в него функции на LLM. В профессии с 2012 года, на Laravel с 2016-го. В этом году в одиночку сделал и выпустил VotaWallet, приложение для учёта трат в Сербии.
Белград, Сербия (CET) · удалённо с командами из Европы и США или переезд
Открыт к предложениям: senior бэкэнд
Беру проекты
Мой продукт
Мне надоело заносить траты руками. Друг как-то показал, что за QR на сербском чеке прячется почти весь чек. Теперь я его сканирую, а приложение само раскладывает позиции по категориям.
По QR приложение забирает из налоговой официальные данные чека, без распознавания фото, и учится ставить категории по вашим подтверждениям. Есть семейный бюджет и бот в Telegram, а к банковским счетам оно не подключается.
Самым сложным пока оказался выход в магазины приложений: скриншоты, описания, правила проверки и код под всё это.
Веб-версия, бот в Telegram и Android в Google Play. iOS на проверке в App Store.


Laravel 13, PHP 8.4, Octane, Horizon, Reverb, Passport, Filament, PostgreSQL, Redis, Pest · Nuxt 4, Vue 3, Vuetify (Material Design 3), Capacitor · Python FastAPI + OpenCV · Terraform, Google Cloud Run, GitHub Actions.
Пока приложение ждало проверки Apple, я добавил в него MCP-сервер. Подключите к своему кошельку Claude, ChatGPT или Gemini и спросите, куда ушли деньги. Считает сервер, модель только разговаривает.
Код закрыт. Покажу его на созвоне.
Работал на senior-позициях в продуктовых компаниях: последние годы полностью удалённо в GrowFood, до этого в Alyce с командой из США.
Для меня важно, как код читается и как работает. Аккуратная агрегация данных или кэш на своём месте - и день удался.
Вёл направление R&D внутри команды разработки: обновления PHP и Laravel во всех сервисах, очереди на Redis, Kafka, Datadog и 10+ ботов в Telegram, которые работают в проде на одной платформе.
B2B SaaS из Бостона. Делал новые функции и принимал архитектурные решения в коде, который уже работал в проде. С командой из США каждый день говорил по-английски.
Запустил matetech.ru с пустого репозитория: мультитенантная платформа обучения с дочерними компаниями и поддоменами. Построил систему кодогенерации и внедрил git-flow.
Построил pushex.io с нуля на Laravel, с микросервисами на Go и собственной моделью воркеров, чтобы персональные пуши доходили быстрее. Нанимал инженеров.
Сделал diler.ru с нуля на Laravel и Vue, а к нему парсер каталогов, который под каждый сайт-источник настраивает менеджер без навыков программирования.
С нуля запустил сервис: архитектура, база данных, админка, личный кабинет и тесты.
Опыт руководителя проектов пригодился в работе с AI: писать понятные спецификации и внимательно проверять, что выдала модель.
Три продукта запустил с пустого репозитория, вместе с архитектурой и базой данных: legko.com, diler.ru и matetech.ru.
PHP 8, Laravel, Go, MySQL, PostgreSQL, Redis, Kafka, ClickHouse, Docker, Kubernetes, Linux, REST API и OpenAPI.
Университет «Синергия», прикладная информатика (бакалавр). Учился и в НИЯУ МИФИ (компьютерные системы и технологии), в Летней компьютерной школе и в Мытищинской школе программистов.
Русский (родной), английский B2 (есть сертификат), сербский (базовый).
Мой пакет для Laravel, который генерирует CRUD по схеме базы данных: 850+ установок на Packagist.
Заготовка на Laravel 13 и Nuxt 4 для проектов, которые будут писать вместе с AI-агентами. Собрана по опыту VotaWallet.
Собрал за один день на Monad Blitz Belgrade в августе 2026: отслеживание товаров в блокчейне, где 100 000 кодов фиксируются в сети за две транзакции через один корень дерева Меркла.
Акинатор, только для пива. Байесовский движок выбирает вопрос, который сильнее всего сужает выбор, а задаёт его бармен Брю. В базе больше 11 000 сортов, проект ещё в разработке.
В разработке
В VotaWallet модели пишут черновики и проверяют друг друга, а что попадёт в прод, решают тесты и моё ревью.
Проверка по настоящему коду и базе нашла в плане MCP-сервера для VotaWallet пять проблем, которых из чата не видно. Закрыл их все до того, как функция вышла.
Долгий разговор с Gemini о том, как сделать MCP-сервер для VotaWallet.
Каждое утверждение сверил с кодом, с продовой базой (только на чтение) и с документацией MCP-клиентов.
Так и нашлись проблемы, которых в разговоре не было. Спецификацию писал уже с поправкой на них.
Вторая модель проверила план, ничего в нём не меняя: 25 замечаний.
По каждому замечанию сначала смотрел код, потом принимал или отклонял.
Сначала тесты, потом код: Claude Code писал его по задачам из спецификации.
Выкатил и проверил вживую с Claude, ChatGPT и Gemini.
Любая функция начинается с письменной спецификации. В VotaWallet их два десятка, плюс короткий список правил, которые агентам нарушать нельзя.
Каждый дифф читаю до слияния, и к каждому изменению идёт тест, который показывает, что оно делает. В прод ничего не уходит, пока не пройдут все тесты.
На Пивонаторе проверяющая модель прогнала свой симулятор, и оказалось, что в формуле выбора следующего вопроса перепутан знак.
Когда агент ошибается, ищу причину и записываю правило. Однажды он взял таблицу с похожим названием из другой области данных: внутри цикла результат был неверным лишь иногда, и ничего не падало. Теперь это правило.
73 скилла для агентов в репозитории VotaWallet. Большинство из них - готовые наборы от сообщества, которые я выбрал и настроил, а скиллы под сам проект написал я.
Личный ассистент
Живёт в одном чате в Telegram, раскладывает то, что я присылаю, по заметкам в Obsidian и следит за CI и ошибками VotaWallet в проде.
Правила, по которым он работает
Раз в неделю он перечитывает свою историю и предлагает правки к собственным правилам. Принимаю или отклоняю их я.
Так это устроено. Настоящие сообщения остаются у меня.
В основе - открытый фреймворк, который я доработал. Один агент пишет черновик только по базе фактов, которую я держу в порядке. Второй агент проверяет его со свежим контекстом. Отдельная проверка помечает каждую строку, которую я не смог бы отстоять в разговоре, а скрипт проверяет, что машина правильно прочитает PDF. Итоговый текст мой: я правлю его и решаю, что уходит дальше. Подходит для любых документов, где каждая строка должна выдержать проверку: коммерческих предложений, договоров, ответов поддержки.
Работаю по контракту и консультирую. Правила те же, что в моих продуктах: сначала письменная спецификация, тесты на каждое изменение, и наружу ничего не уходит без вашего согласия.
Ваши клиенты подключают Claude, ChatGPT или Gemini к своим данным в вашем сервисе и дают ассистенту узкий доступ, который можно отозвать. Итоги считает ваш сервер, и цифры сходятся с тем, что видно в сервисе. Записи, добавленные AI, помечены, а импорт от AI отменяется одной кнопкой.
Бот поддержки по вашей документации, разбор тикетов, который учится на решениях команды, классификация фото, боты в Telegram и ассистенты, которые готовят черновик, а утверждает человек.
Laravel и Nuxt с интерфейсом на Material Design, одна кодовая база для веба и мобильного приложения. Google Cloud поднимаю через Terraform, а CI работает с первого дня.
Для действующей команды настраиваю агентную разработку: правила, скиллы и MCP-серверы, как уже сделал для команды разработки в GrowFood, и добавляю проверку в CI для кода, который пишут агенты.
В конце вы получаете репозиторий, документацию, собранную по коду, и файл правил, который первым прочитает следующий разработчик или AI-агент.
Волшебник школы Воплощения и монах-кенку, который режет руны.
Снимался в кино: пять ролей, 2009-2013.
КинопоискЖиву здесь и хожу на местные стартап-события: на Startup World Cup Serbia был как основатель VotaWallet, на Monad Blitz Belgrade за один день собрал проект.
Ещё аниме и кино, когда-то фехтование, а пиво как данные живёт в Пивонаторе.