Skip to content

Latest commit

 

History

History
205 lines (187 loc) · 25 KB

File metadata and controls

205 lines (187 loc) · 25 KB

Резюме

Общее

ФИО: Толстов Василий Георгиевич (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).

Опыт работы

ForteBank.kz

г. Алматы (Казахстан), удалённо
Технический лидер направления разработки

Руководство и процессы:

  • Провёл 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) для составления планов и технических спецификаций, реализации задач через цепочки субагентов, написания юнит-тестов, поиска багов во фреймворке и разработки новых функций фреймворка

portals.tg

Удалённо
CTO (консультирование)

  • Провёл аудит производительности системы: выявил узкие места, восстановил стабильную работу проекта, оптимизировал критичные участки кода
  • Разработал библиотеку для работы с PostgreSQL на базе Yandex HA-SQL и pgxpool: реализовал умный роутинг запросов к БД не только по признаку (primary/standby), но и с учётом текущей нагрузки на сервер и скорости его ответа
  • Разработал и реализовал план по снижению CAPEX-затрат на серверную инфраструктуру в Google Cloud: перенос части нагрузки на выделенные серверы
  • Проводил технические собеседования DevOps-инженеров и разработчиков, онбординг новых членов команды

BerekeBank.kz (бывш. Sberbank Kazakhstan)

г. Алматы (Казахстан) Руководитель направления разработки микросервисов департамента развития технологий

  • разработка сервиса аутентификации
  • участие в планировании архитектуры платформы микросервисов на базе openshift
  • разработка микросервиса автоматического заведения эквайринга
  • разработка микросервиса пуш уведомлений о карточных операциях
  • разработка микросервиса синхронизации из qpragma (pregress) в oracle с промежуточной обработкой (micro + kafka)
  • разработка микросервиса кардпроцессинга (way4 iso8583)
  • разработка микросервиса апи гейтвея (проверка jwt токена, роутинг на микросервисы, аудит сообщения в kafka, асинхронные сообщения посредством websocket
  • модификация фреймворка micro для отслеживания изменений конфигурации (consul/vault) и перенастройка сервиса (изменение уровня логирования)
  • собеседование devops инженеров и golang разработчиков
  • обучение java программистов банка написанию микросервисов на базе micro

[xxx]bank.ru

г. Москва Консультант по разработке микросервисов с использованием фреймворка 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, помощь в решении проблем с производительностью

unistack.org

г. Санкт-Петербург Владелец, системный администратор, главный разработчик

  • сделал форк 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 и др)

clodo.ru simplecloud.ru

г. Санкт-Петербург
Системный администратор, главный разработчик, главный специалист по программному обеспечению

  • развернул сегмент 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)
  • управлял отделом технической поддержки, занимался поиском сотрудников, в кризисных ситуациях общался с "проблемными" клиентами
  • провел множество собеседований на должности сотрудника технической поддержки и системного администратора
  • имею опыт увольнения проблемных сотрудников даже в критической ситуации для фирмы и работы вместо сотрудников более низшего звена (уволил всю техническую поддержку за саботаж рабочего дня в офисе - просто несколько сотрудников прогуляло рабочий день без уведомления), работал месяц совмещая работу системного администратора, начальника технической поддержки и сотрудника технической поддержки, чем заслужил благодарные отзывы клиентов

timeweb.ru

г. Санкт-Петербург
Системный администратор

  • ускорил работу почтовой системы, использовав nginx как фронтенд перед почтовой системой, снизил использование ресурсов, авторизация клиентов по http/https
  • начал внедрение bogofilter в качестве защиты от спама, вместо spamassasin
  • написал патч для отображения текущего обрабатываемого запроса в списке процессов для веб сервера apache (setproctitle) (C)
  • написал патч для Php, который переопределял встроенную функцию mail и вместо нее выполнял собственную функцию, которая позволяла записать в syslog полный бектрейс перед вызовом оригинальной функции (C)

vk.com

г. Санкт-Петербург
Системный администратор

  • помогал администрировать более 2500 серверов в различных дата центрах
  • реплицировал базы данных (master-slave), восстанавливал из бекапов
  • пытался переписать систему перекодирования фильмов для проекта vkadre.ru (Php)

peterhost.ru

г. Санкт-Петербург
Системный администратор, начальник отдела виртуального хостинга

  • занимался мониторингом сервисов виртуального хостинга (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