Разработчик в Т-Банке, Data Platformaka Luminais

МихаилТрифонов

Пишу бэкенд-сервисы на Java и Spring, держу их в Kubernetes и гоняю банковские данные через Kafka, Spark и Airflow.

  • Открыт к интересным предложениям
  • Иннополис, UTC+3
  • 3+ года в продакшене, пишу код с 2021

В Т-Банке

Разработчик, Data Platform

С сентября 2025

Наша команда отвечает за Data Lake House банка. Из него читают аналитики, ML-команды и продуктовые сервисы. Я занимаюсь загрузкой данных, оркестрацией и сервисами вокруг них.

  • Новый сервис данных

    Design doc, архитектурное ревью и сервис на Java/Kora поверх Kafka, Iceberg и Arrow Flight. На него без простоя переехали 30+ пайплайнов.

  • Ночной батч в 3 раза быстрее

    Partition pruning, broadcast join и skew-хинты под AQE на самых тяжёлых витринах Spark SQL: с 5 ч до 1 ч 40 мин.

  • SLO и дежурства

    Алерты по burn rate, трейсинг от Airflow через Spark до Java, идемпотентные консьюмеры Kafka. Медианное время устранения меньше 40 минут.

  • MCP-сервер для платформы

    Кодовые агенты получают lineage и историю запусков из Airflow и DLH. Причину устаревшей таблицы теперь находят за минуты.

Опыт

  1. сейчас

    Т-БанкРазработчик, Data Platform

    Загрузка данных, оркестрация и сервисы вокруг Data Lake House банка.

    • Ночной батч в 3 раза быстрее
    • 30+ пайплайнов переехали без простоя
    • Инциденты закрываются за 40 мин
    Подробнее
    Архитектура
    • Design doc нового сервиса на Java/Kora: около 1 200 rps и 2 ТБ в сутки в пике. Прошёл архитектурное ревью и реализовал.
    • Загрузка через Kafka: идемпотентные консьюмеры, ретраи с backoff, dead-letter топик. Переключение брокера больше не теряет и не дублирует загрузки.
    Требования
    • Собрал требования у аналитиков и ML-команд в спецификацию: SLO свежести на датасет, группы доступа, сроки хранения.
    Команда
    • Согласовал контракты с двумя смежными командами и командой DLH, перевёл 30+ пайплайнов без простоя.
    • Онбордил двух инженеров: гайд для новичков, парная работа на первых задачах, код-ревью.
    Качество
    • Стратегия тестирования вместе с QA: контрактные тесты из OpenAPI, Testcontainers для PostgreSQL и Kafka, ночные проверки данных.
    Эксплуатация
    • Дежурства, SLO с алертами по burn rate, трейсинг на OpenTelemetry, разборы инцидентов. Медианное время устранения меньше 40 минут.
    • Kubernetes: Helm-чарты, пробы, автоскейлинг по лагу консьюмеров, дашборд в Grafana на каждый сервис.
    Разработка
    • Тюнинг Spark SQL сократил ночное окно с 5 ч до 1 ч 40 мин. Воркеры на виртуальных потоках утроили пропускную способность на тех же подах.
    AI-агенты
    • MCP-сервер над метаданными Airflow и DLH и общие скиллы, чтобы кодовые агенты видели lineage и историю запусков.
  2. Яндекс, Авто.руБэкенд-разработчик, Scala

    BFF для отзывов и пользовательского контента Авто.ру, веб и мобильные приложения.

    • p99 хеджированных вызовов ниже на 75%
    • Один запрос на страницу вместо четырёх
    Подробнее
    Архитектура
    • GraphQL-схема BFF отзывов: страница грузится одним запросом вместо четырёх REST-вызовов.
    Разработка
    • Починил хеджирование в нашем gRPC клиенте и сервере: проигравший запрос отменяется, p99 ниже на 75%.
    Эксплуатация
    • Таймауты, бюджет ретраев и фолбэки на каждый нижестоящий сервис. Когда тормозит сервис рейтингов, пропадает только его блок.
    Качество
    • Нагрузочные тесты на тройном пике и раскатка за фича-флагами, сервис за сервисом.
    Команда
    • Согласовал контракты полей с веб- и мобильной командами и вывел старые REST-эндпоинты за два релиза.
  3. HirusБэкенд-разработчик, Java

    Бэкенд «Умной операционной» HiRUS: видео и данные медоборудования операционной в одной системе.

    • Архив операций и кабинет врача
    • Нагрузка на базу ниже на 68%
    Подробнее
    Архитектура
    • REST API на Spring Boot для архива операций, личного кабинета врача и медиатеки хирургических вмешательств.
    • Метаданные в PostgreSQL, фото и видео в объектном хранилище, отдаются по временным ссылкам в обход бэкенда.
    Требования
    • Ролевой доступ к медицинским данным для врачей, администраторов и консультантов, журнал просмотров архива.
    Разработка
    • API онлайн-консилиумов с телемедицинской стойки. Переписал тяжёлые JDBC-запросы: нагрузка на базу ниже на 68%.
    Качество
    • GitLab CI с линтерами, тестами и деплоем; JUnit, Mockito и Testcontainers для сервисов и контроллеров.
  4. RagnarPython-разработчик

    AI-ассистент, который отвечает по документам компании.

    Подробнее
    Разработка
    • Эндпоинты FastAPI для вызовов модели с обработкой ошибок и таймаутами.
    AI-агенты
    • Настраивал поиск в RAG на реальных вопросах, пока ответы не начали ссылаться на нужные документы.
  5. Университет ИннополисБакалавриат, Computer Science

    Средний балл 4.77 из 5.

Кейсы

Платформа для найма: кандидат чинит настоящий сервис, скрытые тесты проверяют его в песочнице.

Роль
Основатель и техлид
Команда
Я и два контрибьютора на частичной занятости
Когда
Янв 2026 / сейчас

Результат

  • 14 сp95 до вердикта при 300 одновременных решениях (k6)
  • 0потерянных или дважды проверенных запусков из 50 000 при случайном убийстве воркеров
  • 22архитектурных решения в ADR

Архитектура

relayverdictWebNext.jsAPImodular monolithGrading workershidden testsPostgreSQLdata + outboxRabbitMQsubmissionsOrchestratorwarm poolgVisor sandboxesk8s, no egress

Схему можно прокрутить вбок

Задача

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

Как устроена работа

Linear двухнедельными циклами, письменный Definition of Done, еженедельные 1:1, ADR и дизайн-ревью перед изменениями между модулями. Кодовые агенты работают по AGENTS.md и правилам ArchUnit.

Ключевые решения

  • Модульный монолит и одна PostgreSQL

    ArchUnit держит границы модулей, поэтому модуль можно вынести в сервис без переписывания.

  • Песочницы на gVisor

    Ядро в пространстве пользователя, без исходящей сети, лимиты CPU и памяти, бюджет времени на запуск.

  • Outbox и RabbitMQ

    Решение и его событие коммитятся одной транзакцией. Глубина очереди управляет автоскейлингом песочниц.

  • Тёплый пул песочниц

    Холодный старт занимал половину времени до вердикта. Размер пула считается от интенсивности потока.

Java 25, Spring Boot, PostgreSQL, RabbitMQ, Kubernetes, gVisor, Next.js, k6

Другие проекты

Остальное на GitHub

Стек

Данные

  • Spark SQL
  • PySpark
  • Airflow
  • Iceberg
  • Arrow Flight
  • Kafka Streams
  • ClickHouse
  • Trino

Бэкенд

  • Java 21
  • Kora
  • Spring Boot
  • Scala
  • Go
  • FastAPI
  • Kafka
  • RabbitMQ
  • gRPC
  • GraphQL
  • PostgreSQL
  • Oracle
  • Redis

Фронтенд

  • TypeScript
  • React
  • Next.js
  • Astro
  • React Native
  • Three.js
  • Zustand
  • Tailwind

Инфраструктура

  • Docker
  • Kubernetes
  • Terraform
  • GitLab CI
  • GitHub Actions
  • Helm
  • OpenTelemetry
  • Prometheus
  • Grafana
  • Loki, Tempo
  • k6

AI-агенты

  • Claude Code
  • MCP servers
  • Agent skills
  • Evals, LLM judge
  • RAG, pgvector
  • OpenRouter

Русский родной, английский B2.

Напишите мне

Быстрее всего отвечаю в Telegram. Для официального лучше почта.

trifonov2812@gmail.com
QR-код WeChat

Отсканируйте в WeChat

wxid_iduyrsvt6j1622