Dmitrii Fedorenko

Dmitrii Fedorenko

← Resume

Senior Software Engineer

Summary

Backend engineer with deep experience in distributed systems, architecture, and infrastructure. I build products end to end — from architecture decisions to production operations. My approach to teams and LLM agents is the same: written guidelines with clear reasoning, documented architecture decisions, and full engineering responsibility for every output. Rules are strict, but always have explanations and can be changed by better arguments. Open to relocation. English level is B1.

Experience16 years 2 months

Personal projects 2025–2026

May 2025 — present
Due to health reasons, I took a sabbatical. To keep my skills sharp, I worked on personal projects I had postponed for a long time. During this period I shipped three projects, including one published to Google Play. I also spent time deepening my knowledge of generative AI and building LLM-powered applications using LLM agents.
  • Software Engineer

    1 year 1 month

    Developed personal projects across mobile, frontend, and backend.

    • Frontend35%
    • Backend25%
    • Mobile20%
    • Architecture10%
    • Infrastructure10%

Projects

  • Bring Your LM
    2 months
    A mobile app that allows chatting with any AI provider through direct API calls, without any third-party backend.

    Features

    • Connect to any LLM provider with an OpenAI Chat Completion compatible API (OpenAI, Anthropic, OpenRouter, Ollama, and others).
    • Supported LLM capabilities:
      • Reasoning / thinking
      • Image input
      • Tool calling (limited to predefined tools: memory, HTTP fetch, time)
      • Agent / bot management (system prompt, model selection, available tools)
    • Platforms: Android, Linux
    • Optional synchronize chat history between devices via a self-hosted Couchbase Edge Server.
    Languages
    • Dart100%
    Databases
    • Sembeast50%
    • Couchbase Lite50%
    Frameworks
    • Flutter100%
    Others
    • LLM
    • Server-Sent Events
  • V2V
    2 months
    V2V is a self-hosted video calling service with no accounts, no stored data, and no central server that could be compelled to hand over records. It exists quietly — and that is the point.

    V2V has three components:

    • Web application (three pages)
    • Signaling server
    • External STUN/TURN service (only Coturn is supported at the moment)

    How does it work?

    • The call initiator opens the app and creates a call with one click.
    • Other participants join via a unique link.
    • The initiator approves each participant before they join.

    The only limits on how many clients can connect are the network throughput of the clients, and — if a direct connection is not possible due to strict NAT — the CPU, memory, or network capacity of the machine running the TURN server.

    Key features

    • No accounts and no databases. Made possible by asymmetric cryptography and a chain of trust.
    • Proof of Work generates short-lived sessions to protect the signaling and STUN/TURN servers from bots, without requiring users to pass a CAPTCHA.
    • Custom SSE client with full error handling: supports POST with custom headers, connection recovery, and comment parsing.
    • Passphrase-based connection as a fallback when sharing a link is not possible.
    Languages
    • TypeScript75%
    • Golang20%
    • Ansible5%
    Frameworks
    • Preact85%
    • TailWindCSS10%
    Infrastructure
    • Docker
    • Traefik
    • CoTurn
    Others
    • WebRTC
    • Server-Sent Events
    • POW
    • PKI
  • Voyàbu
    9 months
    Snap photos of bills to track your expenses during your journeys.

    Overview

    An app for tracking family expenses while living across three countries. Powered by a small AI agent that extracts data from bill photos and categorizes it for later analysis.

    Features

    • Take a photo of a bill to extract:
      • Individual breakdowns
      • Expense categories
    • Set a budget per country (daily, weekly, monthly, or for the full expected stay)
    • View reports to analyze your spending

    Implementation notes

    • To teach the agent your categorization preferences, users manually categorize the first few bills. Once the agent understands the expected patterns, it extracts and categorizes all data automatically.
    • Processing cost: under $0.005 per bill.
    • React Router in framework mode removes a lot of the glue code between frontend and backend.
    Languages
    • TypeScript80%
    • SQL10%
    • Prompt5%
    • SurrealQL5%
    Databases
    • PostgreSQL70%
    • SurrealDB30%
    Frameworks
    • React65%
    • ReactRouter15%
    • PrismaJS10%
    • NodJS5%
    • TailWindCSS5%
    Others
    • LLM
    • Server-Sent Events
    • OTEL

Koop

November 2021 — April 2025
Insurance and compliance platform for technology companies (software, robotics, autonomous vehicles, and others).

Koop started as a company selling insurance policies for autonomous vehicles. It later pivoted to insurance for technology companies more broadly, and eventually to helping companies pass compliance audits to obtain certifications such as SOC 2 and ISO 27001.

  • Senior Backend Engineer

    3 years 6 months

    Responsible for backend delivery, architecture, and infrastructure. Hired and grew four junior backend engineers to mid-level.

    Responsibilities

    • Developed and delivered backend code for new products and features
    • Designed backend and infrastructure architecture
    • Set up, improved, and operated infrastructure
    • Hired and aligned the backend team

    Achievements

    • Developed and delivered multiple insurance products and all core platform systems
    • Defined and documented backend architecture
    • Designed, set up, and operated infrastructure from scratch

    • Set up the development workflow:

      • Monorepo (backend, frontend, infrastructure in one repository)
      • All services built and deployed from a single commit in minutes
      • Trunk-based development (the main branch was always shippable)
      • Saga pattern workflows using Temporal for complex business processes
      • Backend development guides
    • Set up an E2E test suite runnable locally and in CI, allowing any backend feature to be tested without deploying to a staging environment

    • Adopted LLM agents for feature development from 2023 onward. The same practices that made junior onboarding reliable made agent adoption safe: written guidelines with reasoning, documented architecture decisions, and E2E test coverage that caught mistakes before reaching production.

    • Identified over-fragmented service architecture as a growing operational problem. Consolidated almost all Java and Go services into two meta-services by injecting gRPC service implementations into gRPC service clients. Kept only API-layer Go services and one Java service with specific requirements as standalone. This significantly reduced operational complexity while preserving all interface contracts.

    Delivered products and features

    • Multiple insurance products
    • Scoring model for each version of each insurance product
    • Several compliance products
    • Organizations, users, broker, and expert portals (APIs) and management tooling
    • Insurance and compliance product framework
    • Dynamic product order flow framework
    • Advanced user notifications through order flows
    • Flexible application forms (in some cases containing hundreds of questions)
    • Dynamic comment system attachable to any entity

    Infrastructure

    • Infrastructure was split into two logical levels:
      • Environment: a separate AWS account with its own domain, VPC, and EKS cluster. Provided billing and data separation between production and non-production.
      • Stand: a dedicated Kubernetes namespace and DNS zone as a deployable unit. All services inside a stand were built from a single commit.
    • Connected and configured AWS services with granular permissions for Kubernetes service accounts linked to AWS IAM roles, and for developer users assigned to AWS IAM groups (with MFA): VPC, EKS, ECR, ALB, Route53, CloudWatch, DynamoDB, RDS, S3, SQS, SNS, SES, and others.
    • Set up CI/CD using Earthly and GitHub Actions. Earthly enabled running checks and builds only for changed services or their dependents.

    Backend details

    • Go for all API services — mostly code-generated, and later LLM-agent-generated. These services aggregate and authorize data from internal services. Five similar but distinct APIs.
    • Java for all services with complex business logic.
    • Temporal for Saga pattern workflows.
    • High reuse at the infrastructure level; intentionally low reuse at the business logic level.
    • Backend70%
    • Architecture10%
    • Infrastructure10%
    • People Management10%

Projects

  • Insurance Platform
    3 years 6 months
    Insurance and compliance platform
    Languages
    • Java50%
    • Golang40%
    • Terraform10%
    Databases
    • DynamoDB90%
    • DuckDB10%
    Frameworks
    • Quarkus40%
    • Temporal40%
    Queues
    • AWS SQS
    • AWS SNS
    Infrastructure
    • AWS RDS
    • Docker
    • Docker
    • Kubernetes
    • GitHub Actions
    • AWS S3
    • AWS CloudWatch
    • Monorepo
    • AWS VPC
    • AWS LB
    Others
    • gRPC
    • OpenAPI

Wheely

June 2016 — August 2021
Premium ride-hailing platform with operations across Europe and the Middle East.
  • Senior Engineering Manager

    2 years 3 months

    Managed four engineering managers and two small engineering groups (2–3 engineers each).

    Responsibilities

    Managed the backend functional division.

    • People management: hiring, 1-on-1s, performance reviews
    • Systems design
    • Development standards (coding style, allowed and disallowed patterns)
    • Core and platform team management

    Achievements

    • Grew the backend division from 12 to 22 engineers
    • Restructured the backend division into five independent teams
    • Co-developed a grade system for R&D roles with the CTO and adapted it for backend engineers
    • Formalized and structured the hiring process
    • People Management70%
    • Architecture20%
    • Infrastructure10%
  • Backend Team Lead

    1 year 4 months

    Managed a group of backend engineers: hiring, growing, architecture, and infrastructure.

    Responsibilities

    • People management: hiring and 1-on-1s
    • System design
    • Core project and platform feature development
    • Discussing integration with external partners

    Achievements

    • Improved deployment frequency from 1–2 per week to 1–5 per day
    • Grew the backend team from 5 to 12 engineers
    • Rewrote the entire order processing system, reducing monthly outages from 2–3 to just four in total over the remaining years
    • Re-architected the driver real-time service to allow fearless deployments and horizontal scaling
    • Led migration to microservice architecture, enabling development scaling and seasonal capacity scaling
    • Migrated the most high-traffic endpoints from Ruby to Go, cutting infrastructure costs by nearly half
    • Built a system allowing partners to grant their users free rides
    • People Management40%
    • Architecture20%
    • Backend20%
    • Infrastructure20%
  • Backend Developer

    1 year 7 months

    Stabilized the project after the original engineering team left. Developed many new features.

    Responsibilities

    • Bug fixing and new feature development
    • Infrastructure support and improvement
    • Assisted in hiring backend engineers

    Achievements

    • Eliminated recurring production incidents that occurred on every deployment
    • Set up metrics collection, surfacing many previously unknown user-facing errors
    • Introduced automated tests, enabling safe production deploys for almost all services
    • Started migration to microservice architecture
    • Backend80%
    • Infrastructure10%
    • Architecture10%

Projects

  • Wheely Backend
    5 years 2 months
    Full-featured premium ride-hailing service backend.

    The starting point

    When I joined Wheely, the backend consisted of seven services:

    • Four of them read from and wrote to the same database using completely different code
    • Two of them were fully stateful and unscalable
    • Deploying one of them always caused data loss and corruption, requiring several hours of manual data recovery
    • Deploying the second caused client-visible outages lasting several minutes
    • Deploying the third forcefully disconnected all active drivers, causing panic and overloading driver support
    • One of the most critical services was partially unavailable during peak hours
    • Only three small services could be deployed without causing an outage or data loss

    Most of these problems were unknown to the original engineering team.

    The path forward

    All of the following changes were made gradually, without any outages and without stopping the delivery of new features and bug fixes:

    • All stateless services were containerized and deployed inside ECS
    • All shared core logic was extracted step by step into a shared library used across Ruby services
    • For Node.js services, the shared logic was also connected via an RPC interface to the shared library
    • Two stateful services were fully rewritten into one stateless service using the shared library. State was replaced with event sourcing through RabbitMQ. This service became the central hub of the entire backend, handling all external events and producing all internal shared events.
    • Performance optimizations (reduced hardware requirements several times over):
      • Each high-traffic endpoint was rewritten from Ruby to Go
      • Some compute-heavy workloads were rewritten in Scala
      • Authentication was migrated to JWT, eliminating calls to the shared RPC auth service

    These changes took about a year and a half, with me as the main engineer and two others contributing.

    Further development

    New services

    As the company's org structure evolved, we extracted subsystems into separate services:

    • Payments gateway (with routing to different providers and antifraud)
    • Promotional actions
    • Reporting (partners, drivers, and corporate clients each receive one or more reports)
    • Geo data storage and processing
    • Partner management
    • Driver management
    • Heat map
    • Customer support real-time portal (rewritten using Centrifugo)
    • Driver photo processing
    • Price and tariff management
    • Unusual situation detector and notifier

    Features

    • Ability to request a ride for a user without an account, via a shared link to a small web app

    Infrastructure

    • Migrated from classic EC2 instances (VPC-less) to ECS
    • Set up Jenkins server and auto-scaling runners on spot instances
    • Set up automatic CI/CD pipelines
    • Set up and operated ELK stack
    • Set up and operated Geminabox as a Ruby package registry
    • Set up, upgraded, and operated MongoDB cluster
    • Set up, upgraded, and operated RabbitMQ cluster
    • Set up Datadog metrics collection and operational dashboards
    • Set up OpenResty + Redis as a proxy for canary testing
    Languages
    • Ruby40%
    • Golang30%
    • TypeScript10%
    • Terraform5%
    • Ansible5%
    • Scala5%
    • Rust5%
    Databases
    • MongoDB80%
    • Redis15%
    • Elasticsearch5%
    Queues
    • RabbitMQ90%
    • Sidekiq5%
    • Redis Streams5%
    Infrastructure
    • Traefik
    • AWS ECS
    • AWS VPC
    • AWS EC2
    • AWS S3
    • AWS IAM
    • Jenkins
    • AWS LB
    • Datadog
    • Grafana
    • ELK Stack
    Others
    • WebSocket
    • Thrift
    • StatsD
    • Jaeger
    • OpenResty

Rambler&Co

June 2015 — June 2016
Major Russian internet and media company.
  • Ruby Developer

    1 year

    Developed, maintained, and worked with the internal CMS.

    • Backend80%
    • Architecture10%
    • Infrastructure10%

Projects

  • You
    6 months
    Aggregator of the best daily articles from all Rambler&Co content sites.
    • Uses Mate as CMS
    • Article preview + paywall model
    Languages
    • Ruby100%
    Databases
    • PostgreSQL60%
    • MongoDB40%
    Frameworks
    • Rails100%
    Queues
    • Sidekiq100%
    Infrastructure
    • GitLab CI
  • Mate
    6 months
    CMS used across most content sites of the Rambler&Co holding.

    Overview

    An SPA-based CMS powering most content sites in the Rambler&Co holding. I was responsible for refactoring and supporting the migration of sites to the shared CMS.

    Languages
    • Ruby90%
    • SQL10%
    Databases
    • PostgreSQL60%
    • MongoDB40%
    Frameworks
    • Rails100%
    Queues
    • Sidekiq80%
    • Redis Streams20%
    Infrastructure
    • GitLab CI

CityFromWindow

July 2014 — June 2015
Public live video monitoring service.

gorodizokna.ru (City from the Window) is a service that lets users share live views from their windows — for example, a live feed of a busy intersection.

  • Golang Developer

    11 months

    Full-stack development of a live video streaming service, including the streaming devices.

    Achievements

    Developed a live video streaming service consisting of three subsystems:

    1. Web application — backend in Go and Cassandra, frontend in AngularJS
    2. Video streaming — Go, FFmpeg, Nginx, MPEG-DASH, MJPEG, Cassandra
    3. Video capture from Raspberry Pi camera — Go, a small amount of C, v4l2
    • Backend60%
    • Frontend40%

Projects

  • City from the Window
    11 months
    Live city observation service streaming 24/7 from operators' windows.

    Overview

    A service for observing the city through windows of participating operators, who install special equipment to broadcast what is happening outside 24/7.

    Restarted the service as the sole developer. The frontend was written in AngularJS and several backend services in Go, with Cassandra as the database.

    Languages
    • Golang60%
    • TypeScript25%
    • CSS10%
    • CassandraSQL5%
    Databases
    • Cassandra100%
    Frameworks
    • AngularJS50%
    • Martini50%
    Others
    • FLV
    • HLS
    • MPEG-DASH
    • M-JPEG
    • JPEG
    • MP4

LiderTelecom

February 2014 — June 2014
SSL/TLS certificate reseller.
  • Ruby on Rails Developer

    5 months

    Maintained a self-written CRM. Supported, refactored, and extended existing satellite sites and landing pages, and built new ones.

    • Backend60%
    • Frontend40%

Projects

  • LiderTelecom Satellite Sites
    5 months
    A set of landing pages selling different SSL/TLS-related products.
    Languages
    • Ruby85%
    • TypeScript10%
    • SQL5%
    Databases
    • PostgreSQL100%
    Frameworks
    • Rails90%
    • jQuery10%

e-Legion

May 2013 — January 2014
Mobile and web outsource development company.
  • Software Engineer

    9 months

    Developed web applications and APIs for mobile apps using Rails.

    • Backend70%
    • Frontend30%

Projects

  • Gridology
    9 months
    Self-hosted social network for high schools, with at least four separate installations.
    Languages
    • Ruby80%
    • SQL15%
    • TypeScript5%
    Databases
    • PostgreSQL100%
    Frameworks
    • Rails100%

MoSpiPoku

September 2012 — April 2013
Personal venture: a collaborative shopping list app with Android client and real-time sync. Published to Google Play. Did not proceed past early stage — no co-founders found.
  • Founder & Software Engineer

    8 months

    Designed, built, and attempted to launch a collaborative shopping list product. Sole engineer across backend, frontend, and Android client.

Projects

  • MoSpiPoku
    8 months
    Collaborative shopping list service with real-time sync and Android client.

    Overview

    A service for jointly creating and sharing shopping lists with an Android client. Key feature: real-time synchronization of shopping lists between users. Published to Google Play. Attempted to grow as a product, but did not proceed past early stage — no co-founders or investment found.

    Languages
    • Java50%
    • Ruby30%
    • TypeScript20%
    Databases
    • MongoDB100%
    Frameworks
    • AndroidSDK50%
    • Rails30%
    • BackboneJS20%
    Others
    • WebSocket

Service and Consulting

September 2011 — August 2012
Outsource development company.
  • Ruby Developer

    1 year

    Developed marketplaces and e-shops using the Rails framework.

    • Backend70%
    • Frontend30%

Projects

  • iPelican
    1 year
    Industrial kitchen equipment marketplace.
    Languages
    • Ruby80%
    • SQL10%
    • TypeScript10%
    Databases
    • MySQL100%
    Frameworks
    • Rails90%
    • jQuery10%

Freelance 2010

January 2010 — August 2011
A set of software development contracts.
  • Freelancer

    1 year 8 months

    Developed web (primarily) and Windows desktop applications.

    • Backend60%
    • Frontend40%

Projects

  • Compcity (new)
    0 months
    Rewrote a legacy PHP product catalog as a Rails e-shop.
    Languages
    • Ruby60%
    • TypeScript25%
    • CSS10%
    • XSLT5%
    Databases
    • MySQL100%
    Frameworks
    • Rails70%
    • jQuery30%
  • DecorWardrobe
    7 months
    Windows app for generating sliding wardrobe designs from different materials and colours.

    Overview

    A Windows desktop application for generating sliding wardrobe configurations composed of different materials and colours.

    Languages
    • C#100%
    Databases
    • RavenDB100%
    Frameworks
    • WPF60%
    • Unity40%
  • Comcity (old)
    6 months
    Website with a catalogue for a computer parts shop.
    Renovated a legacy website originally written in the early 2000s.
    Languages
    • PHP80%
    • 1C10%
    • XSLT5%
    • TypeScript5%
    Databases
    • MySQL100%
    Frameworks
    • CodeIgniter100%

Projects

Structured CV

0 months
Structured CV is a static resume/CV web site with reach local editor
Languages
  • TypeScript100%
Frameworks
  • React100%

Podcast DLNA

2 years
Bridge between DLNA and podcast streams — listen to podcasts on PS4 without jailbreak.

Overview

A bridge between DLNA (UPnP media server) and podcast streams (RSS + MP3), enabling podcast playback on a PS4 without jailbreak.

Languages
  • Rust100%
Others
  • DLNA
  • MP3

PDF Server

7 years 1 month
Dockerized PDF generation API service using HTML templates. Open source.

Overview

A self-contained PDF generation API service built with Docker and HTML templates. Published as open source.

Languages
  • Golang90%
  • TypeScript10%
Others
  • PDF
  • Chrome DevTools

Redirector

1 year 1 month
Redirector is a simple redirecting app. Store patterns (host + regexp in Redis) and redirect to a new URL
Languages
  • Golang70%
  • TypeScript30%
Frameworks
  • Go Swagger70%
  • React30%

Resume Website (old)

12 years 4 months
Personal resume website — open source.

Overview

A personal resume website built in my free time, offering a detailed overview of my experience. Sources are open: https://github.com/c0va23/my_resume/

Languages
  • Ruby100%
Databases
  • MongoDB100%
Frameworks
  • Rails100%

Education

Kuban State University

September 2006 — June 2011

Specialist (5-year, equivalent to Master's) · Mathematical Methods in Economics · Computer Science