ФИО: Толстов Василий Георгиевич (Vasiliy Tolstov)
Пол: мужской
Дата рождения: 31.07.1986
Телефон: +7xxx994xx54
Email: v.tolstov[at]selfip.ru (предпочитаемый способ связи)
Skype: vtolstov (не проверяю, только по договоренности)
Telegram: @vtolstov
Проживаю: Россия, Санкт-Петербург
Гражданство: Россия
Релокация: не готов к командировкам, не готов к переезду в Москву
Желаемая должность: главный разработчик, технический директор
Желаемая деятельность: разработка ПО, консультация в области разработки ПО
Занятость: гибкий график, удаленная работа (предпочтительно)
Желаемое время в пути до работы: не более часа
Опыт работы по специальности: с 06.2005 по настоящее время (18 лет)
г. Алматы (Казахстан) Руководитель направления разработки микросервисов департамента развития технологий
- разработка сервиса аутентификации
- участие в планировании архитектуры платформы микросервисов на базе 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 году, по профессии инженер-программист
- Повышение квалификации: Вдохновляющий менеджмент, 2008 год
- Знание языков:
- Русский - родной
- Английский - intermediate разговорный, читаю профессиональную литературу, переписываюсь в технических списках рассылок
- Хороший технический кругозор в области виртуализации, систем хранения, виртуальных сетей
- Умею ставить задачи и следить за их выполнением, проводить code-review
Предпочитаю удаленную работу, не люблю тратить время на дорогу до работы.
Интересуюсь техническими новинками в области систем хранения данных, виртуальных сетей, виртуализации.
Работал с различными версиями OS Linux: Gentoo, Fedora, Centos, Debian, Ubuntu, Exherbo, Slackware, ArchLinux. А также с FreeBSD.
Предпочитаю программировать на go, могу на ruby, python, c, php. Но предпочитаю на go.
Github профиль с частью моих разработок: https://github.com/vtolstov