Алексей Жадан · фулстек-разработчик, DevOps · Head of TechPlatform
Инженерия систем: инфраструктура, ИИ‑агенты, свои сервисы
Проектирую и довожу до сдачи то, что потом работает годами: контур из сорока хостов, восемь продуктов в эксплуатации и конвейеры на LLM — всё это собрано и поддерживается одними руками. Беру частные заказы.
От схемы данных до выкладки и мобильного клиента. Свои продукты живут в эксплуатации годами — так же соберу ваш.
Python/FastAPI, PostgreSQL, Valkey
Фронтенд на TypeScript/Vue, Android на Kotlin
Единый вход через OIDC с первого дня
Почтовые системы
Свой почтовый сервер вместо чужого облака: перенос доменов без потери писем, репутация, антиспам на LLM.
Stalwart: JMAP, IMAP, SMTP, веб-почта
DKIM/SPF/DMARC публикуются из зоны автоматически
Разбор больших ящиков силами моделей
Сеть и доступ из любой страны
Своя сеть поверх нескольких стран: сервисы доступны с любого устройства, а обрыв канала не отрезает управление.
MikroTik, WireGuard, маршрутизация по домену
Резервный управляющий канал
Белые списки с самообслуживанием через бота
Единый вход и секреты
Один аккаунт для всех служб контура и хранилище секретов, из которого выкладка берёт пароли сама.
Свой OIDC-провайдер, подключение Forgejo, Nextcloud, почты
OpenBao: секреты вне репозитория и вне голов
Доступы по ролям, отзыв одной правкой
Продукты, которые уже работают
Восемь систем в постоянной эксплуатации
Не демо и не прототипы: каждая обслуживает живые данные каждый день.
LiveMail
Своя веб-почта на Stalwart/JMAP: миллионы писем, поиск, правила, метапапки SMS и звонков.
Из чегоStalwart, JMAP, кеш на Valkey, вход через OIDC
РезультатЗаменила покупную панель Zimbra
Антиспам и прочёс почты
Конвейер на LLM: письма и SMS группируются по контакту, каждое получает суждение модели и приговор.
Из чегоНесколько моделей, партии с суточным пределом
РезультатЧистка идёт сама, с правом аварийной остановки
LiveFinance
Сбор выписок банков и учёт: автоматический разбор PDF и API, история остатков.
Из чегоРазборщики PDF и банковских API, PostgreSQL
РезультатАналитика расходов без ручного ввода
LivePhotos
Медиатека: фото и видео с распознаванием людей и скорингом кадров.
Из чегоИмпорт из внешних источников, модели распознавания
РезультатЛучшие кадры находятся сами, люди — по лицу
LiveHistory
Хроника перемещений и присутствия: телефон, машина, геоданные.
Из чегоТелефон, StarLine, геоданные
РезультатЕдиный источник событий вместо разрозненных журналов
SyCraft IdP
Свой OIDC-провайдер: единый вход во все сервисы контура.
Из чегоOIDC, подключены Forgejo, Nextcloud, почта
РезультатОдин аккаунт на всё, доступы в одном месте
SyCraft Control
Android-приложение: хранилище контактов, синхронизация SMS, журнала вызовов и календаря.
Из чегоKotlin, синхронизация с сервером
РезультатУдалённое администрирование телефона
Оркестратор ИИ-агентов
Многоагентная система в Kubernetes: постановка задач, исполнители, верификатор качества ответов.
Из чегоk3s, бесплатные модели под приёмкой, Mattermost и Telegram
РезультатЗадачи решаются партиями без расхода платной подписки
Кейсы архитектуры
Задача → решение → результат
Четыре задачи, которые обычно считают «слишком сложно, оставим как есть».
01
Почта из чужого облака — к себе
15 000 писем в архиве
41 адрес восстановлен
2 домена с 20-летней историей
Задача
Два домена с двадцатилетней историей жили на внешнем почтовом сервисе. Список ящиков провайдер не отдаёт — переносить «как есть» не с чего.
Решение
Список адресов восстановлен из архива переписки: 15 тысяч писем, 41 адрес. Домены перенесены на свой Stalwart, адреса заведены алиасами и рассылками. DKIM/SPF/DMARC опубликованы автоматически из зоны, которую отдаёт сам сервер.
Результат
Перенос без потери письма, репутация доменов сохранена. Новые домены дальше заводятся одной командой.
02
Разбор почты силами ИИ вместо ручной чистки
47 000 писем в ящике
Несколько моделей на каждое письмо
Стоп-кран и суточный предел
Задача
Сорок семь тысяч писем в ящике — руками не разгрести, а ошибочное удаление невосстановимо. Нужна автоматика, которой можно доверить удаление.
Решение
Конвейер: дедупликация, группировка по контакту, суждение нескольких моделей, приговор только при их согласии. Работа партиями с суточным пределом и стоп-краном.
Результат
Ящик разбирается сам. Спорные случаи уходят человеку списком, а не по одному письму.
03
Многоагентная разработка на бесплатных моделях
275 000 токенов за партию
0 расхода платной подписки
Приёмка по записанным критериям
Задача
Работа с LLM упирается в две стены сразу: стоимость платных моделей и качество ответа бесплатных.
Решение
Задачи дробятся на участки, участки раздаются бесплатным моделям. Результат проходит независимого верификатора и приёмку по заранее записанным критериям готовности.
Результат
За одну партию — 275 тысяч токенов работы бесплатных моделей и ноль расхода платной подписки, при сохранении приёмки.
04
Своя сеть поверх трёх стран
3 страны в трёх часовых поясах
2 управляющих канала
Прокси с маршрутизацией по домену
Задача
Доступ к сервисам и внешним ресурсам из трёх стран. Часть ресурсов закрыта по географии, часть — только изнутри периметра.
Решение
MikroTik и WireGuard, раздельный прокси с маршрутизацией по домену, резервный управляющий канал на случай падения основного. Белые списки с самообслуживанием через Telegram-бота.
Результат
Сервисы доступны с любого устройства заказчика. Обрыв основного канала не отрезает управление.
Больше кейсов
Делал автономного агента-исполнителя: сам берёт задачи из очереди, ведёт
Делал автономного агента-исполнителя: сам берёт задачи из очереди, ведёт план шагами в чате и сдаёт работу по заранее записанным критериям приёмки. Рядом поставил второго агента, который проверяет результат и ведёт журнал необратимых действий. В итоге рутина закрывается без человека в каждом шаге.
Собирал Telegram-ботов на aiogram (Bot API) и серверные клиенты на Telet
Собирал Telegram-ботов на aiogram (Bot API) и серверные клиенты на Telethon (MTProto), по одному процессу на аккаунт. Боты умеют читать историю переписки и экспортировать её. Делал мост между Telegram и корпоративным чатом: сообщения людей едут в рабочий чат и обратно, с переводом разметки и вычисткой служебных данных. Также сделал бота белого списка доступа, через которого человек сам добавляет себе доступ через Telegram.
Развернул кластер Kubernetes (k3s) на своих машинах и держу в нём десятк
Развернул кластер Kubernetes (k3s) на своих машинах и держу в нём десятки служб. Вся конфигурация описана кодом, выкат идёт по одному хосту, чтобы не ронять всё сразу.
Написал около 200 плейбуков Ansible
Написал около 200 плейбуков Ansible. Каждый выкат проверяет синтаксис, идёт по одному хосту, а результат доказывается командой, а не словом «готово».
Построил мониторинг на Grafana и VictoriaMetrics
Построил мониторинг на Grafana и VictoriaMetrics. Отдельный сторож следит за молчащими хостами и поднимает упавшую машину через соседей и гипервизор без участия человека.
Страница визуальных дубликатов и метки происхождения
Сделал страницу визуальных дубликатов: похожие кадры группируются, получают метку происхождения и их можно снять с пометки. Бэкенд и витрина в бою; на контрольном наборе сотни кадров уложились в группы без потерь по ключу.
Автозаявка в туннель при гео-блоке сайта
Собрал триаж гео-блокировок: со страницы и скриптов снимаются домены, каждый пробуется из двух регионов, подходящие шаблоны складываются в готовую заявку на туннель. На живом сайте при отказе из одного региона и ответе из другого заявка ушла сама.
Автопрогрев кеша: холодный старт с секунд до долей секунды
Сделал автопрогрев данных, которых нет в кеше: фоновый цикл греет нужные срезы заранее. После полного сброса главные страницы снова тёплые за доли секунды вместо длинной холодной сборки.
Свежие работы
Страница визуальных дубликатов и метки происхождения. Сделал страницу визуальных дубликатов: похожие кадры группируются, получают метку происхождения и их можно снять с пометки. Бэкенд и витрина в бою; на контрольном наборе сотни кадров уложились в группы без потерь по ключу.
Автопрогрев кеша: холодный старт с секунд до долей секунды. Сделал автопрогрев данных, которых нет в кеше: фоновый цикл греет нужные срезы заранее. После полного сброса главные страницы снова тёплые за доли секунды вместо длинной холодной сборки.
Автозаявка в туннель при гео-блоке сайта. Собрал триаж гео-блокировок: со страницы и скриптов снимаются домены, каждый пробуется из двух регионов, подходящие шаблоны складываются в готовую заявку на туннель. На живом сайте при отказе из одного региона и ответе из другого заявка ушла сама.
Перенос почтовой инфраструктуры двух доменов на собственный сервер. Выполнен перенос почтовых ящиков и рассылок с внешнего хостинга на собственный почтовый сервер. Создано 2 домена, 10 алиасов и 47 рассылок-мапов, восстановлены MX, SPF, DMARC и DKIM записи. Все 57 адресов принимают почту, контрольные письма доставлены, доставка подтверждена с внешних хостов.
Оптимизация окна контекста: расход кеша меньше на 75%. Разобрал, почему кеш раздувается на длинных сессиях. Выяснил, что небольшая доля длинных сессий даёт большую часть нагрузки, и настроил политику очистки под этот профиль. Расход кеша упал примерно на три четверти при той же работе.
Стек
Инструменты, на которых это держится
Платформа
Linux
Proxmox
Kubernetes (k3s)
Podman / Docker
Ansible · 731 плейбук
Данные
PostgreSQL
Valkey / Redis
RAG и векторный поиск
Разработка
Python / FastAPI
TypeScript / Vue
Android / Kotlin
Почта, доступ, веб
Stalwart (JMAP / IMAP / SMTP)
OIDC / OpenBao
Nginx / Caddy
Сеть
MikroTik
WireGuard
LLM
Claude
Qwen
Локальные модели на llama.cpp
Наблюдение и CI
Grafana / VictoriaMetrics
Forgejo / CI
Как работаю
Четыре шага от письма до сдачи
Каждый результат доказывается прогоном и логами, а не словами «всё работает».
1
Разбор задачи
Что должно получиться, что сейчас мешает, где данные и кто пользователи. Разбираемся на вашем материале, а не на общих словах.
2
Архитектура и смета
Схема решения, список работ и критерии готовности — записаны до начала. Смета привязана к этапам, а не к часам.
3
Работа с доказательствами
Каждый этап закрывается прогоном: вывод команд, логи, снимки экрана. Вы видите, что сделано, до того как спросите.
4
Сдача и поддержка
Документация, доступы, воспроизводимая выкладка. Система живёт без меня, а если нужно — остаюсь на поддержке.
FAQ
Короткие ответы на частые вопросы
Цифры и шаги — те же, что на странице; удобно копировать в ответ поисковику или ассистенту.
Чем занимается SyCraft?
Инженерия систем под ключ: инфраструктура и DevOps, ИИ-агенты на LLM, веб-сервисы, почта и сети. Результат сдаётся с прогоном и логами, а не словами.
Сколько опыта и что уже в эксплуатации?
20 лет в инженерии, 731 плейбук Ansible и 154 роли, 98 служб с описанием, 8 своих продуктов в постоянной работе и около 40 хостов в трёх странах плюс кластер k3s.
Как проходит заказ?
Четыре шага: разбор задачи, архитектура и смета с критериями готовности, работа с доказательствами на каждом этапе, сдача с документацией и воспроизводимой выкладкой.