in English

Есть автоматизированная воронка одобрения кредита. Те этапы которые не поддаются автоматизации делегированы человеку, который в CRM-системе вручную проверяет документы по заявке и выносит вердикт. Это и есть сервис ручного андеррайтинга.

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

  • Заимплементировал требования для ручного этапа одобрения кредита.
  • Заимплементировал юнит- и функциональные тесты.
  • Закастомизировал Newrelic чтобы иметь уместные алерты (а не всё подряд).

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

  • дежурства: среагировал алерты с продуктивной среды путём разборка и починки и описания post-mortem;
  • поддержка: заимплементил обновления со стороны платформы, создал тикеты на команды от которых зависит починка багов.
  • периодические сквозные имплементации - когда фича глобальная и ветвление логики задействует несколько микросервисов.

Стек:

  • kotlin, Spark;
  • Postgress, SQL, JOOQ, Flyway;
  • JUnit, Mockito, Wiremock, Docker+testcontainers;
  • NewRelic, GCP, Gradle, Teamcity, Bitbucket, git;
  • Kafka - аналог написанный внутри компании.

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

  • Модульный микросервис, Предметно-ориентированное проектирование (DDD, ограниченный контекст, общий язык);
  • Архитектура слоёв, CQRS, пессимистичные блокировки;
  • идемпонентность, strategy, проверка прав, status transitions, decorator, factory, VO, DTO, ручное управление зависимостями и ручная конфигурация (без Spring);
  • doc ops: ADR.

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

  • процесс: 1-недельные спринты; дейли;
  • 25 разработчиков микросервисов в кредитном отделе;
  • моя под-команда: изначально 3 программиста, затем 1 программист (я, без QA); 1 бадди; 1 кросс-командный владелец продукта;