Обо мне

Специализация и профессиональные навыки:
Английский язык - свободное владение. Начальный немецкий.
Имею опыт
- работы и программирования в Linux и Windows
- разработки на языках C/C++, Perl, Python, Fortran, Java, Haskell, assembler, shell
- проектирования и разработки математического ПО в средах Matlab/Simulink, Femlab, Maple (решение задач обработки сигналов и изображений, механики сплошных сред, оптимизации и т.д.)
- разработки runtime-систем и (оптимизирующих) компиляторов (handmade, GCC, LLVM)
- параллельного/высокопроизводительного программирования (в частности с использованием библиотек Pthreads и MPI, Linux и Windows IPC, Intel TBB, SHMEM, GASNet, UPC), работы на вычислительных кластерах
- работы с реляционными СУБД (Access, MySQL), программирования на SQL

Профессиональные цели:
Работа над интересными программными проектами в области HPC и/или системного программирования.

Награды, сертификаты, портфолио, проекты:
Во время учебы принимал участие в научных конференциях:
- 4-ая Международная научно-техническая конференция "Авиакосмические технологии", доклад “Численный анализ напряженно-деформированного состояния угловых концентраторов” (Воронеж, 2003);
- научно-технической конференции МИЭМ, доклад “Система синтеза мозаичных изображений в классе систем, основанных на знаниях” (I место, Москва, 2005);
- международной конференции “Новые информационные технологии”, тот же доклад (I место и номинация на грант, Крым, Судак, 2005).

Опыт работы
Июль 2013 — по настоящее время
Инженер-эксперт в компиляторной группе, тимлид
Москва
Обязанности и достижения

Обязанности:
- Различные работы связанные с тулчейном для SmartTV

Достижения:
- низкоуровневая поддержка программистов SmartTV
- разработка, исследование и интеграция инструментов для обнаружения и анализа ошибок (статические и динамические анализаторы, фаззеры и т.п.)
- добавление новой функциональности и исправление ошибок в GCC и LLVM тулчейнах (компилятор, binutils, рантайм, sanitizers и т.д.)
- исследование производительности
- документирование и оптимизация процессов разработки
- управление командой 3-5 человек

Январь 2009 — по настоящее время
none
Программист-фрилансер
Москва
Обязанности и достижения

Достижения:
- портирование языков и библиотек параллельных вычислений (GASNet, UPC, CAF) на новые платформы, анализ производительности
- различные проекты в области анализа данных и изображений (в основном Matlab, а также C и Haskell)
- финансовое моделирование (Maple)
- распараллеливание библиотеки Molconn (кросс-платформенная библиотека для анализа молекулярных структур), http://www.molconn.com (в основном C++, немного Fortran, автоподборщик параметров на Haskell)

Сентябрь 2011 — Июль 2013
Инженер
Москва
Обязанности и достижения

Обязанности:
- разработка, тестирование и отладка системного программного обеспечения виртуальной машины

Достижения:
- базовое системное ПО: ассемблер, дизассемблер, редактор связей, симулятор (С++)
- компилятор (на базе LLVM)
- системные библиотеки (ассемблер и C)
- исчерпывающее функциональное и случайное тестирование и отладка ядра виртуальной машины (сами тесты на ассемблере, тестирующие и генерирующие скрипты на Python)
- тестирование тулчейна (мы использовали тестовые пакеты GCC и LLVM, а также куски Shootout)
- критическое системное ПО, JIT-компилятор для встроенного микроконтроллера

Март 2010 — Сентябрь 2011
Инженер
Москва
Обязанности и достижения

Обязанности:
- разработка различных модулей физического движка

Достижения:
- шейдерный язык (генерация кода: С++, Clang, рантайм-система: C++ и CUDA, скрипты на Python)
- подсистема рефлексии и inplace-сериализации объектов движка (сериализатор на C++, метаданные и кодогенерация на Perl, разные batch-скрипты)
- моделирование систем частиц (C++ и CUDA)

Январь 2008 — Март 2010
Инженер-программист
Москва
Обязанности и достижения

Обязанности:
- тестирование производительности библиотек параллельных вычислений на кластерных системах
- проектирование, разработка, тестирование и анализ производительности системного программного обеспечения для проектируемых моделей суперкомпьютеров

Достижения:
- компиляторы языков C и Fortran для проектируемого суперкомпьютера (разработка на C++, среда unit-тестирования на bash)
- библиотеки макрорасширений для упрощения низкоуровневого программирования на ассемблере (использовался макропроцессор m4)
- экспериментальная библиотека потоковых параллельных вычислений (разработка на C и ассемблере, анализ результатов с помощью Perl, gnuplot и Octave)
- визуализация результатов симуляции (Java, shell)
- участие в разработке различного системного программного обеспечения: ассемблер, линкер, анализатор объектных файлов, симулятор разрабатываемого суперкомпьютера (C++, ассемблер)

Март 2006 — Январь 2008
ООО “Сименс ФДО Инжиниринг”
Инженер-эксперт
Москва
Обязанности и достижения

Обязанности:
- разработка программного обеспечения для проектирования систем управления автомобильными двигателями (Matlab/Simulink, C, Perl)
- разработка программного обеспечения для анализа экспериментальных данных (Matlab/Simulink)
- разработка автоматизированных тестов для систем управления двигателями (под HIL-симуляторы dSpace и Labcar)
- разработка синтаксических анализаторов текстов спецификаций (Perl) и языков высокого уровня (yacc/Flex, C)
- постоянное взаимодействие с иностранными заказчиками (телефонные переговоры, деловая переписка)
- обучение новых сотрудников

Июнь 2005 — Октябрь 2005
ООО “ВедаПроект”
Инженер
Москва
Обязанности и достижения

Обязанности:
- тестирование ПО
- сборка, настройка и администрирование ПК
- программирование на PHP, JavaScript

Июль 2002 — Ноябрь 2002
Техник
Москва
Обязанности и достижения

Обязанности:
- разработка и программная реализация математических алгоритмов (C, Matlab/Femlab, Delphi)

Высшее образование
Сентябрь 2001 — Январь 2006
МГИЭМ
Прикладной математики; ФПМ
Москва