Федоров Всеволод Яковлевич
Telegram, seva4job@gmail.com, LinkedIn, GitHub, OpenDev коммиты, Онлайн-версия, English version
+7-(916)-615-5224
Я пишу хороший код;
Я знаю, как повышать качество существующего проекта, как рефакторить плохой код;
Я могу решать сложные задачи.
Python, C++, OCaml, C#, Scheme;
ООП, Функциональное программирование, многопоточность, асинхронность;
Kubernetes/Helm/Docker, AWS, libvirt, PyTest, PySide, SQL, Web, SS7, ASN.1 etc;
Jenkins, Gitlab CI, Ansible;
Linux, Bash.
Опыт работы
Свой некоммерческий проект, Hyperapp
Апрель 2024 - Настоящее время
Hyperapp - Фреймворк для разработки приложений с графическим пользовательским интерфейсом.
Python
PySide
Network Optix, Разработчик программного обеспечения, CI-инженер
Январь 2017 - Март 2024
Спроектировал и реализовал библиотеку функциональных тестов для тестирования продукта компании. Библиотека используется для всех функциональных тестов написанных в компании.
Python
PyTest, VirtualBox, Vagrant
Linux
Спроектировал и разработал систему непрерывной интеграции (CI) для компании. Она собирает продукты для различных платформ, запускает модульные и функциональные тесты. Позже была заменена на другую версию.
Jenkins, Jenkins Pipelines.
Linux, Windows
Разработал и внедрил тесты масштабируемости (Scalability) для продукта компании.
Python
Jenkins/JJB, AWS (EC2, VPC, CloudFormation, Boto), VirtualBox, ElasticSearch, Metricbeat, Grafana, RTSP.
Linux
Спроектировал и реализовал систему автоматизации сборки образов ОС.
Python
Jenkins/JJB, Packer (от Hashicorp), Artifactory/AQL, libvirt+KVM, VirtualBox, AWS (AMI, Boto).
Задокументировал и переработал приложение для развертывания релиза, используемое внутри компании (DepCon). Реализовал непрерывное развертывание (CD): для MR разворачивается тестовая версия, при Merge - релиз.
Python
Django, Docker, Kubernetes/Helm, Gitlab CI, Jenkins/JJB, Artifactory.
Спроектировал и реализовал автоматизацию для сборки пакетов Conan.
Python
Jenkins/JJB, Conan.
Разработал рецепты Conan для Squish и Python.
Участвовал в open-source проекте Jenkins Job Builder. Переписал подсистему расширения шаблонов. Добавил трассировку ошибок. Перенёс тесты на pytest. Исправил некоторое количество ошибок и добавил новую функциональность. Сейчас я maintainer проекта.
Разработал несколько веб-приложений для использования внутри компании.
Python, JavaScript, HTML, CSS;
Flask, FastAPI, Jinja2.
Реализовал автоматическое развёртывание (CD) для нескольких подсистем.
Ansible, Kubernetes/Helm/Docker, AWS CloudFormation.
Deutsche Bank, Разработчик программного обеспечения (AVP)
Ноябрь 2015 - Январь 2017
Проект финансового анализа для трейдеров (SCORE): разработка нового функционала, рефакторинг, исправление ошибок.
C++, C#;
Visual Studio, Resharper, WinForms, Git;
Windows.
Kaspersky Lab, Разработчик программного обеспечения
Октябрь 2013 - Октябрь 2015
Вёл проект Анти-спам (KAS) SDK.
Разрабатывал новый функционал, рефакторинг, исправление ошибок. Разработка и постепенная реализация новой архитектуры KAS SDK.
Реализовал HTTP-сервер для KAS SDK на C++. Реализовал функциональные тесты. Организовал систему непрерывной интеграции (CI) на базе Jenkins и Docker.
C++;
Linux, FreeBSD, Windows;
Gnu C++, MSVC (cross-platform development).
ФГУП НТЦ Атлас / СмартТелеМакс, Разработчик программного обеспечения
Апрель 2011 - Октябрь 2013
Разработка библиотеки для работы с протоколом обмена информацией в системе [PKI](http://en.wikipedia.org/wiki/Public_key_infrastructure) (кодирование и декодирование). Библиотека поддерживает протоколы:
Certificate Management over CMS (CMC) (rfc 5272),
Cryptographic Message Syntax (CMS) (rfc 5652),
Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (rfc 5280).
Использованнные технологии:
Язык: Python;
Библиотеки: компилятор ASN.1 pyasn.
Участие в проекте "Атлант УЦ" (Удостоверяющий Центр, CA - certificate authority & RA - registration authority): Реализация логики системы; Реализация подсистемы автоматического тестирования. АПК "Атлант УЦ" предназначен для выпуска сертификатов электронной подписи по стардартам: rfc 5280, rfc 5272, rfc 5652 и др.
Язык: Python
Библиотеки: SqlAlchemy
Организация системы непрерывной интеграции (CI - Continuous Integration) на базе Jenkins.
НТЦ "Комсет", Ведущий разработчик программного обеспечения
Январь 2003 - Апрель 2011
Участие в разработке системы мониторинга ОКС7 (SS7) "Сателлит":
Разработка подсистемы расчета параметров ISUP (ISDN User Part) (CORBA-сервер) для первой версии системы.
Язык: C++;
Платформа: Linux (x86);
Компилятор: GNU C++;
Библиотеки/middleware: CORBA (omniORB), posix threads.
Разработка подсистемы выборки архивных данных для первой версии системы мониторинга (CORBA-сервер).
Язык: Python;
Платформа: Linux (x86);
Библиотеки/middleware: CORBA (omniORBpy), posix threads.
Разработка системы тестирования расчета параметров первой версии системы мониторинга.
Язык: Python;
Платформа: Linux (x86);
Библиотеки/middleware: CORBA (omniORBpy), posix threads.
Проектирование архитектуры второй версии системы локального мониторинга (общая архитектура, разбиение на модули, IDL-интерфейсы, языки программирования). Разработка сервера второй версии системы: Супервизор, подсистемы работы с зондами, работы с "центром обобщенных данных", ведения архивных данных, расчета параметров, выборки архивных данных, отслеживания состояния.
Языки: Python, Objective Caml;
Платформа: Linux (x86);
Библиотеки/middleware: CORBA (omniORB), sockets, posix threads, py2caml.
Разработка библиотеки-переходника Python<->Objective Caml "py2caml" для сервера мониторинга.
Компилятор: GNU C;
Библиотеки: OCaml API, Python API.
Разработка компилятора языка ASN.1. Поддержка информационных объектов, параметризации, макросов. Генерирование: декодеров BER на Objective CAML; двух типов декодеров и кодеров BER на Python.
Язык: Python;
Платформа: Linux (x86);
Библиотеки: ply (Python Lex-Yacc by David M. Beazley).
Разработка сервера "Центр мониторинга" для системы мониторинга "Сателлит"
Язык: Python;
Платформа: Linux (x86);
Библиотеки/middleware: CORBA (omniORB), posix threads.
Разраборка подсистемы аутентификации для CORBA на базе транспорта omniORB SSL.
Языки: Python, C++;
Библиотеки: omniORB API, openssl API.
Разработка базовой реализации CORBA на Objective CAML. Binding для OCaml; GIOP 1.2 (1.3).
Языки: Objective CAML, Python (back-end for omni IDL compiler).
Разработка общей архитектуры для клиентских приложений.
Язык: Python;
Библиотека: PyQt4.
Разработка компонента платформы Teligent P90 "Python Application Controller" для выполнения Python-скриптов.
Языки: Python, C/C++;
Платформа: Linux (x86);
Библиотеки: Teligent P90 C++ SDK, Python API.
Разработка архитектуры и реализация новых версий серверов и клиентских приложений на OCaml и Python с использованием Ice middleware (релизации от ZeroC и Hydro (wink)), CORBA и Qt (PyQt) в рамках проекта системы мониторинга ОКС7 "Сателлит".
Организация системы непрерывной интеграции (CI - Continuous Integration).
RusEuroSoft, Разработчик программного обеспечения
Август 2002 - Декабрь 2002
Разработка клиентской части и connection-сервера демо-системы для работы с Forex.
Платформа: Windows;
Компилятор: MS Visual C++;
Технологии: Windows sockets, Windows threads, Win32 GUI API, COM/ATL, XML/DOM/HTTP/SOAP.
Инфосистемы Джет, Разработчик программного обеспечения
Июнь 2001 - Январь 2002
Разработка C++ библиотеки для разбора и создания почтовых сообщений (rfc822, rfc1521, rfc1522), создание расширения для языка программирования Scheme.
Платформа: Unix (Sun, HP);
Компилятор: GNU C++.
Разработка Scheme-расширения для доступа к LDAP.
Платформа: Unix (Sun, HP);
Компилятор: GNU C++.
Разработка небольших частей проекта "Дозор" (системы мониторинга и архивирования почтовых сообщений).
Языки разработки: Scheme, shell script.
Zenon, Разработчик программного обеспечения
Январь 2001 - Март 2001
Разработка многопоточного (multi-thteaded) сервера для приема данных NetFlow (UDP) с роутеров Cisco, первичной фильтрации и агрегирования.
Платформа: Unix (FreeBSD, Sun, Linux);
Компилятор: GNU C++.
Разработка библиотеки классов C++ для Unix-серверов (C++ - "обертки" для pthreads, sockets, журнализации, и др.)
Платформа: Unix (FreeBSD, Sun, Linux);
Компилятор: GNU C++.
OXIR Internet Solutions, Разработчик программного обеспечения
Июнь 2000 - Декабрь 2000
Разработка серверной (и частично клиентской) частей биллинговой системы для веб-хостинга.
Серверная часть - CORBA-сервер, клиентская - CGI-скрипты на Python;
Язык: C++, Python;
Платформа: Unix (Linux & FreeBSD);
Компилятор: GNU C++;
Библиотеки/middleware: CORBA (omniORB2, TAO), OTL (Oracle template library).
Разработка модуля веб-сервера Apache для авторизации клиентов биллинговой системы.
Язык: C++;
Платформа: Unix (Linux & FreeBSD);
Компилятор: GNU C++;
Библиотеки/middleware: CORBA (MICO).
R-Style software lab, Разработчик программного обеспечения
Январь 1996 - Июнь 2000
Разработка подсистемы управления доступом (ядро и рабочее место администратора), используемой в системах RS-Depo и RS-GKO.
Язык: C++;
Платформа: Windows NT, Windows 95, DOS DPMI32;
База данных: Btrieve;
Компилятор: Borland C++.
Разработка системы учета ГКО и ОФЗ в банках (RS-GKO).
Язык: C++;
Платформа: Windows NT, Windows 95, DOS DPMI32;
База данных: Btrieve;
Компилятор: Borland C++.
Разработка подсистемы транзакций в депозитарной системе RS-Depo.
Язык: C++;
Платформа: Windows NT, Windows 95, DOS DPMI32;
База данных: Btrieve;
Компилятор: Borland C++.
Разработка сервера для автоматического (по почтовым запросам) исполнения макросов на корпоративном языке программирования RSL.
Язык: C++;
Платформа: Windows NT, Windows 95, DOS DPMI32;
База данных: Btrieve;
Компилятор: Borland C++.
Проектирование и разработка пакета расширений к корпоративному языку RSL для предоставления доступа из RSL к функциональности системы "Кондор".
Язык: C++;
Платформа: Windows, Windows 95;
Компилятор: Borland C++.
Проектирование и разработка ООП-библиотеки для доступа к SQL серверам MSSQL и Sybase (использовалась в проекте "Кондор").
Язык: C++;
Платформа: Windows NT, Windows 95;
Библиотеки: MSSQL & Sybase db-library;
Компилятор: Borland C++.
Проектирование и разработка многоуровненых серверов приложений в рамках проекта OLAP "Кондор":
сервер для автоматического выполнения программ на корпоративном языке RSL;
сервер для генерирования и исполнения SQL выражений;
Scheduler-сервер;
(частично) сервер управления доступом.
Использованнные технологии:
Язык: C++;
Платформа: Windows NT;
Библиотеки: RPC;
Компилятор: Borland C++.
Проектирование и разработка 'RS Web Server'. Сервер обеспечивает выполнение HTTP-запросов на корпоративном скриптовом языке RSL.
Язык: C++;
Платформа: Windows NT;
Компилятор: MSVC.
Cherry software, Разработчик программного обеспечения
Декабрь 1994 - Ноябрь 1995
Проектирование и разработка DOS-интерфейса к электронной таблице.
Язык: C++;
Библиотеки: Turbo Vision;
Платформа: DOS DPMI32;
Компилятор: Borland C++.
Проектирование и разработка ООП-библиотеки для доступа к БД.
Язык: C++;
Библиотеки: Paradox Engine;
Компилятор: Borland C++.
"БИС" - Банковские информационные системы, Разработчик программного обеспечения
Сентябрь 1993 - Июль 1994
Проектирование и разработка клиентской части "АРМ удаленного клиента банка".
Язык: Borland Pascal;
Библиотеки: Turbo Vision, Paradox Engine;
Платформа: DOS.
Разработка серверной части "АРМ удаленного клиента банка".
Язык: Progress 4GL;
База данных/платформа: Progress.
Также разработка нескольких мелких подсистем АБС БИСквит на Progress 4GL.
Навыки:
Языки программирования: Python, C++, Objective CAML, JavaScript, C#, MZ Scheme, Bash;
Базы данных: SQL, PostgreSQL, MySQL, Oracle, SQLAlchemy, PonyORM;
Технологии виртуализации: Kubernetes, Helm charts, Docker, AWS (EC2, VPC, IAM, Boto etc), VirtualBox, libvirt+KVM;
CI и автоматизация: Jenkins, Jenkins Job Builder, Gitlab CI, Ansible, AWS CloudFormation;
Web: HTML, CSS, Flask, FastAPI, Django;
Другие: Packer (by Hashicorp), ElasticSearch, Grafana, Artifactory, PyQt/PySide, SS7, ASN.1, PKI.
Образование:
Российский государственный технологический университет имени К. Э. Циолковского (МАТИ), 1988-1993, Инженер-конструктор-технолог ЭВС.
Языки:
Русский: Родной
Английский: Технический (могу читать, писать документацию, переписываться, разговаривать на технические темы).