Радиф Илалтдинов

Backend или Full Stack разработчик. Автоматизирую процессы. Внедряю ИИ

Казань, Россия Удалённо, гибридно, готов к переезду и командировкам Опыт 7+ лет, подтверждён электронной трудовой книжкой Senior / ведущий разработчик · Backend · Full Stack · Внедрение ИИ · Автоматизация процессов

Живое демо моей мульти-агентной системы на локальных LLM — скриншоты и разбор в разделе «Демо».

Инженерные показатели

Цифры, за каждой из которых стоит проверяемый источник, а не самооценка. Кликните на подпись — попадёте на доказательство.

7+ летв коммерческой разработке: edtech, финтех, вендинг, телефония, строительство. Стаж, должности и даты — в электронной трудовой книжке (СФР)
13компетенций подтверждено независимой оценкой Минцифры — все на продвинутом уровне, теория и практика
889unit-тестов во флагманском проекте при покрытии 88% и жёстком гейте ≥80%
7автоматических гейтов качества в CI — все детерминированные, без ИИ
≈5 000студентов заведено в продакшн федеральной платформы моими скриптами загрузки и миграции — и они пользуются приложением
2федеральные сети школ обслуживает одна кодовая база: веб, Android, iOS и Telegram-бот
19инструментов у моего ИИ-агента и 3 канала на одном доменном контракте — живые сессии в «Демо»
10+проектов полного цикла сдано под ключ: от макета до HTTPS на боевом Linux-сервере — часть открыта в коде
0обращений к облачным LLM-API: инференс, эмбеддинги, vision и дообучение идут на моём железе, данные не покидают машину

Обо мне

Backend-разработчик с полноценным опытом Full Stack. Отвечаю за задачу целиком — от архитектуры базы данных и серверной логики до деплоя на чистый Linux-сервер и работы системы в продакшне. Фронтенд (web, mobile, desktop) подключаю по необходимости, как часть фуллстека. 7+ лет в коммерческой разработке: edtech, финтех, вендинг, телефония, строительство и др. Работаю официально по ТК РФ, стаж подтверждён электронной трудовой книжкой. В текущей компании прошёл путь от бэкенд-разработчика до старшего разработчика и с 2025 года официально совмещаю две штатные должности — старший разработчик и системный аналитик.

Внедряю ИИ в разработку: мульти-агентные системы, локальные LLM, RAG, дообучение моделей, мультимодальность (текст, документы, голос, изображения), MCP. Выстроил единый процесс ИИ-ассистированной разработки — один свод правил для всех агентов (Cursor, Windsurf, Devin, Claude Code, GitHub Copilot, JetBrains AI), обязательные тесты и линтеры, синхронная документация. Архитектуру, ревью и финальные решения держу за собой — агенты ускоряют рутину, а не заменяют инженера. Результат: скорость разработки выросла в несколько раз, код приходит с тестами, документация не отстаёт от кода. Процесс открыто показываю во флагманском проекте: единый свод правил — AGENTS.md, доска со спринтами — _board, документация — _docs, скиллы-дисциплины ассистента — .agents. Что из этого получается на практике — в разделе «Демо»: скриншоты живых сессий системы с разбором.

Автоматизирую рутину на всех уровнях: повторяющиеся операции закрываю скриптами, планировщиками (Celery, APScheduler, cron) и запуском по кнопкам в веб-интерфейсе — вместо ручных команд в консоли. Держусь принципа «детерминированное автоматизируй инструментом, а не ИИ»: где результат должен быть предсказуемым (линтеры, тесты, контроль покрытия, проверки синхронности, миграции данных), работают инструменты — вплоть до скрипта, который одной командой прогоняет весь ритуал проверок перед коммитом, — а ИИ оставляю там, где нужна гибкость. Так автоматизация остаётся надёжной и воспроизводимой, а токены LLM тратятся на суждения, а не на механику.

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

Ключевые навыки

Языки

PythonJavaScriptTypeScriptPHPSQLBash

Backend

FastAPIDjangoDjango REST frameworkAsyncIOAiohttpCelerySQLAlchemyPydanticAlembicSocket.IOWebSocketGraphQLRESTJWTOpenAPI / Swagger

Frontend

ReactVue.jsSvelte.jsReduxSPAjQueryWebpackSassHTML5 / CSS3Bootstrap

Базы данных и брокеры

PostgreSQLMySQLSQLiteMongoDBRedisRabbitMQMQTT

DevOps и инфраструктура

LinuxDockerDocker ComposeNginxGunicornGitLab CI/CDVPS / VDSLet's EncryptZabbix

ИИ и LLM

Внедрение ИИ в разработкуЛокальные LLM (Ollama)Мульти-агентные системыМультимодальностьFine-tuningЭмбеддинги / RAGsqlite-vecMCPOCR (Tesseract)faster-whisperVision-моделиGPTClaude

ИИ-ассистенты в разработке

CursorWindsurfDevinClaude CodeGitHub CopilotJetBrains AI AssistantPyCharm Professional

Инструменты и подходы

GitGitLabBitbucketJiraYouTrackYandex TrackerAgile / SCRUMCode ReviewМикросервисыPytest

Автоматизация процессов

Автоматизация рутиныПланировщики (Celery, APScheduler, cron)CI/CD-гейтыflake8 / pytestКонтроль покрытияСкрипты миграции данныхЗапуск по кнопкамSandbox-запуск скриптовИнструменты вместо ИИИИ для рутинных задач

Data mining и edge

ScrapyBeautifulSoupSeleniumXPathPyQtRepka Pi / Orange PiModbusKiosk-режим

Опыт работы

Опыт подтверждён документально

Работаю официально по ТК РФ: Опыт разработки — должности, компании, даты и стаж — подтверждён в электронной трудовой книжке (СФР).

Остальные заявления в резюме тоже проверяемы: технические компетенции — независимой оценкой Минцифры (13 сертификатов, продвинутый уровень), инженерная практика — открытым кодом на GitHub, живым демо и работающими сервисами на моём VPS.

ООО «Творческое Образование» — Старший разработчик, системный аналитик

Август 2024 — настоящее время

Краснодар, удалённо. Федеральные сети онлайн и офлайн школ. Главный разработчик на проектах. grafika-art-school.ru/franchise (GRAFIKA) и arttech-school.ru/franchise (ArtTech)

Рост внутри компании

  1. 2024 — пришёл бэкенд-разработчиком: архитектура БД и серверная часть платформы, которую делали с нуля.
  2. 2025 — повышен до старшего разработчика и закрыл выпавшую роль системного аналитика. С этого момента официально совмещаю две штатные должности — старший разработчик и системный аналитик, каждая со своей зарплатой.
  3. 2026 — зона ответственности расширена на backend, frontend, DevOps, QA, архитектуру и системную аналитику, включая поддержку проектов смежных отделов на других языках.

Платформу для студентов, преподавателей, менеджеров, руководителей и партнёров делаем с нуля: веб-версия, приложения для Android и iPhone, Telegram-бот. По сути это CRM/ERP сети школ: расписания и залы, абонементы и финансы, роли и права, отчётность — семь типов пользователей со своими правами и интерфейсами. В команде backend- и frontend-разработчики, DevOps, системные аналитики, PM и QA. Я проектирую архитектуру БД и бэкенда, пишу серверную часть, помогаю аналитикам с ТЗ, а фронтендерам с отладкой и оптимизацией запросов.

Масштаб системы
2 федеральные сети из одной кодовой базы4 клиента: веб, Android, iOS, Telegram7 ролей пользователей~40 таблиц в PostgreSQL~90 версионных миграций120+ REST-эндпоинтов20+ доменных роутеров~30 тыс. строк бэкенда~80 тыс. строк фронтенда30+ экранов интерфейсаДесятки городов в разных таймзонах

Цель Запустить платформу для федеральной сети школ и довести её до продакшна.

Действие Спроектировал архитектуру БД и бэкенда, реализовал серверную часть веба и приложений. Стек выбрал полностью асинхронный (FastAPI, SQLAlchemy 2.0 async, asyncpg), схему БД — под версионные миграции Alembic, чтобы структура менялась без простоя и без ручных правок на проде. Написал скрипты загрузки и миграции данных.

Результат Вывели продукт в продакшн. Через мои скрипты в систему заведено около 5 000 студентов, которые активно пользуются приложением.

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

Действие Сделал конструктор абонементов (направления со своими лимитами или безлимитом), запись и отмену занятий, заморозки, приостановки, трансферы, присутствие студента сразу в нескольких школах, учёт десятков городов в разных таймзонах.

Результат Бэкенд сам корректно отрабатывает эти случаи, ручных операций стало заметно меньше.

Цель Дать живую связь с пользователями.

Действие Построил систему массовых и индивидуальных push-уведомлений на Socket.IO с Redis в роли брокера — realtime масштабируется горизонтально, несколькими процессами за балансировщиком, а не одним «толстым» воркером. Онлайн-сессии и присутствие держу в Redis, доступ — по JWT с асимметричной RSA-подписью (приватный ключ не покидает эмитента, остальные сервисы проверяют токен публичным). Добавил отложенные рассылки по расписаниям и событиям, с генерацией текста по шаблонам и учётом таймзон.

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

Цель Дать прозрачность обучения и обратную связь, упростить контроль для управляющей компании и партнёров.

Действие Сделал оценку занятий (рейтинги и отзывы), хранение и показ истории действий студента в его профиле, а также инструменты отчётности, рейтингов и контроля для сотрудников управляющей компании, партнёров и школ.

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

Цель Масштабировать продукт на две федеральные сети (GRAFIKA и ArtTech) и подготовить выход за рубеж.

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

Результат Одно приложение работает на две федеральные сети (GRAFIKA и ArtTech) в РФ, начата подготовка к запуску в других странах.

2026. Принял на себя backend, frontend, DevOps, QA, архитектуру и системную аналитику, в том числе поддержку проектов на других языках из смежных отделов. Теперь отвечаю практически за всё, что связано с разработкой ПО в компании — от схемы БД до выкладки на прод и процесса, по которому работает команда.

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

Действие Выстроил тестовую инфраструктуру на обоих проектах: pytest + pytest-asyncio + httpx на бэкенде, vitest (unit) и Playwright (e2e) на фронтенде — сквозные сценарии прогоняются отдельно по каждой роли и отдельно в мобильных раскладках, UI-компоненты вынесены в Storybook. Взял на себя CI/CD в GitLab: сборка образов → линтеры → тесты с замером покрытия → выкладка на удалённые хосты через Docker-контексты → миграции → уведомление в Telegram. Развёл окружения (тест, прод GRAFIKA, прод ArtTech) и перевёл релизы на SemVer-теги от main, чтобы каждая версия на проде была однозначно сопоставима с коммитом.

Результат Выкладка стала операцией, а не ритуалом: пайплайн сам не пустит на прод код, не прошедший линтеры и тесты, а откат — это возврат на предыдущий тег.

Цель Не дать двум брендам разъехаться в две несовместимые кодовые базы.

Действие Оставил один бэкенд и один фронтенд-бандл на обе сети: бренд определяется доменом и флагом сборки, а различия в логике, правах и оформлении вынесены в конфигурацию, а не в форк. Фронтенд организовал по Feature-Sliced Design (слои app / pages / widgets / features / entities / shared) — границы между доменами явные, и правка одного модуля не тянет за собой соседние.

Результат Новая фича выходит сразу на обе сети, а не пишется дважды; расхождения между брендами остаются на уровне настроек.

Цель Ускорить разработку и держать единое качество кода, когда над проектом работают разные ИИ-ассистенты и агенты.

Действие Внедрил собственный процесс ИИ-ассистированной разработки: единый свод правил для всех агентов (один источник истины плюс 11 скиллов-дисциплин — git, тесты, асинхронный код, отладка, документация, подготовка и ревью MR, релизы, автоматизация), доску со спринтами, этапами и задачами, Definition of Ready и Done, ритуал коммитов, обязательные тесты и линтеры до коммита, синхронную документацию. Моно-репо с оркестратором сам маршрутизирует запрос в нужный проект и задаёт агенту порядок чтения документов. Механику вынес в скрипты-гейты: синхронность доски с файлами спринтов, валидность ссылок в документации, перевод статусов задач — одной командой; весь ритуал проверок до коммита прогоняет единый preflight. Любой агент (Cursor, Windsurf, Devin, Claude Code, GitHub Copilot, JetBrains AI) читает одни и те же документы и пишет код единообразно. В ежедневной работе совмещаю несколько ассистентов и под задачу выбираю подходящий. Архитектуру, ревью и финальные решения держу за собой — агенты ускоряют рутину, а не заменяют инженера.

Результат Скорость разработки выросла в несколько раз: код приходит с тестами и пройденными линтерами, документация не отстаёт от кода, единое качество держится даже при работе с разными агентами. Процесс не на словах, а в артефактах: 12 закрытых спринтов с досками по проектам, 11 скиллов-дисциплин, 31 документ живой спецификации бэкенда и фронтенда, ни одного изменения в обход доски.

Инженерный процесс
Моно-репо с оркестратором12 закрытых спринтовDefinition of Done11 скиллов-дисциплин31 документ спецификацииpreflight до коммитаСкрипты-гейты синхронности8 стадий GitLab CI4 окруженияЗамер покрытия в CIДеплой по SemVer-тегамMR-дисциплина и ревью

Сами мульти-агентные системы, локальные LLM, RAG и дообучение моделей — мой полигон: на нём учусь, проверяю идеи и оттачиваю этот процесс. Методику выложил в открытом виде во флагманском проекте ai-multi-agent-system — открыто лежат AGENTS.md, _board, _docs и .agents. Другие открытые наработки: local-rag-mcp, fine-tuning, ai-tg-bot. Помог маркетингу с интеграциями и автоматизацией: Битрикс24, GetCourse, Tilda, Albato, eLama, RIS.Promo, Марквиз, ВКонтакте.

Стек
Python 3.14FastAPIUvicornAsyncIOPostgreSQL 16SQLAlchemy 2.0 asyncasyncpgAlembicPydantic 2PoetryRedisSocket.IOWebSocketJWT RS256S3 (aiobotocore)RESTful APIOpenAPI / Swagger / ReDocPytesthttpxFlake8TypeScript 5React 18Vite 5Feature-Sliced DesignEffectorReact Router 6Formik / YupSCSS ModulesStorybookVitestPlaywrightESLint / StylelintPWADocker (multi-stage)Docker ComposeNginxGitLab CI/CDSemVer-релизыLinuxJiraConfluenceБитрикс24CursorWindsurfDevinJetBrains AI AssistantGitHub CopilotClaude CodePyCharm ProfessionalOllamaМульти-агентыFine-tuningRAG

Pel-Meni — Ведущий разработчик

Июль 2023 — Август 2024

Казань. Вендинговые аппараты, интернет-магазин, одноплатные ПК и серверы. pel-meni.ru

Цель Привести сырой legacy к рабочему и развиваемому состоянию.

Действие Исправил баги, отрефакторил код под PEP-8 и GitFlow, добавил аннотации типов, документацию и Docstrings, ввёл Code Review и трекинг задач в Yandex Tracker, перевёл данные с SQLite на PostgreSQL.

Результат Проект стало возможно развивать командой, а не латать в одиночку.

Цель Разделить монолит и упростить разработку.

Действие Разделил frontend и backend (Django REST framework и Vue.js), перевёл систему на микросервисную архитектуру, добавил логирование сервисов с веб-интерфейсом, брокеры сообщений (MQTT, RabbitMQ) и Docker Compose.

Результат Сервисы стало можно размещать и обновлять по отдельности.

Цель Убрать риск поломки продакшна при разработке.

Действие Собрал локальную среду разработки (любой разработчик запускает backend, frontend, монолиты и микросервисы вендинга, магазина, админки и ЛК у себя на ПК) и удалённую предпродакшн-среду на отдельной системе.

Результат Тестировать и дебажить можно без опасения сломать продакшн.

Цель Заставить работать связку «железо в торговом зале → облако» так, чтобы аппарат готовил заказ сам, а не по звонку оператора.

Действие Программировал сами аппараты на одноплатных ПК (Repka Pi, Orange Pi): управление контроллером по Modbus TCP, платёжный терминал Vendista по serial-порту, манипулятор соусов — напрямую через GPIO и I²C, интерфейс киоска в Chromium и Firefox Kiosk с автозапуском через systemd. Живое состояние заказа гоняю в интерфейс по WebSocket (Django Channels + Redis), обмен с облаком — через MQTT-брокер и RabbitMQ. Подключил онлайн-оплату и фискальные чеки, мультиязычность каталога, автогенерацию OpenAPI. Отдельным микросервисом сделал контроль связи с аппаратами: если аппарат перестал отвечать — алерт уходит в Telegram. Доступ к аппаратам и БД закрыл VPN (L2TP/IPsec).

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

Масштаб
2 Django-проекта, 28 приложений~31 модель БД105 миграций117 маршрутов в магазине3 микросервиса на FastAPIVue 3 + Vite + PiniaSvelte (первая версия киоска)Edge на Orange Pi
Стек
PythonDjango 4Django REST frameworkDjango ChannelsDaphneFastAPIWebSocketJavaScriptVue 3VitePiniaSvelte.jsLinux UbuntuPostgreSQLSQLiteRedisMQTT (Mosquitto)RabbitMQModbus TCPpyserialGPIO / I²CRepka PiOrange PiVendistaОнлайн-оплата и чекиChromium / Firefox KiosksystemdVPN L2TP/IPsecGunicornNginxDocker ComposeGitLabYandex TrackerRESTful APIOpenAPI (drf-spectacular)

«Ваш инвестор» — Старший программист

Декабрь 2022 — Июль 2023

Новосибирск. Сервис займов (финтех). vashinvestor.ru/company

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

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

Действие Большую часть проверок реализовал прямо в Zabbix. Для остальных — там, где нужна сложная авторизация (в том числе по сертификату) или разбор нетривиальных структур ответа — написал промежуточные сервисы на Django REST framework и отдал их в Zabbix как обычные метрики. Среди источников — реестры Росфинмониторинга (перечень ФРОМУ, список МВК, перечень террористов и экстремистов) и сервисы проверки данных по базам МВД. Проверки идут по расписанию Celery, асинхронно и параллельно (AsyncIO, httpx, aiohttp), состояние сервисов держится в Redis. Токены доступа сервис перевыпускает сам — за час до истечения, а не после отказа. Статус трёхуровневый: UP / PREFAIL / DOWN, где PREFAIL — предупреждение «источник ещё работает, но квота или баланс подходят к концу». Запуск и логи любой проверки вывел кнопками в админку. Линтер поставил гейтом на деплой: не прошёл flake8 — контейнер не поднимается.

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

Дополнительно администрировал сервер, проводил Code Review и координировал внешнюю команду разработки, которая вела остальные продукты компании (публичный сайт, ядро, личный кабинет клиента).

Стек
Python 3.11Django 4.1Django REST frameworkAsyncIOhttpxaiohttpPostgreSQLSQLAlchemy 2.0Django ORMCeleryRedisZabbixGunicornNginxDocker Composeflake8 как гейт деплояGitLabLinux (CentOS 7)YouTrackБитрикс24

«Робот Карл» — Ведущий разработчик

Февраль 2022 — Декабрь 2022

Москва. Платформа лидогенерации на базе ИИ. robotkarl.ru

Цель Сделать стабильную работу телефонии в высоконагруженной системе.

Действие Реализовал сервис асинхронной перезагрузки шлюзов: десятки устройств перезагружаются параллельно (AsyncIO с uvloop, асинхронный HTTP-клиент, точка входа на FastAPI), а не по очереди. Сделал приложение распределения звонков с контролем состояний и переключением сим-карт (десятки шлюзов, сотни SIM-карт), включая автоматическую привязку SIM к слотам. Написал Selenium-парсеры личных кабинетов бизнес-аккаунтов операторов (каждый — в своём изолированном контейнере с браузером), парсеры статусов портов шлюзов с отправкой в RabbitMQ и парсер маршрутизатора сим-карт. Запуск по расписанию организовал через Celery — десяток регулярных задач.

Результат Звонки распределяются стабильнее, рутинные операции автоматизированы.

Цель Снизить нагрузку от смежного сервиса на PHP.

Действие Провёл research чужого проекта на PHP, переработал и оптимизировал его взаимодействие с нашим сервисом на Python.

Результат Нагрузка на системы снизилась, производительность взаимодействия выросла в разы.

Цель Автоматизировать управление сервисами и убрать ручные операции через консоль.

Действие Собрал веб-админку над двумя разными базами одновременно (маршрутизация запросов между БД на уровне приложения — своя, включая базу телефонной платформы): видны логи и конфиги, есть распределение прав и ролей, запуск отдельных сервисов, утилит и методов по кнопкам в интерфейсе и по расписанию. Каждый сервис описан своим конфигом и поднимается как отдельная systemd-единица, поэтому их можно разносить по разным серверам. Код — с аннотациями типов и документацией.

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

Отдельно принял на поддержку два чужих проекта: SMS-шлюз (FastAPI и Celery, шесть отдельных воркеров под свои роли — приём, обработка, публикация, вебхуки, работа с БД и учёт, миграции на Alembic) и ML-сервис анализа телефонных разговоров — распознавание речи и классификация реплик, определение пауз и реакций робота (Google Cloud Speech и сторонний ASR, librosa, морфология и NER для русского языка, обмен через RabbitMQ). Разбирался в чужой кодовой базе, чинил баги и держал сервисы в рабочем состоянии. Речь и ML в продакшне — ещё в 2022 году, задолго до того, как это стало моей основной темой.

Стек
PythonDjangoDjango REST frameworkFastAPIAsyncIOuvloopCelery + Celery beatRedisRabbitMQMySQL (две базы)SQLAlchemyDjango ORMAlembicSeleniumBeautifulSoup / lxmlsystemdASR / речьAsteriskLinux (Ubuntu)DockerGitLab CI/CDJiraConfluenceBitbucketZabbix

Проектная работа — Fullstack-разработчик

Май 2019 — Январь 2022

Казань. Частная практика. Коммерческий код под защитой NDA - в приватных репозиториях.

Цель Закрывать проекты полного цикла под ключ.

Действие Делал дизайн-вёрстку (Pixel Perfect по макетам и без), фронтенд на JS, бэкенд на Python и PHP. Здесь же работал с PHP, Composer и Yii2-Advanced. Деплоил вручную на чистый Linux VPS без виртуального хостинга, поднимал контейнеры Docker Compose с общей сетью, получал сертификаты Let's Encrypt и подключал HTTPS через Nginx.

Результат Сдал 10+ проектов под ключ: сайты и сервисы доходили до продакшна и работали под нагрузкой.

Параллельно вёл пет-проекты и командную разработку. Открытый код на GitHub — детали в разделе «Проекты и open source» ниже.

Стек
PHPComposerYii2-AdvancedJavaScriptjQueryAJAXVue.jsReactReduxNode.jsWebpackGulpNpmBowerSPAHTML5 / CSS3SassBootstrapFlexbox / GridCookies / LocalStoragePythonDjangoDjango REST frameworkGraphQLAiohttpPyQt5ScrapyBeautifulSoupSeleniumXPathMongoDBMySQLPostgreSQLGunicornNginxApacheDocker ComposeLinux VPSLet's EncryptBashRegexGitAgile / SCRUM

Проекты и open source

Весь код реализован мной. Развёрнутые проекты работают на моём VPS: чистый Linux, контейнеры Docker Compose с общей сетью, домены под SSL и HTTPS через Nginx.

ai-multi-agent-system Флагман Скриншоты демо ↓

Локальная мульти-агентная система на self-hosted LLM через Ollama. Принимает задачу и крутит цикл «мысль → действие → наблюдение» до финального ответа. Мультимодальность: текст, документы (PDF/TXT/MD с OCR через Tesseract), голосовые (распознавание faster-whisper) и изображения (vision-модель + OCR) — всё обрабатывается единым агентным циклом. Это моя самая свежая и полная наработка: в неё вошли прежние ИИ-проекты, Telegram-бот и RAG, в переработанном виде. Веду по-инженерному: 15 закрытых спринтов с Definition of Ready/Done, 889 unit-тестов (покрытие 88% при жёстком гейте ≥80%) и семь автоматических гейтов качества в CI — без ИИ, только детерминированные проверки. Заодно это мой ежедневный рабочий инструмент — живые сессии со скриншотами и разбором — в разделе «Демо».

  • Роли Planner, Executor и Critic с режимами рефлексии off / normal / deep, переключение под пользователя, изящная деградация при сбоях (graceful degradation).
  • Одно ядро обслуживает три канала: Telegram (aiogram 3), консоль и MAX — один доменный контракт на все входы, адаптеры тонкие и новый канал не трогает логику ядра. На практике это доступ к одному и тому же помощнику и с телефона, и с ПК.
  • Под разные задачи разные локальные модели: отдельно для рассуждений, эмбеддингов и зрения, плюс распознавание речи через faster-whisper.
  • Долгосрочная семантическая память (RAG) на sqlite-vec с task-префиксами эмбеддингов для качества поиска. 19 инструментов: точная арифметика, OCR (Tesseract), описание изображений vision-моделью, веб-поиск и HTTP-запросы, погода, чтение файлов и документов, поиск по памяти, почта (IMAP — Яндекс + Gmail, вложения писем сразу разбираются как документы), Яндекс.Диск (список, скачивание, загрузка), планировщик регулярных cron-задач (ставятся на естественном языке, результат приходит в любой из каналов и переживают рестарт), запуск детерминированных скриптов скиллов в sandbox.
  • Скиллы с детерминированными скриптами: markdown-описания инжектятся в системный промпт, а механические операции выполняются кодом в sandbox — токены LLM тратятся на суждения, а не на механику. Тот же принцип в скиллах ассистента, например preflight.sh одной командой прогоняет весь ритуал проверок перед коммитом.
  • 889 unit-тестов на pytest без сетевых вызовов (покрытие 88% при гейте ≥80%, бейдж покрытия обновляет сам CI; строк тестов больше, чем строк самого приложения), структурные JSON-логи со сквозным trace_id, error tracking в self-hosted GlitchTip (разделение потоков Issues / Logs / Crons), журнал диалога только на дозапись (append-only), с фоновым восстановлением сессий после сбоя. Всё локально, без облачных LLM-API.
  • Безопасность по умолчанию: очистка ввода и «бастион» на выходе, у каждого пользователя своя (per-user) область видимости файлов, белый список (allowlist) для опасных инструментов, маскирование секретов в логах.
  • Автоматический контроль качества — семь гейтов в CI, все без ИИ: flake8, pytest с порогом покрытия, проверка, что в git не попали секреты и артефакты из .gitignore, и скрипты-проверки синхронности: настройки ↔ .env.example, документация (нет битых ссылок и ссылок на несуществующие разделы), доска спринтов ↔ файлы спринтов (включая правило «не более одной задачи в работе»), формат и зеркала скиллов и промптов ассистента. Локально те же гейты прогоняются одной командой до коммита, а перевод задачи по доске (статусы, DoD, сводные таблицы, история, коммит) делает скрипт task.py — механика не тратит ни время инженера, ни токены LLM.
  • Архитектура проверяется глазами, а не на веру: кодовая база выгружается в интерактивный граф связей (Graphify, порядка 2,8 тыс. узлов и 7 тыс. рёбер) — видно окружение любого модуля и подтверждается инвариант единой точки входа для всех каналов.
  • Заодно это полигон для процесса ИИ-ассистированной разработки: AGENTS.md как единый источник правил для всех агентов (зеркалится в CLAUDE.md / GEMINI.md / QWEN.md и правила Cursor / Windsurf / Devin / GitHub Copilot), 12 скиллов-дисциплин в .agents (архитектура, async, тесты, ошибки, защита от prompt injection, документация, git, подготовка и ревью PR), доска со спринтами и задачами в _board (process.md, plan.md, спринты 01–15, журнал внеспринтовых правок — ни одного «безымянного» изменения в обход доски), Definition of Ready и Done. Тот же подход внедрил на работе и в несколько раз ускорил разработку.
Стек
PythonOllamaaiogram 3httpxsqlite-vecfaster-whisperTesseract OCRPydanticPytestMulti-agentRAGIMAPЯндекс.Диск APIMAX APIAPSchedulerGlitchTip / SentryGitHub Actionsflake8Graphify

Другие ИИ-наработки

  • local-rag-mcp — локальная privacy-first база знаний на RAG и MCP. Гибридный поиск (BM25 и векторный с объединением через RRF), cross-encoder reranker (BAAI/bge-reranker-base), расширение коротких запросов, FAISS, эмбеддинги SentenceTransformers, ответы локальной LLM через Ollama. Инструменты MCP (read / list / search) модель вызывает сама. Без облачных API.
  • fine-tuning — дообучение моделей под конкретные задачи.
  • ai-tg-bot — Telegram-бот-чат на локальной LLM с памятью контекста и суммаризацией истории. Ранняя версия идей, которые развиты во флагмане.

Этот сайт — radif.ru (open source)

Сайт-резюме, который вы сейчас читаете — тоже мой код и живой пример Full Stack + DevOps под ключ, без фреймворков и сборщиков (vanilla). Открытый исходник: github.com/radif-ru/www.

  • Frontend: семантический HTML5, доступность (skip-link, ARIA-лендмарки, навигация с клавиатуры), адаптивная вёрстка на нативном CSS (переменные, clamp(), Grid, CSS-нестинг) и фоновая canvas-анимация «нейросети» на нативном JavaScript (ES6) с учётом энергосбережения и prefers-reduced-motion.
  • SEO: OpenGraph / Twitter Cards, canonical, robots.txt, sitemap.xml, расширенные структурированные данные JSON-LD (@graph: Person, WebSite, ProfilePage, SoftwareSourceCode).
  • DevOps: деплой в Docker за Nginx — TLS 1.2/1.3, HTTP/2, строгий Content-Security-Policy (script-src 'self', без unsafe-inline) и security-заголовки, gzip, кэш-заголовки, healthcheck. Полностью на моём VPS.
  • PWA: manifest.webmanifest, SVG-фавиконка, иконки 192/512 (в т.ч. maskable), apple-touch-icon, theme-color — устанавливается на главный экран как приложение.
  • Качество и CI: Prettier, ESLint (flat config), Stylelint, html-validate, EditorConfig; GitHub Actions — автозапуск линтеров, гейта мета-данных и Lighthouse-аудита на каждый push (порог ≥90 по accessibility, SEO и best practices).
  • Тот же принцип «детерминированное — скриптом, а не глазами»: заголовок сайта дублируется в четырёх местах (<title>, OpenGraph, Twitter Card, JSON-LD), а дата модификации — в JSON-LD и sitemap.xml. Руками это расходится на первой правке, поэтому инвариант проверяет скрипт-гейт — вместе с валидностью JSON-LD, битыми внутренними якорями и rel="noopener" у внешних ссылок. Отдельный гейт обходит все внешние ссылки резюме: переименованный репозиторий или упавшее демо видно до того, как их увидит читатель. Всё вместе запускается одной командой preflight.sh до коммита.
  • Правила для ИИ-агентов — как в рабочих проектах: AGENTS.md как единый источник истины и два скилла-дисциплины (проверяемость цифр и границы NDA; curl-проверка бейджей). Сознательно скромнее, чем во флагмане с его 12 скиллами и досками спринтов: процесс должен быть по размеру задачи, а не по размеру амбиции.
Стек
HTML5CSS3JavaScript (ES6)Canvas APIJSON-LDPWADockerDocker ComposeNginxTLS 1.3HTTP/2CSPLet's EncryptLinux VPSGitHub ActionsLighthousePrettierESLintStylelint

Командный проект: Notebook-платформа (аналог Jupyter)

Разработали в команде на тренинге для Fullstack-программистов (coders.su): платформа заметок с выполнением JS- и Markdown-ячеек в браузере и AI-генерацией кода (AWS Bedrock / Claude, браузерная LLM — WebLLM). Работали по Scrum: спринты, code review, QA-процессы, production-readiness аудит, CI/CD на GitHub Actions с деплоем в AWS (ECS). Каждый спринт чередовали роли в команде: Техлид, DevOps, QA, Инженеры.

  • Backend: Python 3.11, FastAPI, Pydantic, PostgreSQL — dmc-1-t1-notebook-api.
  • Frontend: React 18, TypeScript, Vite, Redux Toolkit, CodeMirror, Tailwind CSS — dmc-1-t1-notebook-ui.
  • Инфраструктура и документация: Docker Compose, Nginx, OpenTelemetry; архитектура, QA- и DevOps-гайды — dmc-1-t1-notebook-mono (монорепозиторий).

Проекты ниже реализованы в основном в 2021 году и ранее

Это ранний срез портфолио, и я держу его открытым сознательно: часть демо до сих пор развёрнута на моём VPS, её можно открыть и потыкать, а по коду видно траекторию — чем новее, тем чище. Актуальный уровень смотрите во флагманском проекте и в разделе «Демо»; коммерческий код этих лет остаётся под NDA в приватных репозиториях.

Pet-проекты и командная разработка

Личный Full Stack проект

Архитектуру, системы прав, ролей и хранения токенов придумал и реализовал сам — без шаблонов и туториалов. Backend на Django REST framework: JWT-авторизация, GraphQL-эндпоинт (graphene-django), async-обработка через AsyncIO и Aiohttp, контекстные переменные (Contextvars) для передачи состояния в async-контексте, свои middleware, метаклассы, декораторы и миксины. Frontend на React (React Router, Axios, Redux). OpenAPI-документация (Swagger / ReDoc), PostgreSQL, Gunicorn, Nginx, Docker Compose, деплой на Linux VPS.

Демо: Swagger, ReDoc, REST API, GraphiQL, Frontend. Код.

Командная разработка по Agile и SCRUM — Intergalactic Entertainment

Командная разработка платформы с авторизацией, публикациями и CKEditor-редактором. Работали по Agile / SCRUM с рандомными участниками, задачи вели в Trello. Django, авторизация, ролевая модель (staff / user), загрузка изображений, REST-эндпоинты. Деплой на моём VPS: Docker Compose, Gunicorn, Nginx, SSL. Демо. Код.

Backend-проекты по техническим спецификациям

  • Управление потоками людей в медучреждении — Django, DRF, JWT, PostgreSQL, Celery (автогенерация слотов приёма через Celery beat), Pytest, Docker. Три группы пользователей (пациент / врач / админ), рабочие расписания врачей с учётом отпусков и перерывов, запись на приём, отмена записи, статистика записей по дням с группировкой на уровне БД.
  • MVP API для блога — Django без DRF, собственная реализация API-эндпоинтов и токен-авторизации, CRUD статей с архивированием, ролевая модель (admin / user), кастомные management-команды для заполнения БД, тесты, dev / prod Docker-конфиги.
  • Персональный блог с подписками — Django, PostgreSQL, Docker. Подписки на блоги, лента постов в обратном хронологическом порядке, метки «прочитано», email-уведомления о новых постах, Class-based views, интеграция с админкой.

Фундамент: своё вместо готового

Чтобы понимать инструменты изнутри, часть вещей писал сам, а не брал из коробки:

  • custom-python-framework — собственный веб-фреймворк на Python: маршрутизация, middleware, шаблонизация и ORM-подобный слой. Написан ради ответа на вопрос «что именно делает Django за меня».
  • web-app-architecture и python-architecture-and-design-patterns — многоуровневая структура приложения (конфиг, ядро, модули), SOLID и паттерны проектирования на практике, а не в конспекте.
  • python-client-server — клиент-серверное взаимодействие на голых сокетах: свой протокол, многопоточность, асинхронный I/O.
  • PHP не по верхам: yii2-app-advanced (frontend / backend / console в одном приложении, разные окружения) и yii2-rbac (управление доступом через RBAC, asset-бандлы).
  • sizolution-test-task — REST API анализа структуры HTML-страниц: тестовое задание, сделанное как небольшой production-сервис.

Учебные проекты — архитектуру, стек и методы разработки выбирал самостоятельно

Десктопный мессенджер на PyQt5

Клиент-серверная архитектура: отдельные приложения для сервера и клиента, многопоточная обработка сетевых соединений. PyQt5 для GUI, SQLAlchemy для ORM, метаклассы для генерации моделей, потоки (Threads) для неблокирующего I/O. Регистрация пользователей, контакты, обмен сообщениями в реальном времени. Код.

Data Mining

Парсеры, пауки и краулеры для сбора и структурирования данных из соцсетей, площадок объявлений и магазинов. Scrapy (асинхронные пауки), BeautifulSoup, Selenium (headless-браузер), XPath-селекторы, хранение в MongoDB и MySQL. Код.

Мессенджер на React

SPA-мессенджер с Flux-архитектурой: Redux для управления состоянием, сборка через Webpack и Babel. Код.

Интернет-магазин на Django

Ajax, jQuery, собственная админка, регистрация через соцсети. Запущен в режиме отладки с инструментами разработчика (повышенная нагрузка). Сервер: Python / Django / Nginx / Gunicorn. Демо. Код.

Интернет-магазин на JS

Vue.js 3, Node.js, LocalStorage, Bootstrap, SASS, drag-and-drop корзина, автодополнение поиска. Всё хранится в браузере клиента, без бэкенда. Демо. Код.

Демо: мульти-агентная система в работе

Это не витрина, а рабочий инструмент, которым я пользуюсь каждый день: личный ИИ-помощник, доступный из Telegram, MAX и консоли — и со смартфона, и с ПК. Он читает почту и Яндекс.Диск, разбирает документы, распознаёт голос и изображения, ходит в интернет, помнит контекст между сессиями и выполняет задачи по расписанию. Модели работают локально на моём железе: нет API-ключей, лимитов и оплаты за токены, данные не покидают машину. Систему регулярно расширяю новыми инструментами и возможностями.

Модели на скриншотах намеренно взяты средние. Железо позволяет поднять заметно более сильные, но смысл демонстрации в другом: качество результата даёт не размер модели, а система вокруг неё — оркестратор, роли Planner / Executor / Critic, инструменты, скиллы и системные промпты. Компактная модель в такой обвязке решает задачи, на которых «голая» LLM того же класса ошибается. А это прямая экономия: меньше требований к железу и к аренде GPU под инференс.

Ниже — лишь часть возможностей. Всё можно проверить самостоятельно: развернуть систему локально или на сервере, подставить любые другие модели в связку мульти-агентов и сравнить результат — в README есть инструкции по запуску, в том числе на слабом железе. На выходе — своя личная бесплатная умная система, доступная онлайн хоть со смартфона. Код открыт: github.com/radif-ru/ai-multi-agent-system.

Скриншоты — из реальной сессии на моей рабочей станции: Telegram-канал, локальная модель, ни одного обращения к облачным API. Нажмите на превью, чтобы открыть в полном размере с описанием.

О границах системы — честно. Потолков «по архитектуре» здесь нет, все лимиты конфигурационные и лежат в .env: размер входящего файла (по умолчанию 20 МБ — это ограничение самого Telegram Bot API на скачивание, а не системы), объём текста, уходящего в контекст модели (по умолчанию 80 000 символов, согласовано с окном контекста), и число изображений, отправляемых на OCR. Документы с Яндекс.Диска и вложения писем идут по тому же параметру. Обе границы предсказуемы: текст сверх лимита усекается явно, а разросшаяся история диалога автоматически суммаризируется — поднимаются оба значения под ваш объём VRAM и окно контекста.

Железо

Рабочая станция для локального ИИ Hardware

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

  • GPU: NVIDIA GeForce RTX 5090 Laptop GPU — 24 ГБ GDDR7. Это рабочий бюджет видеопамяти: в него укладываются модели на 20–30 млрд параметров в квантовании Q4, а reasoning-модель, embedding-модель и vision-модель держатся в памяти одновременно — агентный цикл не тратит секунды на выгрузку и загрузку весов между шагами «мысль → действие → наблюдение».
  • CPU: Intel Core Ultra 9 275HX — 24 ядра (8 производительных до 5,4 ГГц + 16 энергоэффективных), 40 МБ L2 и 36 МБ L3. Отдельный NPU Intel AI Boost (13 TOPS INT8) позволяет снять с GPU часть ИИ-нагрузки, например распознавание речи, и оставить видеопамять целиком под LLM.
  • Память: 32 ГБ DDR5-5600 в двухканальном режиме — чтобы локальная модель, PostgreSQL, контейнеры разработки и IDE жили одновременно, а сборка индексов эмбеддингов и подготовка датасетов для дообучения не упирались в свап. Планирую расширить до 128 ГБ DDR5-6400 МГц.
  • 2 SSD: Kingston FURY Renegade G5 4 ТБ (SFYR2S/4T0) — флагманский NVMe M.2, интерфейс PCIe 5.0 x4, 3D TLC NAND; подключён вторым накопителем к системному. Веса моделей — это десятки гигабайт на файл, и скорость шины напрямую определяет, сколько ждёшь первого токена после переключения модели. 4 ТБ хватает, чтобы держать локально целую библиотеку моделей, чекпойнты дообучения и датасеты, а не выкачивать их заново под каждый эксперимент. При этом основная SSD остаётся свободной для операционной системы и приложений.
  • Порты: 2× Thunderbolt 5 (USB-C), 3× USB 3.2 Gen 2 Type-A, HDMI 2.1 FRL, 2.5G LAN, 3.5 mm Combo Audio Jack. Thunderbolt 5 — это ещё и путь масштабирования: если задача перерастёт 24 ГБ VRAM, внешний GPU-бокс подключается без замены машины.
  • Экран: 18 дюймов, 2.5K WQXGA (2560 × 1600), соотношение 16:10, ROG Nebula HDR, Mini-LED, 240 Гц, 1200 нит, 100% DCI-P3, Dolby Vision, G-SYNC. Формат 16:10 на 18 дюймах — это код, логи и трассировки рядом, без переключения окон; честная цветопередача нужна, когда отлаживаешь vision-модель и OCR и надо понимать, что именно «увидела» модель, а не что дорисовал экран.
  • Платформа: ASUS ROG Strix SCAR 18 — флагманская мобильная рабочая станция с производительным охлаждением: длинный локальный инференс и прогоны дообучения не срываются в троттлинг.

Это конфигурация моей рабочей среды, а не требование к системе: тот же проект разворачивается и на слабом железе — меняются модели и настройки, а не архитектура. Модели на скриншотах демо тоже намеренно взяты средние.

Применение
Локальные LLM (Ollama)Эмбеддинги / RAGVision-моделиFine-tuningfaster-whisperТри модели резидентноБез облачных APIДанные не покидают машину

Образование и обучение

Тренинг для Fullstack-программистов — Миша Ларченко, coders.su — 2026 · сертификат

Программа «Современный Fullstack-инженер»: инженерный фундамент (планирование, Clean Architecture, Vertical Slice, SOLID), фронтенд (JavaScript/TypeScript, React), бэкенд (Python, FastAPI), AI и агентная разработка (agentic loop, tool calling, RAG и fine-tuning, system prompts), DevOps и наблюдаемость (Terraform, OpenTelemetry, CI/CD), веб-безопасность, Scrum-процессы. Живые лекции, практика, code review и командная разработка на реальных проектах (github.com/larchanka-training). В командной работе каждый спринт чередовали роли: Техлид, DevOps, QA, Инженеры.

Командный проект — Notebook-платформа (аналог Jupyter): монорепозиторий, backend, frontend. Сертификат: русская версия, English version, оригинал на coders.su.

Самообучение: ИИ и LLM — постоянно

Мульти-агентные системы, локальные LLM (Ollama), дообучение моделей (fine-tuning), эмбеддинги, RAG и MCP, работа с vision и речью. Открытые репозитории веду как примеры и полигон для практики.

GeekBrains / GeekUniversity (Mail.ru Group) — Декабрь 2019 — Сентябрь 2021

Профессиональная переподготовка «Разработка программного обеспечения». Full-Stack разработчик: Python, Django, JavaScript, базы данных, Linux. Диплом государственного образца. Плюс 15 электронных сертификатов по курсам: Django REST framework, React, архитектура и шаблоны проектирования на Python, клиент-серверные приложения, базы данных и PyQt, data mining, продвинутый JavaScript, Agile/SCRUM, Git, Linux, алгоритмы и структуры данных, MySQL и др.

КНИТУ-КАИ им. А.Н. Туполева — 2013 — 2015

Магистр. Казанский национальный исследовательский технический университет им. А.Н. Туполева (бывший КГТУ).

КНИТУ-КАИ им. А.Н. Туполева — 2009 — 2013

Бакалавр. Казанский национальный исследовательский технический университет им. А.Н. Туполева (бывший КГТУ).

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

  • 2 место во Всероссийском Студенческом Конкурсе Трейдеров среди ВУЗов России (финал) на счёте ММВБ с реальными деньгами. В задачу входило максимально увеличить стоимость портфеля.
  • 1 место во Всероссийском Студенческом Конкурсе Трейдеров среди ВУЗов Казани.

Сертификаты

Тренинг для Fullstack-программистов — курс «Современный Fullstack-инженер», Миша Ларченко (coders.su). Сертификат выдан 04.07.2026. Оригинал можно посмотреть, проверить и скачать на официальной странице coders.su.

Национальная система оценки ИТ-компетенций (Минцифры России)

Независимая оценка. Все компетенции подтверждены на продвинутом уровне электронными подписями. Теория и практика. Нажмите на любой, чтобы открыть PDF.

Достижения и признание

«Нацелен на результат, доводит работу до конца. Имеет хорошую техническую эрудицию и всегда предлагает варианты оптимальной реализации. Прислушивается к обратной связи и сам даёт обратную связь.» akozich1, коллега — рекомендательное письмо на Habr Career

Проверяемый результат: открытый код и живые демо

Ничего не приходится брать на веру: опыт подтверждён электронной трудовой книжкой, компетенции — независимой оценкой Минцифры, а инженерная практика — кодом и работающими сервисами: демо мульти-агентной системы, GitHub, Habr Career, PyPI. Развёрнутые демо живут на моём VPS и доступны для проверки в любой момент.

Контакты

Телефон, Telegram, WhatsApp и MAX на один номер: +7 987 286-96-93. Город: Казань. Готов к удалённой и гибридной работе, переезду и командировкам.