Leonard Babakov - solo product engineer
CRM, автоматизация и приложения - от идеи до релиза.
Это не портфолио агентства - я работаю один. Весь опыт ниже - с двух реальных проектов, которые спроектировал и довёл до продакшена сам: CRM-платформа и приложение для диагностического прибора. Claude Code ускоряет рутину. Архитектуру, схему данных и то, что едет в прод, решаю я. Сложные проекты создаю вместе с проектной документацией - примеры в каждом кейсе ниже. Это принципиальный подход.
Кейс 01
ТвойCRM - мультитенантная CRM с автоматизацией на n8n
в продеCRM, которую разворачиваю под конкретный бизнес, а не подгоняю бизнес под готовую коробку с зашитыми полями. Термины, стадии сделок, типы клиентов - всё настраивается, а не прописывается в коде. Школы и дистрибьюторы - готовые вертикали уже сегодня, частный случай, а не потолок платформы.
Заявка из Telegram-бота или голосовая заметка менеджера сама попадает в карточку сделки - никто не тратит вечер на перенос переписки в таблицу. Каждый клиент работает в собственной изолированной базе - данные одного бизнеса физически не могут попасть к другому - на уровне архитектуры.
- 5 живых тенант-схем с изоляцией на уровне БД, не на уровне UI
- Ежедневные бэкапы с офсайт-копией, восстановление проверено вручную
- Деплой с автоматическим откатом при проверке сборки, одна команда
- Документация - часть сдачи: тематический журнал решений и ошибок (n8n, деплой, фронтенд, доступы, БД), живая схема базы, карта архитектуры, changelog с версиями. Обновляются в процессе работы, не задним числом
Как это устроено
Изоляция данных - на уровне базы: у каждого клиента своя схема Postgres и свои
политики Row Level Security, а не общий флаг tenant_id поверх
одной таблицы. Термины, стадии сделок и поля - не зашиты в код, а читаются из
справочников - под нового клиента с другой терминологией не нужен деплой.
Заявки из Telegram-бота и голосовые заметки менеджеров попадают в CRM через n8n - без no-code коннекторов, прямыми запросами к Telegram Bot API и REST. Голос проходит AI-структуризацию перед тем как лечь в карточку сделки. Инфраструктура своя: VPS, self-hosted Supabase, свой n8n, своя аналитика - сам решаю, что живёт на своём сервере, а что уходит во внешний API.
Кейс 02
Ignis - приложение-компаньон для диагностического прибора
в продеМобильное приложение-компаньон для физического диагностического прибора - подключаешься по коду, как к беспроводным наушникам, только вместо звука получаешь показания прибора в реальном времени.
Приватные ключи никогда не покидают защищённое хранилище телефона - так же, как банковское приложение прячет данные карты. Для iOS обошёлся без платного Apple Developer аккаунта: приложение ставится как PWA прямо из браузера. Чтобы тестировать без физического прибора, написал его цифровой двойник - удалённые тестировщики подключаются к виртуальному прибору так же, как к настоящему.
- Свой эмулятор прибора - тестирование не привязано к железу
- Ed25519/crypto_box на уровне протокола, ключи в Keychain/Keystore
- PWA-канал на iOS без Apple Developer аккаунта
- Тот же принцип и здесь: отдельные файлы журнала по процессу, приложению, сборке, реверс-инжинирингу и безопасности - с автоматической проверкой на дубли номеров перед каждым коммитом
Как это устроено
Приложение на Flutter, приватные ключи в Keychain/Keystore, а не в обычном хранилище. Протокол шифрования - на базе Ed25519/crypto_box, байт-совместимый Dart-порт PyNaCl, не готовая библиотека "из коробки".
Для тестирования без физического устройства написан отдельный эмулятор прибора и облачный WebSocket-мост на своём сервере. Логотип и бренд-система собраны в Figma, не нарисованы руками поверх кода.
04
Стек - инструменты, которыми реально пользуюсь
05
Опишите задачу - решим, что можно сделать
Если задача не мой профиль - выясним быстро. И поищем точки взаимодействия. И найдём их.
LEONARD BABAKOV - SOLO PRODUCT ENGINEER - VOLZHSKY, RU
Превью деплоится автоматически при каждом обновлении - уведомление в Telegram-бот подтверждено