Разработчик программного обеспечения

Уровень зарплаты: от 350 000 руб.
Местоположение: Россия, Санкт-Петербург и область (МСК +0ч)

Резюме: Разработчик программного обеспечения

Более 30 лет опыта разработки программного обеспечения.
Роли: Ведущий инженер, менеджер проектов, специалист по оптимизации и портированию, архитектор.
Опыт в проектах: игровая индустрия (11 опубликованных проектов, всего 15), тренажеры авиа транспорта, морского транспорта, расчеты и визуализация нагрузок для производства крыла самолета, драйвера DirectX для мобильных платформ, мобильные приложения для Android, iOS, Bada, пред-обработка и пост-обработка данных для системы распознавания железнодорожных путей, первое в мире веб-приложения для просмотра 3D медицинских изображений, приложение для построение пирамидальной карты молекулярных изображений, полученных сканирующим микроскопом и многое другое.
Образование / Публикации: Высшее профильное математическое образование + ученая степень (к.т.н.). 2 патента, зарегистрированных в США. 24 опубликованных статей в англоязычных и русскоязычных изданиях, включая публикацию в IEEE. Академические знания вычислительной математики, оптимизации, векторной алгебры в сочетании с практическим программированием на широком диапазоне аппаратно-программных систем и различных компиляторов/интерпретаторов.
Карьерные цели: работа над наукоемким проектом (высший приоритет), проекты с обработкой изображений, распознавание образов, ассистенты вождения транспортных средств, инфраструктура и подготовка данных для проектов с машинным обучением, проекты с использованием 2D/3D графики, проекты в индустрии развлечений, работа с большими данными, оптимизация производительности приложений.
Языки: русский (родной), английский B1+.


ПРИМЕРЫ ДЕМОНСТРАЦИОННЫХ ПРОЕКТОВ НА GITHUB
1. 3D просмотр лофт-объектов, сгенерированных из 2D контуров букв с возможностью динамического сечения 3D поверхности плоскостью в пространстве. https://github.com/VladislavShubnikov/qt3dfontloft
2. Компрессор-декомпрессор облака 2D точек. https://github.com/VladislavShubnikov/varint_encoding

ОСНОВОЕ ВЫСШЕЕ ОБРАЗОВАНИЕ
Высшее техническое образование в области математики и информационных технологий, работа по специальности.
• Сентябрь 1989 – Июль 1994. Санкт-Петербургский Государственный Политехнический Университет Петра Великого. Факультет: «ИПММ». Кафедра «Прикладная математика». Диплом по специальности: «Прикладная математика».
• Сентябрь 1999 – Июль 2002. Санкт-Петербургский Государственный Университет Телекоммуникаций имени Бонч-Бруевича. Факультет «Информационные технологии и программная инженерия». Кафедра «Информатики и компьютерного дизайна». Диссертация кандидата технических наук на тему: «Анализ геометрических описаний сложных объектов на базе алгебраических уравнений высших порядков, их обработка и визуализация». Диплом KT № 076093, Москва, 12 июля 2002.

ПРОФЕССИОНАЛЬНЫЙ ОПЫТ
Ведущий разработчик программного обеспечения (август 2022 – январь 2026)
LG Electronics Russia (partner company)

Разработка infotainment платформы для ассистирования вождения автомобилей будущих поколений. AR навигация, электронные сервисы, экосистема цифровых данных для получения полноценного ассистирования вождения.

Работа с различными tools, поддержка legacy code, портирование кода на различные версии дистрибутивов Linux, различные версии GCC, настройка опций компилятора, оптимизация производительности вычислений. Поиск сложных неисправностей алгоритмов/кода при выполнении на различных операционных системах, алгоритмы локализации транспортных средств.

Программирование на C++, Python.

Использование CMake, различных средств для автоматического документирования, юнит-тестирования, линтования, разработка системы определения покрытия кода тестами и документацией (встроенная в CI/CD процесс).

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

Ведущий разработчик программного обеспечения (октябрь 2015 – Август 2022)
Epam Systems

Разработка веб-приложения: 3D просмотр молекулярных структур для задач life science (https://lifescience.opensource.epam.com/miew/index.html). Построение изоповерхности на основе алгоритма марширующих кубов и двойного контура.

Разработка алгоритмов авто-соединения молекул.

Разработка и 3D визуализация алгоритмов симуляции электро-статических полей.

Разработка веб-приложения: Просмотр и редактирование МРТ изображений (https://lifescience.opensource.epam.com/mri/index.html)

Рендеринг 3D текстуры методом трассировки лучей (OpenGL shaders, ThreeJS).

Сглаживание полигональной треугольной сети.

Поддержка чтения форматов Dicom, Nifti, KTX.

Автоматическая сегментация изображения мозга (TensorFlowJS, training set был взят из публичного конкурса Kaggle).

Портирование проекта на Unity3D (Windows, Android, iOS, HTC Vive virtual reality headset).

Backend и веб-приложение (ReactJS) для просмотра изображений, полученных шагающим электронным микроскопом

Реализация пирамидального представления огромного пиксельного изображения молекулы (аналогично google maps, openstreetmaps tiles, и т.д.). Каждый уровень пирамиды соответствует определенному 2D масштабу.

Конвейер обработки исходных изображений, полученных электронным микроскопом, алгоритмы склеивания изображений (image registration). Алгоритм устраняет резкие границы / сильные градиенты на стыках склейки «плиточных» изображений.

Портирование libjpeg c++ библиотеки на JavaScript с помощью Emscripten ради поддержки 12-битных изображений.

Доцент кафедры «Прикладная математика» (январь 1995 – Август 2020)
Санкт-Петербургский Политехнический Университет Петра Великого
Преподаваемые курсы:

Архитектура процессоров, программирование на ассемблере для различных аппаратных и программных платформ.

Разработка андроид приложений. Создание первого в России (а может, и в мире) «магазина» студенческих приложений. Верификация приложений по более чем 100 требованиям.

Разработка приложений на ReactJS.


Ведущий инженер, менеджер проектов (январь 1995 – Октябрь 2015)
Driver-Inter
• 11 Опубликованных игровых приложений.
• Разработка средств для 3D экспорта данных (Autodesk 3D Studio Max SDK).
• Разработка системы skinned animation.
• Разработка систем управления с использованием искусственного интеллекта.
• 3D визуализации для систем CAD.
• Оптимизация кода низкого уровня для ускорения визуализации.
• Реализация различных графических специальных эффектов с помощью shading languages.
• Разработка мобильных приложений. Полный цикл: от идеи до выгрузки на маркет.


НЕДАВНИЕ ПУБЛИКАЦИИ
• Railroad Semantic Segmentation on High-Resolution Images. The 23rd IEEE International Conference on Intelligent Transportation Systems. September 20 – 23, 2020. Belyaev S., Popov I., Shubnikov V., Popov P., Boltenkova E., Savchuk D.
• Fast Adaptive Undersampling for Volume Rendering. Journal of WSCG, 2019. Belyaev S., Smirnov P., Smirnova N., Shubnikov V.
• Adaptive Screen Sampling Algorithm Acceleration for Volume Rendering. IADIS International Conference Interfaces and Human Computer Interaction 2018 (part of MCCSIS 2018). Belyaev S., Shubnikov V., Motornyi N.
• Adaptive Algorithm for Accelerating Direct Isosurface Rendering on GPU. JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, 2018. Belyaev S., Smirnov P., Shubnikov V.
• 3D-Reconstruction and Visualization of Blood Vessels Based on the Ultrasound Scan Data. Humanities and Science University Journal, №10, 2014. Shubnikov V., Shturts I., Zherzdev A.
• Edge Based Image Comparison and Noise Removal. The 23rd International Conference on Computer Graphics and Vision GRAPHICON’2013, Conference Proceedings. Shubnikov V., Belyaev S.
• Software Complex for Riveting Process Simulation. SAE Technical Papers, Aerospace Technology Conference and Exposition, October 2011. Smirnov A., Lupuleac S., Rodionova O., Shubnikov V.

ПАТЕНТЫ
• Apparatus and method for reconstructing three-dimensional graphics data. US Patent No US7593009 B2, published in 22 September 2009. Same patent EP 1589487 A3.
• Systems and methods for calculating foot size using image recognition. US Patent No US20150228084 A1, published in 13 August 2015.


СЕРТИФИКАТЫ
• Visual Perception for Self-Driving Cars. 07 march 2024. University of Toronto (Coursera online). https://www.coursera.org/account/accomplishments/verify/XFYQ4GC9JKBD
• State Estimation and Localization for Self-Driving Cars. 17 February 2024. University of Toronto (Coursera online). https://www.coursera.org/account/accomplishments/verify/S7RRZQGRV5RU
• Introduction to Self-Driving Cars. 20 January 2024. University of Toronto (Coursera online). https://www.coursera.org/account/accomplishments/verify/ZAVFA27ZDC4F
• C++ For C Programmers, Part A. 08 September 2021. University of California, Santa Cruz (Coursera online). https://www.coursera.org/account/accomplishments/verify/3FEVARQVQVVB
• Concurrency in Go. 24 January 2021. University of California, Irvine. (Coursera online). https://www.coursera.org/account/accomplishments/verify/SL4TNRABRCB5
• Functions, Methods, and Interfaces in Go. 13 November 2020. University of California, Irvine. (Coursera online). https://www.coursera.org/account/accomplishments/verify/RP3LHAQ4J24M
• Getting started with Go. 28 October 202. University of California, Irvine. (Coursera online). https://www.coursera.org/account/accomplishments/verify/ZLXYSML2XJD2
• Front-End Web UI Frameworks and Tools: Bootstrap 4. 15 April 2019. The Hong Kong University of Science and Technology (Coursera online). https://www.coursera.org/account/accomplishments/verify/89K8M6BRXX8G
• Programming Mobile Applications for Android Handheld Systems: Part 1. 13 October 2016. University of Maryland. (Coursera online). https://www.coursera.org/account/accomplishments/verify/ZV83JSW7XJCJ
• Machine Learning. 02 April 2016. Stanford university. (Coursera online). https://www.coursera.org/account/accomplishments/verify/W5U6YG9N2ZG2


КОМПЕТЕНЦИИ
• Языки программирования: С,C++(>20 лет), Python(>10 лет), JavaScript (TypeScript) – 3 года, C# - 1 год, Java(Android) – 5 лет, Assembler, GLSG – 5 лет.
• Большие данные: Classification, Computer Vision, Data Visualization, MongoDB, OpenCV, Regression, Unsupervised learning.
• Разработка игр и мультимедиа приложений: Low level memory and performance optimization, custom 2d game engine development from scratch, Cross-platform 3D/2D game engines development and support, SIMD, Unity( 2 года), Computation geometry.
• Разработки игровых приложений на платформах: iOS, j2ME, Playstation, QT, Samsung Bada, Symbian, Windows Mobile, Xbox, Xbox One.
• Средства разработки: Git, Jira, Perforce, Confluence, Redmine, Swarm, Doxygen, Clang-tidy, Cpplint.

ОПЫТ
• Опыт коммерческой разработки более 20 лет, опыт создания сложных аппаратно-программных систем. Опыт разработки архитектуры приложений. Опыт рефакторинга приложений. Опыт поддержки чужого кода, опыт работы с плохо документированным legacy code, опыт работы с кодом из публичных репозиториев. Опыт разработки технической, программной и пользовательской документации.
• Строгое следование принципам Test Driven Development в процессе разработки программного обеспечения. Использование принципов SOLID, Pimpl. Строгое следование принципам ежежневного документрирования результатов работы в системах типа Confluence.
• Фундаментальные знания и опыт разработки в областях математики, физики, компьютерных наук, информационных технологий, вычислительного моделирования более 15 лет.
• Обширный опыт быстрого создания различных POC, MVA по мотивам статей и открытого программного обеспечения.
• Глубокий опыт работы с C более 20 лет, с C++ 11 более 15 лет (профессиональное владение), уверенное использование стандартной библиотеки STL.
• Классические алгоритмы и структуры данных, принципы объектно-ориентированного программирования, шаблоны проектирования.
• Умение четко ставить задачи, декомпозировать задачи на под-задачи.
• Опыт написания переносимого кода для различных платформ (Windows, Ubuntu, игровые консоли, мобильные платформы)
• Опыт работы с системами контроля версий git (более 10 лет), perforce (более 15 лет), docker(около 1 года)
• Опыт анализа кода и оптимизации кода (на уровне инструкций ассемблера и использования профилирующих средств). Опыт оптимизации производительности приложения для работы с большими объемами данных (более 10 лет). Опыт рефакторинга и ревью кода с помощью различных систем.
• Начальный опыт использования генеративного ИИ для решения простых задач.
• Опыт работы с задачами вычислительной геометрии более 10 лет, опыт работы с 3d моделями более 10 лет.
o Экспорт 2d/3d данных из внешних источников
o Проектирование и реализация системы хранения 2d/3d данных с различными типами сжатия/кэширования, поддержка level of details.
o Эффективные алгоритмы поиска пересечений на основе кластеризации, древовидных представлений
o Поддержка различных форматов 2D/3D данных
• Опыт с языками программирования и фреймворками: С++11 (компиляторы msvc, gcc, clang), Python 3.10, Node.js, React-Typescript.
• Опыт работы с графическими библиотеками OpenGL, DirectX (более 15 лет).
• Опыт работы с библиотеками: OpenCV, Eigen, Pytorch.
• Работа с большими данными и обучение нейронных сетей:
o Подготовка datasets для обучения готовыми сверточными нейронными сетями
o Препроцессинг графических данных
o Различные подходы к визуализации данных
o Настройка гиперпараметов нейронной сети
• Опыт работы с графическими фреймворками: QT (более 11 лет), wxWidgets (более 3х лет).
• Опыт работы с фреймворками тестирования: Catch2, GoogleTest. Разработка в стиле TDD.
• Опыт работы с системами сборки: cmake (более 5 лет), gradle (более 2х лет).
• Начальный опыт работы с базами данных (MySQL, PostgreSQL, MongoDB)
• Опыт работы с иностранными компаниями с ежедневными daily, sprints, scram, etc.

Посмотрите похожие резюме

Fullstack-разработчик .NET / Angular
Зарплата: 200 000 руб.
Программист
Зарплата: 150 000 руб.