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