Беру продукт целиком: архитектура и данные, бэкенд, интерфейс, интеграции с внешними сервисами,
деплой, мониторинг и поддержка после запуска — один ответственный инженер на весь цикл.
В продакшенеФлагманский проект — CRM-платформа для агентства аренды, разработана в одиночку
непрерывной разработки
≈10 мес.
миграций схемы БД
150
модулей API
≈160
внешних интеграций
20+
Один инженер на весь циклОт объявления до оплатыСначала схема данныхЗапуск, а не презентацияСистема в продакшенеОдин инженер на весь циклОт объявления до оплатыСначала схема данныхЗапуск, а не презентацияСистема в продакшене
01Для бизнеса
Чем я полезен бизнесу
Беру задачи, где нужно связать процессы, данные и внешние сервисы в одну надёжную систему —
и довести её до продакшена, а не до презентации.
Заявки и клиенты в одной системе
ПроблемаЗаявки теряются между чатами, звонками и таблицами.
Собираю CRM под ваши процессы: единая база клиентов, воронки, сделки, задачи, роли и полная история по каждому клиенту.
Интеграции с вашими сервисами
ПроблемаТелефония, мессенджеры, площадки и оплата живут отдельно.
Подключаю облачную АТС, мессенджеры и площадки, эквайринг, электронную подпись и внешние API — данные начинают ходить между системами сами.
Автоматизация рутины
ПроблемаСотрудники вручную переносят данные и собирают отчёты.
Автоматизирую сбор данных, документы, уведомления и отчёты. Фоновые задачи — с повторами при сбоях и журналом.
ИИ в рабочих процессах
ПроблемаХочется ИИ, но не чат-бота «для галочки».
Встраиваю LLM туда, где он экономит время: расшифровка и разбор звонков, ответы в чатах, сводки, генерация текстов — с журналом и контролем.
Продукт или SaaS с нуля
ПроблемаНужен сервис, который будет работать и расти.
Проектирую архитектуру и схему данных, пишу бэкенд и интерфейс, настраиваю деплой и мониторинг. При необходимости — мультиарендность и биллинг.
Развитие существующей системы
ПроблемаСистема уже есть, но тормозит, падает или её страшно трогать.
Разбираюсь в чужом коде, исправляю, переношу на новую базу или сервер, добавляю тесты и мониторинг.
02Кейс · CRM / SaaS-платформа
CRM-платформа для агентства аренды недвижимости
Спроектировал и разработал в одиночку систему, которая ведёт весь путь сделки: от объявления до оплаты.
Объявления, звонки, переписки, сделки, договоры и онлайн-оплата проходят в одном окне, а не в пяти разных сервисах.
Как это устроено
Объявления собираются из нескольких источников, звонки разбирает ИИ, чаты с площадок и мессенджеров
приходят в одну переписку, договоры подписываются электронной подписью.
Платформа мультиарендная: на одной кодовой базе работают изолированные сайты партнёров под их брендом,
у каждого свой биллинг.
Шесть этапов, которые обычно живут в разных инструментах, — в одной системе. Выберите этап, чтобы увидеть, что происходит внутри.
Этап 01 из 06 В продакшене
Объявление
Объявления автоматически собираются из нескольких источников недвижимости. Дубли между источниками отсекаются по телефону и адресу. Система отличает собственника от агента, снимает водяные знаки с фото, после чего объявление проходит модерацию и публикуется в каналы и на площадки.
Связиисточники → дедупликация → модерация → каналы и площадки
Сообщения с площадок объявлений, из мессенджеров и форм сайта попадают в единый inbox. AI-ассистент отвечает на типовые вопросы. Если клиент пишет несколько сообщений подряд, ассистент дожидается паузы и отвечает один раз.
Система интегрирована с облачной АТС. Звонок в реальном времени появляется у нужного агента, клиент создаётся или находится автоматически, запись разговора сохраняется. Скрипты разговора можно собирать визуально в виде графа.
Связиоблачная АТС → WebSocket → карточка клиента → запись разговора
Телефония · входящийДемо-данные
Входящий звонок · облачная АТС
+7 9•• •••-••-41
Клиент найден: Мария С. · заявка на 2-комн.
Агент: Игорь П.Запись
Скрипт разговора · граф
ПриветствиеСроки заездаБюджетДругой районЗапись на показ
Этап 04 из 06 В продакшене
AI-разбор звонка
Запись расшифровывается в текст, AI-тренер разбирает разговор и даёт агенту обратную связь. Конвейер работает в фоне с повторами при сбоях.
Связизапись → расшифровка → LLM-разбор → обратная связь агенту
AI-тренер · разбор звонкаДемо-данные
Запись
Расшифровка
LLM-разбор
Обратная связь
Агент: …когда планируете заезд?
Клиент: В начале месяца, нас двое.
Обратная связь агенту
Уточнил сроки и состав жильцов
Не проговорил условия залога
Предложить второй вариант в том же районе
фоновая очередь · повтор при сбое · зависшие задачи сбрасываются
Этап 05 из 06 В продакшене
Сделка
Воронки продаж и объявлений. По сделке видны тариф, комиссия, бонусы и штрафы, по клиенту ведётся полная история изменений. От сделок считаются зарплаты, цели и мотивация агентов (включая геймификацию).
Связиворонка → сделка → комиссии и бонусы → зарплаты и цели агентов
Воронка · сделкиДемо-данные
Показ
Олег Д. · студияАнна В. · 1-комн.
Договор
Мария С. · 2-комн.
Оплачено
Пётр Л. · 3-комн.
Тариф
«Стандарт»
Комиссия агента
по тарифу
Бонусы / штрафы
+1 бонус
История клиента
14 изменений
→ зарплата, цели и рейтинг агента пересчитаны
Этап 06 из 06 В продакшене
Договор и оплата
Договор формируется из шаблона и подписывается электронной подписью онлайн, в том числе несколькими сторонами. Оплата проходит через интернет-эквайринг, чек передаётся платёжному провайдеру.
Связишаблон → электронная подпись сторон → эквайринг → чек через провайдера
Документы · договорДемо-данные
Договор аренды № Д-0000
Сторона 1 · подписано ЭП
Сторона 2 · подписано ЭП
Агентство · подписано ЭП
Интернет-эквайринг
Оплачено
Чек передан платёжному провайдеру
B
Архитектура: ядро и 12 подсистем
В центре — ядро из трёх слоёв: вход запросов, бизнес-логика и данные. Нажмите на узел — подсветится слой, с которым он говорит. Между узлами можно переходить стрелками на клавиатуре.
Ядро CRM
APIFastAPI · вход
Логикамодули и правила
ДанныеPostgreSQL · Redis
Backend / API→слой «API»
Узел 01 / 12
Backend / API
Все запросы — с сайта, от ботов и внешних сервисов — проходят через один вход.
FastAPI на нескольких воркерах, ≈160 модулей API. Один воркер выбирается лидером: он применяет миграции и запускает фоновые задачи. Порядок middleware продуман: request-id, отчёты об ошибках, выбор арендатора, защита, динамический CORS.
В продакшене
Связано с
Узел 02 / 12
Данные
Клиенты, объекты, сделки и история хранятся в одной базе, отдельно у каждого партнёра.
PostgreSQL: 150 миграций Alembic, ≈280+ таблиц. Отдельная схема на каждого арендатора. Redis для кэша и realtime.
В продакшене
Связано с
Узел 03 / 12
White-label
Партнёр получает свой сайт на той же платформе, и его данные не смешиваются с чужими.
Партнёрские сайты на той же платформе с полной изоляцией данных, файлов, логинов, чатов, ключей и звонков. Новый сайт разворачивается автоматически, у каждого свой тариф.
В продакшене
Свои боты для каждого сайта — в планах
Связано с
Узел 04 / 12
Платежи
Клиент платит онлайн, чек уходит через банк. У партнёрских сайтов — свои тарифы.
Слой провайдеров эквайринга: несколько платёжных систем за единым интерфейсом, подпись запросов, проверка webhook, чеки через эквайринг. Отдельно работает SaaS-биллинг партнёрских сайтов (тарифы, оплата, блокировка при неоплате).
В продакшене
Покрыто тестами
Возвраты через API — в планах
Связано с
Узел 05 / 12
Документы
Договор собирается из шаблона и подписывается электронно всеми сторонами.
Шаблоны договоров, PDF, распознавание документов (OCR), электронная подпись у двух провайдеров, мультисторонняя подпись.
В продакшене
Покрыто тестами
Связано с
Узел 06 / 12
Клиенты и сделки
Карточка клиента, воронка и сделка с комиссией — в одном месте, с полной историей.
Карточки клиентов с историей, воронки, сделки с комиссиями и выплатами, подборки объектов с публичными ссылками, личный кабинет клиента.
В продакшене
Связано с
Узел 07 / 12
Телефония
Звонок из облачной АТС сразу попадает в карточку: запись, статус и задача перезвонить.
Интеграция с облачной АТС: события звонков в реальном времени по WebSocket, записи разговоров, перезвоны через стадии воронки.
В продакшене
Перезвоны покрыты тестами
Связано с
Узел 08 / 12
Мессенджеры и площадки
Переписки из мессенджеров и с площадок собираются в одну ленту.
Telegram-, VK- и MAX-боты, чаты крупных площадок недвижимости, агрегатор мессенджеров, поддержка и почта. Всё в одном inbox.
В продакшене
Связано с
Узел 09 / 12
AI
Расшифровка звонка, черновик ответа и сводка работают внутри карточки, а не отдельным чатом.
Расшифровка звонков, AI-тренер для агентов, автоответы в чатах, генерация описаний и страниц, виртуальный стейджинг фото, AI-сводки по финансам и эффективности. Плюс коннектор для ChatGPT по протоколу MCP.
В продакшене
MCP-коннектор покрыт тестами
Связано с
Узел 10 / 12
Аналитика
Видно, кто из агентов что закрыл, откуда приходят заявки и как идут деньги.
Отчёты по агентам, финансам и источникам заявок, ежедневные AI-сводки, продуктовая аналитика и отслеживание ошибок.
В продакшене
Связано с
Узел 11 / 12
Интеграции
Площадки, телефония, оплата и подпись подключены к CRM и обмениваются данными сами.
Источники объявлений, площадки недвижимости, облачная АТС, мессенджеры, эквайринг, электронная подпись, справочные сервисы по адресам и компаниям, LLM-провайдеры, push-уведомления, карты.
В продакшене
Связано с
Узел 12 / 12
Инфраструктура
Обновление выкатывается одной командой, а сбои видно в мониторинге и в Telegram.
Деплой одной командой со smoke-проверкой. Мониторинг: Prometheus, Grafana, Loki, алерты в Telegram, uptime-мониторинг, heartbeat фоновых задач. Android-приложение на Capacitor.
В продакшене
Связано с
C
Инженерные решения
Что внутри на уровне архитектуры — для тех, кто оценивает техническую глубину.
01PostgreSQL · multi-tenant
Мультиарендность на уровне схем PostgreSQL
У каждого арендатора своя схема. Нужная выбирается на каждый запрос через контекст и search_path в общем пуле соединений, имя схемы строго валидируется. Та же изоляция применяется к файлам, кэшу, realtime-каналам и AI-коннектору.
запрос → контекст арендатора → search_path → общий пул
02процессы · блокировка
Один лидер среди воркеров
API работает на нескольких процессах, но миграции и фоновые задачи должны выполняться ровно один раз. Лидер выбирается через файловую блокировку: он обновляет схемы всех арендаторов до приёма трафика и запускает планировщики. Realtime и webhook-боты при этом работают на каждом процессе.
N воркеров → файловая блокировка → лидер: миграции + планировщики
03Redis pub/sub · WebSocket
Realtime поверх нескольких процессов
Событие о звонке может возникнуть в любом процессе, а сокет пользователя открыт в другом. События рассылаются через Redis pub/sub, и каждый процесс доставляет их только своим подключениям нужного арендатора. Если Redis недоступен, доставка идёт локально. Сессии WebSocket проверяются так же строго, как HTTP.
событие (процесс A) → Redis pub/sub → процесс B → сокет арендатора
04миграция БД
Миграция с SQLite на PostgreSQL без слоя совместимости
Сначала инвентаризация: каждая таблица, индекс и файл с запросами. Затем перенос на нативный SQL. Создавать таблицы «на лету» в коде запрещено, схемой владеют только миграции. После переноса автоматический прогон по всем эндпоинтам с разными уровнями прав.
инвентаризация → нативный SQL → только миграции → прогон всех эндпоинтов
05данные · дедупликация
Дедупликация объявлений из разных источников
Одна квартира приходит из нескольких источников с разным текстом. Кандидаты в дубли отбираются узко: по телефону или по улице и номеру дома с точными границами (дом 51 ≠ 251). Потом сравниваются ключи «адрес + площадь/этаж + цена».
телефон | улица + дом (51 ≠ 251) → адрес + площадь/этаж + цена
06AI · фоновые задачи
Конвейер AI-анализа звонков
Запись → расшифровка (цепочка провайдеров с переключением) → разбор LLM → обратная связь агенту. Задачи выполняются в фоне для всех арендаторов, зависшие сбрасываются, сбойные повторяются.
запись → расшифровка (fallback) → LLM → фидбек · retry
07RBAC · аудит
Гибкие права доступа
Права роли плюс индивидуальные разрешения и запреты для конкретного сотрудника. Менять собственные права нельзя, каждое изменение попадает в журнал с состоянием «было/стало».
роль + разрешения/запреты сотрудника → журнал «было/стало»
08MCP · безопасность
Безопасный AI-коннектор для ChatGPT
Арендатор определяется только по авторизованному подключению. Попытки передать «чужую» схему в аргументах вырезаются, каждый вызов журналируется. В инструкциях модели прописан запрет выдумывать цифры.
подключение → арендатор → фильтр аргументов → журнал вызовов
D
Масштаб системы
Технические показатели по исходному коду проекта. Знак «≈» означает оценку, а не точный подсчёт.
миграций схемы БД
150
таблиц в PostgreSQL
≈280+
модулей API
≈160
эндпоинтов — порядок, оценка по коду
≈2 000
экранов веб-приложения
≈100
страниц релиз-нот в changelog
100
автотестов бэкенда и фронтенда + прогон по всем эндпоинтам
40+
внешних сервисов интегрировано
20+
E
Интеграции
Внешние сервисы, с которыми работает платформа, по категориям.
Собственные продукты и клиентские системы: ИИ-сервисы, Telegram-инструменты, мониторинг, маркетплейсы и сайты.
Ниже — какие системы я разрабатываю и где это можно посмотреть.
Какие системы разрабатываю
CRM и бизнес-системыКлиенты, воронки, сделки, роли и права, отчёты, телефония и мессенджерыCRM для агентства аренды
SaaS и white-label платформыМультиарендность, изоляция данных, тарифы и биллинг партнёровWhite-label в CRM-кейсе
ИИ-сервисы и APILLM-шлюзы, расшифровка и разбор, автоответы, MCP-коннекторыNeuronex, Tydy
Боты и мессенджерыTelegram-, VK- и MAX-боты, единый inbox, рассылки и подпискиTydy, мессенджер
Realtime и мониторингWebSocket, Redis pub/sub, опрос серверов по протоколам, публичное APIServerCon
Маркетплейсы и платформы с оплатойКаталоги, отклики, чаты, подписки, онлайн-оплатаJob-sy, Литсфера
Доступ к GPT, Claude, Qwen, DeepSeek и другим моделям через веб-чат со стримингом или OpenAI-совместимый API для своих продуктов. Ключи со статистикой по каждому, учёт расхода по токенам. Используется как AI-шлюз в CRM-кейсе.
Задача · В работеПочинить кнопку оплаты на мобильных3 сообщения → 1 задача
В продакшенеTelegram · AI-workspace
Tydy
Задачи из рабочей переписки в Telegram
Бот читает рабочие чаты и превращает переписку в задачи с контекстом: несколько сообщений одного человека — один запрос, уточнение через пару часов обновляет ту же задачу вместо дубля. Скриншоты и голосовые прикрепляются к задаче, AI предлагает изменения — решает человек. Канбан, роли и MCP-доступ для AI-агентов.
Опрос серверов по игровым протоколам (27+ игр — Rust, Minecraft, CS2 и другие), сбор статистики онлайна, публичное REST API и система продвижения серверов. Веб-часть на Laravel, опрос серверов — отдельный воркер на Python. Совместный проект с Яном Чесалиным (Twenix).
Единый слой между мессенджерами: диалоги в одном веб-интерфейсе и через API, каждый канал подключается как отдельная интеграция. Сейчас работает подключение личного Telegram-аккаунта; MAX и WhatsApp в разработке.
Понятные этапы и видимый результат на каждом шаге. Можно начать с небольшого первого этапа,
чтобы проверить, как нам работается вместе.
01
Разбор задачи
Созвон или переписка: процессы, текущие инструменты, ограничения и что считать результатом.
02
Оценка и план
Предлагаю архитектуру и состав работ, разбиваю на этапы и оцениваю каждый.
03
Разработка итерациями
Показываю рабочие версии по ходу, а не в конце. Приоритеты можно менять, когда система начинает работать с реальными данными.
04
Запуск
Деплой, перенос данных, мониторинг ошибок и доступности, проверка на реальных сценариях.
05
Поддержка и развитие
Исправления, доработки, новые интеграции и развитие системы по мере роста бизнеса.
Один инженер на весь цикл
Архитектура, бэкенд, интерфейс и инфраструктура — в одних руках, без потерь на стыках между подрядчиками.
Прозрачный ход работ
Регулярные демо и понятный статус: что готово, что в работе, какие решения нужны от вас.
Инженерная основа
Продуманная схема данных, миграции, тесты на критичных участках, логи и мониторинг — чтобы систему было легко развивать.
Частые вопросы
С какими задачами лучше приходить?
Сложные веб-приложения, CRM и внутренние системы, интеграции с внешними сервисами, автоматизация процессов, ИИ-функции, доработка существующего проекта. Сайты и каталоги тоже делаю.
Как формируется стоимость?
Зависит от объёма и количества интеграций. Фиксированного прайса нет: после разбора задачи даю оценку по этапам.
Можно доработать существующую систему?
Да. Начинаю с разбора кода и инфраструктуры, затем предлагаю план: что исправить сразу, что переписать, что оставить как есть.
Работаете в одиночку или с командой?
Могу вести проект целиком — от архитектуры до поддержки — или подключиться к вашей команде на конкретную часть: бэкенд, интеграции, инфраструктуру.
05Технологии
Рабочий стек
То, на чём построены проекты выше. Инструменты подбираю под задачу и под то, кто будет поддерживать систему дальше.
Бэкенд
PythonFastAPI, asyncio, Pydantic, aiogram
PHPLaravel, REST API
Node.jsсервисы, WebSocket
Интерфейсы
TypeScriptстрогая типизация фронтенда
ReactSPA, сложные формы и таблицы
Vueвеб-интерфейсы продуктов
HTML / CSSадаптивная вёрстка, анимации
Данные
PostgreSQLсхемы, миграции, индексы
Redisкэш, pub/sub, realtime
MySQLLaravel-проекты
Инфраструктура
Linuxсерверы, systemd
Nginxпрокси, SSL
DockerDocker Compose
МониторингPrometheus, Grafana, Loki, Sentry
Интеграции и ИИ
GigaChat API
OpenAI-совместимые LLM API
Расшифровка речи
MCP-коннекторы
Telegram / VK / MAX-боты
WebSocket
Облачная телефония
Интернет-эквайринг
Электронная подпись
Capacitor (Android)
06Контакты
Обсудим вашу задачу
Опишите, что нужно сделать, — отвечу с вопросами или предложу, с чего начать.
Подойдёт и идея, и готовое ТЗ, и система, которую нужно доработать.
Чтобы сразу перейти к сути, можно скопировать шаблон и заполнить его:
Здравствуйте! Хочу обсудить задачу.
Чем занимается компания: …
Что сейчас неудобно / что хотим получить: …
Какими сервисами уже пользуемся (CRM, телефония, мессенджеры, оплата): …
Желаемые сроки и бюджет, если есть: …