Vadim Gaiduk
vadim@gaiduk.net this page on web
Team lead and developer with 15+ years of working experience in the international environment;
Ph.D. in technical sciences / automatic control theory
When writing C++ code and leading the team, I pay special attention to applying the best technics as STL and algorithms, smart pointers, concurrent programming, selected Boost and other open source libraries and C++11 features providing better code.
I conduct workshops on technical topics and coach colleagues
in best software development practices; that includes agile and scrum, code reviews, unit testing, code styling and documenting, useful C++11 features, applying Unicode for localization, sketching behavior and interaction UML diagrams when developing software.
I've been deeply involved in cartography software and marine
chart standards for ten years, from data preparation tools to end user applications, including the participation in the working groups of future eNavigation standards

Areas of interest and skills
C++ for native development
Tags: Windows, Linux, C++11, STL, Boost (thread, regex, geometry, signals2, asio, date time, filesystem), Chromium libraries, Qt QML, open source libraries, concurrent programming
Score:
Declarative UI based on HTML5/JavaScript with ModelView-View-Model pattern, REST web services
Tags: HTML5, CSS3, JavaScript, JQuery, JQueryUI, JQueryMobile, D3.js, KnockoutJS, ngnix, Apache, FastCGI, JSON, PostreSQL
Score:
Python as universal and widely accepted scripting and development language
Tags: Python, lxml, PyInstaller, Psycopg
Score:
Version control systems and build tools; Agile development process and supporting tools
Tags: Perforce, Git, Subversion, CMake, Jira, Crucible, Jenkins
Score:
Neo-geography, electronic charts, geographical data processing and marine cartography
Tags: S-52, S-57, S-100, INT1, eNav, GRIB, GDAL/OGR, OpenLayers, Mapnik internals, Projections, GeoServer, PostgreSQL, PostGIS, QuantumGIS, TinyOWS
Score:
XML to represent structures for data exchange, transformation and storage
Tags: XML, XSD schema, XSLT, Xpath, Xerces, Xalan, libxml2, libxslt, lxml, Altova XMLSpy
Score:
Mobile development
Tags: iOS, Objective-C, JQuery Mobile, Cordova/PhoneGap, Qt QML
Score:
Languages
My native language is Russian so there is no surprise that I can speak and write correctly. The first foreign language I've learnt is Italian, that I speak quite fluently; I've even worked as interpreter. English is my working language for many years for written documentation, presentations, meetings, calls and teleconferences. I speak French and Spanish as well, but I haven't used them for work.
Education
2003
1994
Baltic State Technical University (former Leningrad Mechanical Institute, "Voenmeh").
Electrical Mechanical Engineer in Robotics, honours degree
Timeline
Since 2014
Lead Developer in
Navis Engineering
Working on vessel motion control software, my mission is to facilitate the introduction of Agile software development practices and up-to-date technologies and frameworks such as Qt QML, Web Applications, Linux
2013 – 2014
Senior Developer on contractor projects for
Bloomberg LLP
Implementing high-loaded low-latency multithreaded C++ Linux financial software is an exciting challenge involving networks, non-blocking multithreading and fault tolerance.
2003 – 2013
R&D projects lead in
Jeppesen by Boeing company in the Marine Cartography department. It has been formed by the 2008 acquisition, from C-Map company where I started to work as developer and then team lead. C–Map brand is well known in commercial marine world and the development is still mainly performed in European locations in Norway, Italy, Russia and Poland.
2002 – 2003
I took sabbatical to prepare and defend the Ph.D. thesis on Applied Mathematics and Control Processes department of
Saint-Petersburg State University. The thesis is titled "Methods of mean-square optimal synthesis in view of object and perturbation uncertainties" and is dedicated to sea wave spectrum modelling considered as external perturbation when defining ship control law. Besides the theoretical research the work contained numerical algorithm implementation with Matlab and dedicated mathematical class C++ template library.
2000 – 2002
French language course in Alliance Française in St.Petersburg
1998 – 2002
Developer and team lead in Santa Barbara, Ltd.:
I worked on telecom application for telephony switch «Harris 20-20». (Microsoft TAPI service provider, Voice-over-IP, Text-to-Speech and Speech-to-Text).
1997 – 1998
Software engineer in Novavox Russia:
I developped computer-telephony integration applications (analog and ISDN Dialogic cards, modems, Microsoft TAPI, Novell Telephony Server API (TSAPI), Dialogic CT-Connect).
1995 – 1999
Postgraduate studies on Applied Mathematics and Control Processes department of Saint-Petersburg State University
1995 – 1997
Senior programmer in St. Petersburg Geophysical Expedition:
I developped software for geophysical surveys and took part in assembly and configuration of Industrial PCs with GPS Navstar receivers. I participated in debug of data registration devices and their PC interfaces, it was my first experience of embedded programming
1994 – 1995
Trainer and system administrator in International Banking Institute, St. Petersburg
1994
Head of desktop publishing department "Spezcomplect" Ltd.
I got the experience in DTP and typography
1993
1986 – 1994
Baltic State Technical University
(former Leningrad Mechanical Institute, "Voenmeh").
Graduated with honours degree as electrical mechanical engineer with specialization in robotics
And besides computers I like…
… social dance (lindy hop, salsa); I discover as well the world of contemporary dance (jazz, modern)
… to travel and to take photographs
… music and first of all, jazz
Вадим Гайдук
vadim@gaiduk.net эта страница в Сети
Руководитель и разработчик с опытом работы в международных командах более 15 лет; кандидат технических наук в области теории автоматического управления
При разработке на C++ и руководстве командой я уделяю особое внимание применению правильных техник: STL и алгоритмы, умные указатели, concurrent programming, избранные библиотеки из Boost-а и основные библиотеки open source, новые возможности C++11.
Я провожу обучение и продвигаю полезные практики разработки программного обеспечения, включая agile и scrum; помогаю в выборе и внедрении сопутствующих программных средств. Среди тем семинаров инспекция кода, модульное тестирование,
оформление и документирование кода, новые возможности C++11, использование Юникода и локализация, применение UML диаграмм поведения и взаимодействия при разработке программного обеспечения.
Моя работа долгое время была тесно связана с морскими картографическими стандартами и программным обеспечением от подготовки данных до пользовательских приложений, включая участие в рабочих группах по подготовке стандартов eNavigation

Область интересов
Разработка на C++
Tags: Windows, Linux, C++11, STL, Boost (thread, regex, geometry, signals2, asio, date time, filesystem), concurrent programming, Chromium libraries, Qt QML, open source libraries
Score:
Декларативный пользовательский интерфейс, основанный на HTML5 и JavaScript и шаблоне ModelView-View-Model, REST web services
Tags: HTML5, CSS3, JavaScript, JQuery, JQueryUI, JQueryMobile, D3.js, KnockoutJS, ngnix, Apache, FastCGI, JSON, PostreSQL
Score:
Python как широко распространенный язык разработки и написания скриптов
Tags: Python, lxml, PyInstaller, Psycopg
Score:
Version control systems and build tools; гибкие процессы разработки и средства для Agile development
Tags: Perforce, Git, Subversion, CMake, Jira, Crucible, Jenkins
Score:
Нео-география, электронные карты, обработка геоданных и морская картография
Tags: S-52, S-57, S-100, INT1, eNav, GRIB, GDAL/OGR, OpenLayers, Projections, GeoServer, Mapnik internals, PostgreSQL, PostGIS, QuantumGIS, TinyOWS
Score:
XML для представления структуры хранения, передачи и преобразования данных
Tags: XML, XSD schema, XSLT, Xpath, Xerces, Xalan, libxml2, libxslt, lxml, EXI, Altova XMLSpy
Score:
Разработка для мобильных платформ
Tags: iOS, Objective-C, JQuery Mobile, Cordova/PhoneGap, Qt QML
Score:
Языки
Я достаточно грамотно владею русским языком, пишу без ошибок и правильно ставлю запятые. Мой первый иностранный язык — итальянский, на котором я говорю свободно, немного работал переводчиком. Английский язык многие годы является для меня основным рабочим языком: документы, презентации, совещания, телеконференции. Также я говорю по-французски и по-испански, но никогда не использовал эти языки в работе.
Образование
2003
1994
Балтийский государственный технический университет
(бывший Ленинградский механический институт, «Военмех»)
Инженер-электромеханик (робототехника), диплом с отличием
Даты
С 2014
Ведущий разработчик в
Navis Engineering
При разработке систем управления движением судна, моей задачей является внедрение практик гибкой разработки программного обеспечения Agile/Scrum, а также переход на современные технологии и средства разработки такие как Qt QML, Web Applications, Linux
2013 – 2014
Ведущий разработчик на проектах для
Bloomberg LLP
Разработка на C++ высоконагруженного многопоточного финасового программного обеспечения под Linux (networks, non-blocking multithreading and fault tolerance)
2003 – 2013
Руководитель R&D проектов в компании
Jeppesen by Boeing в подразделении, занимающемся морской картографией; до поглощения в 2008 году работал в составе международной компании C-Map, имеющей офисы в Норвегии, Италии, России и других странах.
2002 – 2003
Академический отпуск для подготовки и защиты диссертации на факультете Прикладной математики — процессов управления
Санкт-Петербургского государственного университета.
Тема диссертации: «Методы среднеквадратичного оптимального синтеза с учетом неопределенностей в задании объектов и возмущений». Работа касалась моделирования морского волнения, которое рассматривается в качестве внешнего возмущения при построении законов автоматического управления судов. Помимо теоретического исследования, работа включила в себя реализацию численных алгоритмов на С++ с помощью разработанной библиотеки математических классов и шаблонов и системы Matlab.
2000 – 2002
Учился на курсах французского языка в Альянс Франсез в Санкт-Петербурге
1998 – 2002
Программист, руководитель проекта в АОЗТ «Санта Барбара»:
занимался телекоммуникационными приложениями для АТС «Harris 20-20». (Microsoft TAPI service provider, Voice-over-IP, Text-to-Speech и Speech-to-Text).
1997 – 1998
Инженер-программист в Novavox Russia:
разрабатывал приложения компьютерной телефонии (аналоговые и ISDN платы Dialogic, модемы, Microsoft TAPI, Novell Telephony Server API (TSAPI), Dialogic CT-Connect).
1995 – 1999
Учеба в заочной аспирантуре факультета прикладной математики — процессов управления Санкт-Петербургского государственного университета
1995 – 1997
Ведущий программист в Петербургской геофизической экспедиции:
разрабатывал программы для регистрации и обработке геофизических измерений, участвовал в сборке и конфигурировании промышленных компьютеров со спутниковой навигацией, а также участвовал в отладке измерительных приборов и их интерфейса с PC. Получил первый опыт embedded programming
1994 – 1995
Преподаватель и системный администратор в Международном банковском институте
1994
Начальник отдела компьютерного макетирования в АОЗТ «Спецкомплект»
Опыт полиграфической верстки и типографики
1993
1986 – 1994
учеба в Балтийском государственном техническом университете (бывший Ленинградский механический институт, «Военмех»): по окончании получил диплом инженера-электромеханика с отличием по специальности «Робототехнические системы и комплексы»
Кроме работы, я люблю…
… социальные танцы (свинг, сальса), а также открываю для себя мир танца контемпорари, джаза и модерна
… бывать в разных местах, путешествовать и фотографировать
… музыку, особенно джаз