по-русски

  • 2023-08 – 2025-03 full time
  • Company: Maxim Technology
  • Telephony (PBX) department
  • Senior backend Kotlin developer

A solo maintainer of a telephony backend microservice within a taxi service. A microservice is a voice bot that guides user to a taxi order confirmation by asking suggestive questions.

One-go achievements:

  • Certified the software in Russian registry of software. Certificate 2024665546: https://www1.fips.ru/registers-doc-view/fips_servlet?DB=EVM&DocNumber=2024665546&TypeFile=html
  • implemented it solo from scratch to prod;
  • deployed to prod with the help of DEVOPS team;
  • conducted 6 production A/B experiments with detailed reports including actionable follow-ups;
  • established a transparent alert-reaction process;
  • Established metrics ETL to Clickhouse: designed attributes for metrics and implemented a convenient dashboard for business;

Repetitive practices:

  • analysed heap dumps; published incidents post-mortems;
  • kept code coverage 80+%;
  • deployed to production (using Green-Blue deployment + canary) - 2 times a week;
  • tested before code review and after prod deploy (no QA in the team);
  • listened to real users’ production voice calls for new feature insights;

Stack:

  • Spring boot 3 + kotlin (+ Java concurrency API, no coroutines);
  • Spring (core, web, AOP, security, statemachine); resilience4j;
  • Asterisk 18 (AGI via asterisk-java lib);
  • JUnit, Mockito, Wiremock;
  • micrometer, Grafana, Clickhouse;
  • Docker (integration testing);
  • slf4j, log4j2, syslog, Grafana Loki;
  • Jenkins, git, gitlab, SonarQube QG (coverage: 80+%), DefectDojo (0 vulnerabilities), HAProxy;
  • voice transcribing and synthesis AI models.

Technical:

  • Architecture: separation of concerns , modular microservice, DDD, clean architecture (layers isolation), Hexagonal Architecturue, unidirectional data flow;
  • Patterns: regexp, circuit breaker, session, status transitions, command, CQRS, proxy, decorator, singleton, factory, tail-based sampling, atomized code;
  • CCU: 200 calls per minute, one call - 1..60 seconds, 2 instances balanced by HAProxy;
  • doc: ADR, plantuml, zettelkasten, evergreen notes, snapshots of accumulated drafts, youtrack, confluence, delivery plans.

Multiplayer:

  • process: weekly demo; daily; groomings;
  • 3 programmers; no QA;
  • 6 managers: a teamlead, a process manager, a CTO, a tech lead, a product owner, a line manager - interacted with all of them;
  • upstream teams: a GSM hardware telephony team;
  • downstream teams: 6 teams of the relates microservices the service integrated with;
  • daily code review;
  • API contracts negotiation; product owner intraction about new functionality.