Обо мне

Linux Experience

  • Distributives:
    • Gentoo as development station.
    • Ubuntu/Debian for server infrastructure.
  • Custom distributive (based on buildroot) for x86 and ARM (custom Zynq based board):
    • Small (min dependencies) image.
    • Add new and patch existing packages.
    • Custom cross-toolchain (based on ct-ng) for x86/ARM.
  • Good knowledge of userspace (system startup, initramfs, system services).
  • Basic knowledge of kernel.

Software development

  • Good knowledge C++03 (migrating on C++11/14). Over 13 years' experience.
  • C++ libraries:
    • STL.
    • boost (threads, datetime, smartptr, asio, bind, chrono, property tree, filesystem, format, function).
  • Multithreading (LWP threads).
  • Design.
    • Inspired by SOLID and Unix philosophy.
    • Found some GOF patterns useful/familiar.
  • Build infrastructure setup/maintenance.
    • Redmine (with own patches) -> GitLab (with own patches).
    • Jenkins CI.
  • Basic web development skills.
  • Router's like HTTP service with simple CSS/HTML.
  • Small apps and bugfixes (in existing) Ruby/Python code.

Debugging

  • Remote debugging via GDB.
  • coredumps/crashkernel analysis.
  • Valgrind.
  • strace.
  • Debugging right up to x86 assembly (real mode only).

Highlights

  • Good technical problem solving skill.
  • System thinking.
  • Self motivated. Ready to manage own promises.
  • Work under pressure (with rational limits).
  • Love self education.

Misc

  • Git (deploy and mentoring).
  • Basic electronics skills (soldering, debugging with DSO/DMM).
  • Basic knowledge of networking stack (L2/L3 layers, TCP/IP, ARP, DHCP, DNS, NTP, LT2P+IPSEC).
  • Love good code, console and VIM. Dislike code smell (yeah... sometime we do not have time for better though).
  • OSX (home laptop).

Essential experience with virtualisation technologies

  • VMware ESXi, vSphere (a little): Deployment from scratch and maintenance company internal services.
  • LXC for CI build infrastructure.
  • KVM/QEMU for product emulator.
  • libvirt

Hobbies

  • Linux (kernel/userspace), hardware (PC).
  • Electronics (analog/digital).
  • Networking (love Mikrotiks).
  • Anything that can make by own hands.
  • Hiking.
  • 2 cats, 2 rats and one tortoise :)

Опыт работы
Май 2015 — по настоящее время
Фриланс
Москва
Май 2008 — Апрель 2015
Artec Group
Технический руководитель проекта
Москва
Обязанности и достижения

Обязанности:
- Разработка ПО
- Конфирурирование рабочего пространства разработчиков ПО

Кроссплатформенная разработка на C++ (stl, boost, wxWidgets)
Web разработка: php, smarty
Инструменты: gcc, gdb, valgrind
Модернизация AltLinux дистрибутива для embedded PC: пересборка ядра, пакетирование, модернизация загрузочных скриптов

Установка, настройка и поддержка: redmine, trac, svn, git(osis), hudson/jenkins ci

Январь 2004 — Февраль 2007
A4Vision
Руководитель отдела по разработке ПО и руководитель проектов
Москва
Обязанности и достижения

Управление отделом по разработке ПО.

Обеспечение рабочего окружения (закупка ПО, оценка новых технологий/инструментов и т.д.).

Технический специалист (разработка архитектуры, помощь в разработке/отладке ПО).
Языки программирования:
Основные: С/С++.
Дополнительно: С#, Assembler, VBScript.

Инструменты: MS Visual Studio 6\7, gcc, Visual Assist, C++ UnitTest framework, DevPartner, Intel V-Tune, Doxygen.
Технологии и библиотеки: WinAPI, COM/DCOM/ActiveX, .NET, MFC, ATL, STL, XML, Boost, QT, DirectX/OpenGL, TCP/IP, BioAPI Framework.

ОС: Windows, RedHat 7, and Windows Embedded.

Configuration and Change Management.
Обязанности:
Развертывание (конфигурирование клиентов, частичное конфигурирование серверов, управление пользователями).
Дизайн (разработка полиси и инструкций).
Модифицирование базовых шаблонов (написание дополнительных скриптов и триггеров).
Поддержка пользователей (решение конфликтов и проблем с системами версионного контроля и управления требованиями).
Build management (разработка и поддержка системы автоматизированной сборки проектов, выпуск релизов).

Инструменты:
Rational ClearCase + ClearQuest, модель UCM.
Rational ClearQuest + RequisitePro.

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

Инструменты: MS Project 2003 + MS Project Server 2003, MS Visio, MS Share Point.
Методологии: RUP.

Май 2002 — Январь 2004
A4Vision
Разработчик ПО, Руководитель команды разработчиков
Москва
Обязанности и достижения

Разработка архитектуры и исходного кода:
Биометрический модуль на основе BioAPI Framework (www.bioapi.org). Язык программирования: C/C++.
Автономное устройство для верификации и идентификации пользователей работающее на промышленном PC под управлением Windows Embedded. Язык программирования: C++.
Клиент - серверное приложение использующееся для управления автономным программно-аппаратным комплексом. Язык программирования: C++/C#.
Инструменты:
Rational Rose – для построения моделей (UML diagrams: use-cases, class diagram, component diagram, state machine diagram, sequence diagram, deployment diagram). MS Visual Studio как основания среда для разработки ПО.

Декабрь 2001 — Май 2002
Virtoons
Разработчик ПО
Москва
Обязанности и достижения

Участвовал в разработке motion capture комплекса. Занимался разработкой программной части. Язык программирования: C++. ОС: MS Windows.

Июнь 2001 — Декабрь 2001
Разработчик ПО
Москва
Обязанности и достижения

Разработка DirectShow аудио/видео (MPEG) фильтра для сетевых конференций. Язык программирования: C++. ОС: MS Windows.

Высшее образование
Январь 1996 — Январь 1999
МГТУ им. Баумана
Машиностроительных технологий; МТ
Москва