Резюме
Степан Захаров
Решаю наукоёмкие задачи бизнеса. В прошлом научный сотрудник и фрилансер. Физтех — навсегда.
За плечами более 8 лет опыта в R&D проектах и науке, к.ф.-м.н.
Контакты ⋅ stepanzh@gmail.com ⋅ t.me/red_deer
Я в сети ⋅ LinkedIn ⋅ Google Scholar ⋅ GitHub ⋅ Пропорцио ⋅ t.me/stepanzh_blog
Языки ⋅ Русский ⋅ Английский
Ключевые навыки
- Моделирование и исследования. Постановка задач, упрощение моделей, солверы (решатели), отчёты. Уравнения в частных производных, дифференциальные уравнения, линейная алгебра, оптимизация, некорректные задачи.
- Вычисления. Высокопроизводительные вычисления, вычисления на центральных и графических процессорах. Многопоточные вычисления, Nvidia CUDA.
- Физика. Многофазные течения, фазовое равновесие в флюидах, термоупругость, пористая среда.
- Программирование. Архитектура программного обеспечения, валидация, распространение, документация. Научные программы, инженерные программы и программы для массового пользователя. Julia, Python, C/C++, C#, Windows, Linux, MacOS.
- Управление. Управление командой до 6 человек. Управление знаниями команды до 15 человек.
- Преподавание. Составление курса, руководство преподавателями, обучение совершеннолетних, подготовка материалов и инструкций.
Профессиональный опыт
Старший инженер · R&D · Huawei Russian Research Institute via Coleman Group
Москва, Россия ⋅ Июнь 2024 – Декабрь 2025
- Разрабатывал солвер и сопутствующее ПО для расчётов методом конечных элементов. Участвовал в разработке архитектуры и сборе требований, планировл интерфейсы для соседних команд, тестировал производительность бэкендов для линейной алгебры. Стек: С/С++, Eigen, HDF5, gtest, Julia, scientific Python 3.
- Разработал высокопроизводительные коды численной линейной алгебры, чтобы уложить имеющиеся у команды солверы в KPI по быстродействию и точноcти. Искал и исследовал лучший софт по теме (40+ библиотек), составил и распространил рекомендации для команды. Стек: C, Julia, scientific Python 3, multi threading, cache-friendly, GPGPU (CUDA), heterogeneous programming.
- Разработал отказоустойчивый солвер для плохообусловенной задачи оптимизации (poorly-conditioned constrained quadratic programming). Стек: Julia, multi threading.
- Внедрил и поддерживал базы знаний по двум проектам в команде из 15 человек. Цели: улучшить коммуникацию внутри команды и со штаб-квартирой; формулировать научно-корректные задачи, которые отвечают требованиям штаб-квартиры; упростить подготовку отчётов.
- Руководил (3 человека в команде) подготовкой и проведением курса по языку программирования Julia с фокусом на R&D задачи. С двумя коллегами провели двухмесячных курс для (примерно) 30 сотрудников. Стек: Obsidian, Julia, Quartz SSG.
- Менторил одного коллегу.
Научный сотрудник · Наука · Объединённый институт высоких температур РАН
Москва, Россия ⋅ 2017 – 2024
- Исследовал влияние ретроградной конденсации на течения нефтей в пористой среде (фильтрация). Разработал решатели для динамики флюидов (газ и жидкость) в углеводородных смесях (метод конечных объёмов и элементов, МКО, МКЭ). Искал новые способы добычи газовых конденсатов.
- Исследовал фазовое равновесие в природных смесях углеводородов. Разработал быстрые и отказоустойчивые алгоритмы расчёта фазового равновесия в изохорной и изобарной постановках (нелинейная условная оптимизация и нелинейные системы уравнений). Спроектировал архитектуру программ таким образом, что они могут использовать любое уравнение состояния вещества (например, уравнение Пенга-Робинсона или SAFT-уравнение).
Инженер-программист · Электроника · НПП Детектор
Дубна, Московская область, Россия ⋅ 2022 – 2024
- Собрал требования, разработал программное обеспечение и пользовательский интерфейс для удалённого управления источниками питания для автоматизации лабораторных исследований. Функционал: ручное и сценарное управление, поддержка нескольких производителей источников питания (разные сетевые интерфейсы, разные наборы команд). Занимался поддержкой приложения и документацией. Стек: Windows 10, C#, .NET Core, Sockets, Serial, asynchronous programming, dependency injection, WPF, CommunityToolkit.MVVM, Figma. Тестировал WinUI 3, но на тот момент (2024) WPF оказался надёжнее.
- Собрал требования и автоматизировал подготовку печатных отчётов с данными проведения лабораторных экспериментов. Нагрузка ~150 отчётов каждый квартал, portable офлайн приложение под Windows 7 и 10, валидация входных данных, документация для пользователя. Стек: Python 3.6, sqlite3, xlsx, jinja2, wkhtmltopdf, tkinter, Figma.
Преподаватель · Высшее образование · Московский физико-технический институт
Долгопрудный, Московская область, Россия ⋅ 2019 – 2023
- В соавторстве составил и затем преподавал курс по вычислительной теплофизике (термодинамике) для студентов 4-го курса, основанный на моём опыте и опыте научного руководителя в ОИВТ РАН. Написал материалы для курса. Стек: Python 3, Julia, Jupyter Books, Docker, Ubuntu, git, make.
- Преподавал классический годовой курс по алгоритмам и структурам данных для студентов первого курса, Python 3. Составлял новые задачи, дорабатывал существующие, публиковал контесты через ejudge. На второй год преподавания распределял подготовку домашних заданий между 5 преподавателями.
Образование
Аспирантура · Московский физико-технический институт
Факультет молекулярной и химической физики ⋅ 2019 — 2023
Тема диссертации: Алгоритмы расчёта фазовых диаграмм флюидов на основе численной оптимизации. Защищался в Объединённом институте высоких температур РАН. Я кандидат физико-математических наук по специальности «теплофизика и теоретическая теплотехника».
Стажировка · Институт проблем безопасного развития атомной энергетики
Лаборатория вычислительной теплогидродинамики · 2017 — 2018
Тема стажировки: вычислительная гидродинамика многофазных течений.
Магистратура · Московский физико-технический институт
Факультет молекулярной и химической физики ⋅ 2017 — 2019
Дипломная работа посвящена расчётам двухфазных течений углеводородов в пористой среде.
Бакалавриат · Московский физико-технический институт
Факультет молекулярной и химической физики ⋅ 2013 — 2017
Дипломная работа посвязена расчётам изобарного-изотермического фазового равновесия в смесях углеводородов.
Некоторые проекты
Пропорцио
Мне нравится готовить. Когда я учился на старших курсах и в аспирантуре, то часто пробовал новые рецепты. Но их приходилось пересчитывать на меньшие порции, а это утомительно. Хороших приложений для этого я тогда не нашёл и создал Пропорцио.
На момент 2025Q3, у Пропорцио 200 активных пользователей. Я получил 10K₽ донатов, 40 ответов на опросы и отзывов, плюс провёл несколько пользовательских интервью. Работая над Пропорцио, я осваивал методологию Lean, дизайн пользовательских интерфейсов и Vue 3.
Учебный курс по вычислительной теплофизике
Студенты МФТИ, выбравшие наш научный отдел ОИВТ РАН, не были знакомы с численными методами, которые мы используем в научной работе. Курс должен был устранить этот пробел в знаниях. Первый план курса подготовил мой научный руководитель, а я подготовил материалы, улучшал их и обучал студентов три года.
В течение проекта, я прокачал навыки преподавания, научился составлять понятные материалы для занятий и фокусироваться на сути. Также, я познакомился с Docker.