ФИО: Толстов Василий Георгиевич (Vasiliy Tolstov)
Пол: мужской
Дата рождения: 31.07.1986
Телефон: +7xxx994xx54
Email: v.tolstov[at]selfip.ru (предпочитаемый способ связи)
Skype: vtolstov (не проверяю, только по договоренности)
Telegram: @vtolstov
Проживаю: Россия, Санкт-Петербург
Гражданство: Россия
Релокация: не готов к командировкам, не готов к переезду в Москву
Желаемая должность: технический директор (CTO), технический лидер, руководитель группы разработки
Желаемая деятельность: техническое руководство командой, управление разработкой, архитектурные решения; рассматриваю позиции разработчика только в совмещении с функцией технического лидера
Занятость: гибкий график, удаленная работа (предпочтительно)
Желаемое время в пути до работы: не более часа
Опыт работы по специальности: 21 год
Технический лидер с 21+ годом опыта в разработке ПО и управлении инженерными командами. Специализируюсь на проектировании высоконагруженных распределённых систем на базе Go и микросервисной архитектуры. Совмещаю глубокую техническую экспертизу с управленческим опытом: найм и оценка разработчиков, выстраивание процессов (DOR/DOD), архитектурные решения уровня платформы. Мейнтейнер open-source проектов (go-micro, go-ovn).
г. Алматы (Казахстан), удалённо
Технический лидер направления разработки
Руководство и процессы:
- Провёл 35+ технических собеседований golang- и devops-разработчиков; сформировал критерии оценки кандидатов и шаблоны технических заданий
- Разработал Definition of Ready (DOR) и Definition of Done (DOD) для сервисов команды — стандартизировал процесс приёмки задач и выхода сервисов в продакшн
- Руководил командой из 2 инженеров: декомпозиция задач, код-ревью, менторинг, контроль архитектурного соответствия
Технические достижения:
- Спроектировал и реализовал (совместно с командой) высоконагруженный API Gateway на Go:
- обслуживает 200+ микросервисов при нагрузке 1 200 RPS
- трансляция синхронных REST/gRPC-запросов в Kafka-топики с возвратом ответа клиенту (async-to-sync bridge через очередь сообщений)
- поддержка gRPC Streaming через Kafka
- прозрачное проксирование gRPC↔gRPC и REST↔gRPC
- система хуков на каждом этапе обработки запроса (pre/post-processing pipeline)
- умный роутинг и кэширование ответов
- несмотря на stateful-природу сервиса, организован отказоустойчивый кластер из 4 подов с синхронизацией состояния клиентских подключений между нодами
- Разработал OAuth2-совместимый сервис авторизации с поддержкой кастомного flow (настраиваемый процесс аутентификации под требования банка)
- Спроектировал архитектуру динамической загрузки конфигурации (hot-reload без рестарта сервисов — изменение уровня логирования, параметров роутинга и др.)
- Разработал архитектуру взаимодействия платформы с мобильным приложением
- Провёл R&D по внедрению HTTP/3 (QUIC + gRPC) для мобильных клиентов: оценка протокола, прототипирование, анализ производительности
- Внедрил AI-assisted разработку в рабочий процесс команды: использование LLM-агентов (Claude / Superpowers) для составления планов и технических спецификаций, реализации задач через цепочки субагентов, написания юнит-тестов, поиска багов во фреймворке и разработки новых функций фреймворка
Удалённо
CTO (консультирование)
- Провёл аудит производительности системы: выявил узкие места, восстановил стабильную работу проекта, оптимизировал критичные участки кода
- Разработал библиотеку для работы с PostgreSQL на базе Yandex HA-SQL и pgxpool: реализовал умный роутинг запросов к БД не только по признаку (primary/standby), но и с учётом текущей нагрузки на сервер и скорости его ответа
- Разработал и реализовал план по снижению CAPEX-затрат на серверную инфраструктуру в Google Cloud: перенос части нагрузки на выделенные серверы
- Проводил технические собеседования DevOps-инженеров и разработчиков, онбординг новых членов команды
г. Алматы (Казахстан) Руководитель направления разработки микросервисов департамента развития технологий
- разработка сервиса аутентификации
- участие в планировании архитектуры платформы микросервисов на базе openshift
- разработка микросервиса автоматического заведения эквайринга
- разработка микросервиса пуш уведомлений о карточных операциях
- разработка микросервиса синхронизации из qpragma (pregress) в oracle с промежуточной обработкой (micro + kafka)
- разработка микросервиса кардпроцессинга (way4 iso8583)
- разработка микросервиса апи гейтвея (проверка jwt токена, роутинг на микросервисы, аудит сообщения в kafka, асинхронные сообщения посредством websocket
- модификация фреймворка micro для отслеживания изменений конфигурации (consul/vault) и перенастройка сервиса (изменение уровня логирования)
- собеседование devops инженеров и golang разработчиков
- обучение java программистов банка написанию микросервисов на базе micro
г. Москва Консультант по разработке микросервисов с использованием фреймворка go-micro (micro)
- создание сервиса-конвертера из oracle базы данных в postgresql информации о клиентах из (xml => json с использованием protobuf, xpath, golang
- разработка сервисов и консультация в переводе банковсковских процессов с siebel и oracle на postgres и микросервисы
- множество правок в go-micro и go-plugins для уменьшения потребления памяти, увеличении скорости работы
- создание plugin к go-micro для kafka брокера на основе segmentio/kafka-go
- множество улучшений фреймворка (encoding/decoding, batch processing, metrics, performance)
- создание сервиса кардпроцессинга (tieto is8583)
- обучение программистов банка написанию микросервисов на базе micro, помощь в решении проблем с производительностью
г. Санкт-Петербург Владелец, системный администратор, главный разработчик
- сделал форк go-micro (micro) и начал его активное развитие и поддержку
- написал генератор для dbus библиотеки libvirt (golang)
- исправил и улучшил библиотеку для управления Open vSwitch OVN (Open Virtual Network) go-ovn (golang)
- стал официальный мейнтейнером go-ovn репозитория вместе с разработчиками из Ebay
- написал библиотеку для чтения Ceph Crushmap файлов json/text/binary (golang)
- пишу систему управления серверами с использованием микросервисов (golang)
- возобновил поддержку go-rfb библиотеки для работы с vnc (golang)
- исправление ошибок, улучшение go-micro
- стал официальным мейнтейнером go-micro
- улучшение различных подсистем go-micro (logger, api, grpc client/server, prometheus wrapper и др)
г. Санкт-Петербург
Системный администратор, главный разработчик, главный специалист по программному обеспечению
- развернул сегмент openstack swift в Санкт-Петербурге для организации гео распределенного хранения объектов
- в одиночку администрировал более 420 серверов различной направленности (базы данных, виртуализации, приложений Php, бекап, сетевые, CI/CD) в 4 различных дата центрах в двух городах России
- проводил проверку и тестирование рецептов opscode chef, проверял исправления, исправлял сам (ruby)
- переносил текущие работающие сервисы на новое аппаратное и программное обеспечение без перерывов в обслуживании
- переписал всю систему настройки серверов в opscode chef на saltstack с постепенным внедрением saltstack на текущих работающих серверах, которые обслуживались до этого opscode chef (python, ruby)
- спланировал и разработал инфраструктуру хостинга виртуальных машин для массового использования (проекты clodo.ru/simplecloud.ru)
- разработал и протестировал возможность переезда пользовательских виртуальных машин между двумя дата центрами (переезд между oversun mercury в ixcellerate) посредством gre туннелей и nbd без перерыва в обслуживании
- занимался массовой сменой гипервизора на серверах виртуализации (с xen на kvm) и конвертацией виртуальных машин в автоматическом режиме (bash)
- разработал возможность монтирования http/https адреса в режиме только чтения в локальный путь для rclone (fuse, поддерживается apache/nginx структура листинга файлов, golang)
- написал поддержку Tight Png кодировки для node-rfb2 (nodejs)
- написал поддержу dhcp пакетов для ogo openflow контроллера, исправил разбор openflow 1.0 пакетов для ogo openflow контроллера (golang)
- написал поддержку dhcp пакетов для gopacket, написал начальную поддержку openflow (golang)
- написал автоматический установщик операционных систем для клиентский виртуальных машин, который на-лету разжимал образ и пропускал в нем нули, для уменьшения времени установки виртуальной машины (использовался до того, как qemu научили не писать нули на диск, а игнорировать или посылать unmap) (golang)
- написал множество исправлений packer для qemu сборщика, а также написал несколько пост-процессоров, которые в дальнейшем вошли в основной код packer (golang)
- интегрировал packer в систему сборки образов виртуальных машин для клиентов, а также для внутренних серверов компании (базы данных, виртуализации, веб приложений и т.д.)
- написал модуль ядра Linux для динамического управления памятью в виртуальных машинах (максимальная память виртуальной машины менялась в зависимости от использования памяти) (C)
- написал систему динамического изменения размера диска виртуальной машины в большую и меньшую сторону при ее загрузке (bash, initramfs)
- написал vnc proxy с возможность авторизации клиентов по http/https за год до того, как аналогичную возможность объявил digitalocean, сделал поддержку supermicro aten кодировки с автоматической конвертацией в raw кодировку для обычных vnc клиентов (golang)
- написал ipv4 dhcp и ipv6 RA сервер, который интегрировался с libvirt посредством метаданных домена (golang)
- портировал coreos-cloudinit для FreeBSD, добавил возможность сборки без CGO, добавил возможность изменения размеров FreeBSD слайсов (golang)
- начал интеграцию системы развертывания готовых приложений JUJU для предоставления пользователям готовых настроенных приложений с возможностью их расширения
- занимался исправлениями software defined storage Sheepdog (С)
- разрабатывал Raft драйвер кластера Sheepdog вместо corosync (C)
- работал с openvswitch, участвовал в обсуждениях в рассылке, помогал исправлять и тестировать чужие исправления
- написал множество скриптов сборки для Exherbo Linux
- написал поддержку создания tap устройств в Libvirt, добавил возможность указания айпи-адресов, роутов посредством Libvirt (C)
- написал модуль dracut для загрузки через pxe+squashfs с поддержкой overlayfs (bash)
- написал ftp сервер с бекендом в openstack swift с возможностью авторизации через http/https api (golang)
- написал множество рецептов opscode chef для настройки серверов (ruby)
- написал и добился включения нескольких патчей в opscode chef (ruby)
- написал и добился включения нескольких патчей в saltstack (python)
- разработал и внедрил систему зашифрованных виртуальных машин для клиентов для соответствия №152-ФЗ "О персональных данных" (altlinux, bash, C)
- управлял отделом технической поддержки, занимался поиском сотрудников, в кризисных ситуациях общался с "проблемными" клиентами
- провел множество собеседований на должности сотрудника технической поддержки и системного администратора
- имею опыт увольнения проблемных сотрудников даже в критической ситуации для фирмы и работы вместо сотрудников более низшего звена (уволил всю техническую поддержку за саботаж рабочего дня в офисе - просто несколько сотрудников прогуляло рабочий день без уведомления), работал месяц совмещая работу системного администратора, начальника технической поддержки и сотрудника технической поддержки, чем заслужил благодарные отзывы клиентов
г. Санкт-Петербург
Системный администратор
- ускорил работу почтовой системы, использовав nginx как фронтенд перед почтовой системой, снизил использование ресурсов, авторизация клиентов по http/https
- начал внедрение bogofilter в качестве защиты от спама, вместо spamassasin
- написал патч для отображения текущего обрабатываемого запроса в списке процессов для веб сервера apache (setproctitle) (C)
- написал патч для Php, который переопределял встроенную функцию mail и вместо нее выполнял собственную функцию, которая позволяла записать в syslog полный бектрейс перед вызовом оригинальной функции (C)
г. Санкт-Петербург
Системный администратор
- помогал администрировать более 2500 серверов в различных дата центрах
- реплицировал базы данных (master-slave), восстанавливал из бекапов
- пытался переписать систему перекодирования фильмов для проекта vkadre.ru (Php)
г. Санкт-Петербург
Системный администратор, начальник отдела виртуального хостинга
- занимался мониторингом сервисов виртуального хостинга (mysql, nginx, apache, exim), писал плагины для nagios
- занимался отслеживанием ошибок в различных opensource продуктах, используемых в компании, накладывал исправления, общался с разработчиками
- исправлял пользователям виртуального хостинга скрипты, отвечал на вопросы
- написал систему переноса пользовательских файлов между серверами, аналог живой миграции до появления контейнеров и виртуализации
- занимался переводом системы виртуального хостинга с FreeBSD на Gentoo Linux
- занимался обучением новых сотрудников технической поддержки
- тестировал кластерные файловые системы для нужд виртуального хостинга (gfs2, openafs)
- Высшее, Университет ИТМО, окончил в 2009 году, по профессии инженер-программист
- Аспирантура (не окончена), Санкт-Петербургский политехнический университет, 3 года; тема диссертации: «Анализ защищённости в многоагентной системе»
- Повышение квалификации: Вдохновляющий менеджмент, 2008 год
- Управление и процессы: проведение технических собеседований, формирование DOR/DOD, декомпозиция задач, код-ревью, менторинг разработчиков, управление техническим долгом
- Архитектура: микросервисы, event-driven архитектура (Kafka), API Gateway паттерны, OAuth2/OIDC, gRPC, HTTP/3 (QUIC), hot-reload конфигурации, stateful-кластеры
- Языки программирования: Go (основной, 10+ лет), C, Python, Ruby, Bash
- Инфраструктура: Kubernetes/OpenShift, Consul, Vault, PostgreSQL, Oracle, Kafka
- Open Source: мейнтейнер go-micro / go-ovn, контрибьютор packer, saltstack, opscode chef
- Языки: Русский (родной), Английский (intermediate — техническая документация, рассылки)
Ищу позицию технического директора, технического лидера или руководителя группы разработки.
Готов совмещать глубокую техническую работу с управлением командой и выстраиванием процессов разработки.
Предпочитаю удаленную работу, не люблю тратить время на дорогу до работы.
Интересуюсь техническими новинками в области высоконагруженных систем, распределённых баз данных, сетевых протоколов.
Работал с различными версиями OS Linux: Gentoo, Fedora, Centos, Debian, Ubuntu, Exherbo, Slackware, ArchLinux. А также с FreeBSD.
Предпочитаю программировать на Go, могу на Ruby, Python, C, PHP.
Github профиль с частью моих разработок: https://github.com/unistack-org