Дмитрий Антоненко

Довожу продукт от задачи до продакшена и остаюсь с ним. Пятнадцать лет в разработке.

Rust
Ruby
React.js
PHP

Ключевые навыки

Backend

  • Rust, Tokio, Axum
  • Ruby on Rails
  • PHP, Yii, CodeIgniter
  • REST API
  • RSpec, Capybara, proptest

Базы и кэш

  • PostgreSQL
  • MySQL
  • Redis
  • MongoDB
  • Tarantool

Фронтенд

  • React
  • JavaScript

Инфраструктура

  • Apache Kafka
  • Docker, Docker Compose
  • Git, GitLab CI
  • Linux
  • Capistrano

Карьера

Общий опыт: 15 лет и 1 месяц

Сейчас · Rust и Ruby

mokka

Октябрь 2022 — настоящее время

Платёжные API, отчётность для Центрального банка и асинхронные сервисы на Tokio.

Rust Tokio Axum Kafka PostgreSQL Redis Ruby on Rails
  1. 01

    Разработал и поддерживал парсинг и формирование отчётов для Центрального банка России.

  2. 02

    Интегрировал покупку дисконтных карт в рассрочку через giftery.ru.

  3. 03

    Улучшил тестовое покрытие платёжных API и описал взаимодействие платёжных сервисов.

  4. 04

    Собрал асинхронные высоконагруженные сервисы на экосистеме Tokio.

  5. 05

    Построил REST API на Axum с middleware: авторизация, логирование и трейсинг. Внешние API — через reqwest.

  6. 06

    Проектировал схемы PostgreSQL, оптимизировал запросы и вынес состояние в Redis.

  7. 07

    Собрал событийные пайплайны: продюсеры и консьюмеры Apache Kafka на rust-rdkafka.

  8. 08

    Написал юнит- и интеграционные тесты, стресс-тесты на proptest и асинхронные сценарии на tokio-test.

Fullstack · команда 15

Teleset

Февраль 2018 — сентябрь 2022

Платформа для ТВ-приставок: обновление Rails, тесты и удалённое управление на стадионах и в барах.

Rails 6 Ruby 2.7 React PostgreSQL Redis Docker RSpec
  1. 01

    Обновил приложение с Rails 4.2 до Rails 6.0.

  2. 02

    Поднял покрытие тестами с 22% до 90%.

  3. 03

    Ускорил обработчик регистрации пингов ТВ-приставок в 22 раза.

  4. 04

    Разработал систему удалённого управления ТВ-приставками для стадионов и баров на 2021 FIFA Arab Cup.

  5. 05

    Проводил собеседования Ruby-разработчиков. Стек также включал MySQL, MongoDB, Tarantool, GitLab CI и Capybara.

Результат

Обработчик пингов стал быстрее в 22 раза

Ускорил регистрацию пингов ТВ-приставок в 22 раза и поднял покрытие тестами с 22% до 90%.

Fullstack · команда 8

Elpanda Group

Август 2015 — январь 2018

Софт для техподдержки маркетплейса автозапчастей и управление командой из пяти разработчиков.

Rails 4.2 Ruby 2.5 PostgreSQL Redis Capistrano RSpec
  1. 01

    Участвовал в создании отдела технической поддержки для внутренних и удалённых подразделений маркетплейса.

  2. 02

    Вёл коммуникации, требования и ожидания по проекту.

  3. 03

    Спроектировал и разработал программное обеспечение для отдела технической поддержки.

  4. 04

    Внедрил продукт в управление продажами маркетплейса автозапчастей.

  5. 05

    Управлял командой разработки из 5 человек.

PHP · команда 5

Helpline.by

Сентябрь 2011 — июнь 2015

Корпоративные приложения, архитектура CRM и e-commerce-стартап с отчётами, которые стали быстрее в 12 раз.

PHP 5 Yii 1 CodeIgniter
  1. 01

    Разрабатывал и запускал корпоративные приложения для крупного бизнеса.

  2. 02

    Проектировал архитектуру CRM-продукта и переводил бизнес-требования в технические задачи.

  3. 03

    Запустил и развивал стартап в e-commerce — интернет-гипермаркет бытовой техники.

  4. 04

    Создал плагин отчётности, который сократил время ожидания в 12 раз.

Мои проекты

Библиотека

warm_core

github.com/dima-antonenko/warm_core

Пул потоков для Linux: работа остаётся на одном физическом ядре, данные не вытесняются из кэша.

Rust Linux libc
Открыть репозиторий
  1. 01

    Читает топологию из /sys и закрепляет поток за одним CPU. По умолчанию один рабочий поток на физическое ядро, чтобы пара hyper-threading не выбивала данные из L1 и L2.

  2. 02

    Индексы очереди разнесены по разным линиям кэша. На задаче размером с L2 пул закончил работу примерно в 1.2 раза быстрее, чем std::thread с yield_now.

CLI

rustfetch

github.com/dima-antonenko/rustfetch

Системная сводка на Rust, аналог screenfetch: ASCII-арт и детали машины в одном экране.

Rust
Открыть репозиторий
  1. 01

    Рисует логотип системы и рядом показывает ОС, ядро, uptime и загрузку ресурсов.

  2. 02

    Собирает тему, окружение и прочие детали, которые обычно размазаны по нескольким командам.

CLI

line_counter

github.com/dima-antonenko/line_counter

Быстрый подсчёт строк кода: языки, фильтры файлов и обход проекта.

Rust
Открыть репозиторий
  1. 01

    Считает строки по кодовой базе и различает языки.

  2. 02

    Фильтрует файлы, чтобы в отчёт не попадало лишнее.

Учебный узел

minichain

github.com/dima-antonenko/minichain

Учебный UTXO-узел на одной машине: блоки, подписи Ed25519 и proof-of-work.

Rust Ed25519 sled
Открыть репозиторий
  1. 01

    Деньги живут как непотраченные выходы. Новый блок берёт транзакции из мемпула и подбирает nonce.

  2. 02

    Два процесса обмениваются цепочкой по TCP. Принимается более длинная цепочка, если каждый блок проходит проверку.

Библиотека

pg_pool

github.com/dima-antonenko/pg_pool

Асинхронный пул сессий PostgreSQL для Tokio: ограниченное число соединений внутри процесса.

Rust Tokio PostgreSQL
Открыть репозиторий
  1. 01

    Выдаёт соединения задачам и возвращает их в пул, когда guard уничтожается.

  2. 02

    Закрытые и слишком старые сессии в пул не возвращаются: вместо них открывается новая, пока не достигнут предел.

Образование и сертификаты

2026

Rust Developer

Скачать сертификат

2025

Rust Developer. Basic

Скачать сертификат

2020

Certified Kubernetes Application Developer (CKAD)

Скачать сертификат

2020

Google Cloud Professional Cloud Architect

Скачать сертификат

2014

Thinknetika

Бэкенд-разработка, Ruby-разработчик

2014

Краснолучский горно-промышленный колледж

Компьютерная инженерия, инженер-специалист