- 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.