in English

  • 2023-08 – 2025-03
  • Компания: Maxim Technology
  • PBX (Департамент телефонии)
  • Старший бекенд Kotlin разработчик

Ответственный микросервиса телефонии в сервисе заказа такси. Микросервис - бот, который голосом человека путем наводящих вопросов помогает оформить заказ такси.

Разовые достижения:

  • разработал микросервис с нуля;
  • Сертифицировал проект ПО в Ростреестре. Сертификат 2024665546: https://www1.fips.ru/registers-doc-view/fips_servlet?DB=EVM&DocNumber=2024665546&TypeFile=html; для этого собрал частично мокированный билд на вируальной машине для специалиста из ростеестра, который воспользовался программой, посмотрел код, логи.
  • запустил на прод и отладил на пробных запусках;
  • провёл 6 продуктивных A/B-тестов с рекоммендации по улучшениям и сравнением контрольной и экспериментальной групп;
  • Сделал ETL в Clickhouse: продумал объекты а аттрибуты метрик и сделал удобный дашборд в Clickhouse для бизнеса.

Повторяющиеся практики:

  • выдержал покрытие 80+%;
  • накопил документацию и периодически опубликовал в intranet-wiki;
  • проанализировал heap dump; профайлинг в IDEA; опубликовал post-mortems;
  • ручной деплой на продуктив (используя Green-Blue и канареечный деплои) - 2 раза в неделю;
  • сделал ручной регрешен после канареечного прод-деплоя (в команде нет QA);
  • прослушал звонки пользователей для инсайтов по фичам;

Стек:

  • kotlin (+ Java concurrency API, без корутин);
  • Spring (core, web, AOP, security, statemachine); resilience4j;
  • Asterisk 18 (AGI при помощи asterisk-java lib);
  • JUnit, Mockito, Wiremock;
  • micrometer, Grafana, Clickhouse;
  • Docker;
  • slf4j, log4j2, syslog, Grafana Loki;
  • Jenkins, git, gitlab, SonarQube QG (coverage: 80+%), DefectDojo (0 уязвимостей), HAProxy;
  • модели для распознавания и синтезиса голоса.

Технические детали:

  • Архитектурные паттерны: разделение обязанностей, предметно-ориентированное проектирование (DDD), Чистая архитектура (изоляция слоёв), Гексагональная архитектура, модульный микросервис;
  • Паттерны проектирования: FSM (Spring), regexp, circuit breaker, session, status transitions, command, CQRS, прокси, декоратор, синглтон, фабрика, VO, DTO, tail-based sampling, атомизированный код;
  • CCU: 200 cpm (звонков в минуту, один звонок - 1..60 сек), 2 инстанса балансируемых HAProxy;
  • doc ops: C4, ADR, plantuml, zettelkasten, вечнозеленые заметки, лоскутный сбор и публикация снэпшотов, youtrack, confluence, delivery plans.

Мультиплеер:

  • процесс: код-ревью, дейли, груминги, демо в конце недели;
  • 3 программиста без QA;
  • 6 менеджеров: тимлид, процессный менеджер, CTO, тех. лид, ПО, линейный менеджер - со всеми повзаимодействовал;
  • upstream команда: команда железа телефонии (gsm-станции и т.д.);
  • downstream команды: 6 команд микросервисов с которыми инегрирован бот;
  • договорился о контрактах API; создал тикеты на DEVOPS.