Роман Молотов (thunderomancer), Россия, Москва
Роман Молотов (thunderomancer), Россия, Москва
Бэкенд разработчикРазработчик игрВедущий (Lead)
От 350 000 ₽Рассмотрю предложения

Контакты

Войти
Опыт работы: 9 лет и 6 месяцев
Регистрация: 18.09.2022
Последний визит: 2 месяца назад
Гражданство: Россия
Местоположение: Россия, Москва
Дополнительно: готов к переезду и к удаленной работе

Обо мне

Отвечаю за техническое состояние проекта, выбор технологий и архитектурных решений и на стороне сервера (.NET, Cloud API), и на стороне клиента (Unity, C#). Для бэкенда - планирую работы и отслеживаю задачи, провожу интеграции и обеспечиваю коммуникацию с остальными участниками команды. Имею опыт преподавания, менторства и руководства командой. Начинал в gamedev-, но последние 2 года развиваюсь в backend- разработке. Предпочитаю архитектурные и системные задачи. Помогаю прокачиваться другим и постоянно развиваюсь сам.

Навыки

Выберите навык, чтобы посмотреть, какие тесты специалист уже прошел.

Unity3d
Разработка игр
Разработка под AR и VR
C#
.NET
Git
Entity framework

Опыт работы

  • NDA
    Москва
    Февраль 2025 — Май 2026 (1 год и 4 месяца)

    Контрактная работа.

    Проект: Мобильная игра-сервис, онлайн-покер для взрослой аудитории.

    Команда: 2->3 BE, 1->4 FE, 1 DO, 1 QA, 2->4 UI/Art, 1->2 SA, 2 PM/PO. 1 FE выполняет функции тимлида, 1 BE (я) выполняет функции фуллстек техлида, 1 PO выполняет функции PM.

    Технологии: Frontend - Unity, SOA, Zenject, Addressables. Backend - .NET 9, EntityFramework, Cloud API, Clean Architecture, Microservices, Automapper, MediatR, FluentValidation, Kiota, Swagger/OAS, IdentityServer 4, Ocelot. Infra - Docker (docker-compose), Github Actions, Traefik. DBMS - MSSQL Server 2022, Posgres, Mongo, Redis.

    .NET Tech Lead (июнь-н.в.)

    Frontend:

    • Ревью кода коллег и архитектурный надзор.
    • Поддержка архитектуры решения - правки и dev2dev разработка.
    • Постановка задач для разработчиков, взамиодействие с геймдизайнерми (SA) и художниками для формирования требований к техническому решению.

    Backend:

    • Разработка новых сервисов, итеративная интеграция с существующими и их рефакторинг. Например - инициализация/удаление пользовательских данных в 3 независимых сервисах при регистрации/удалении пользователя.
    • Планирование работ и постановка задач для второго .NET разработчика и девопса. Онбординг в проект, постановка задач и интеграция решений Java-разработчика (внутренние инструменты и отдельные сервисы).
    • Менторство FE-разработчика в его развитии как fullstack. Помощь и ревью при переносе части логики из клиента в новый микросервис бэкенда.

    .NET Fullstack developer (февраль-май)

    Frontend:

    • Спроектировал, реализовал и поддерживаю архитиктуру приложения (SOA, State Machine, DI).
    • Перенес асинхронные операции (async/await) на синхронную реализацию (UniTask) для WebGL-версии приложения.
    • Написал HTTP-клиенты для 7 сервисов BE-приложения (REST, OAuth, HttpClient/UnityWebRequest). Factory/Builder + Command для построения запросов.
    • Реализовал механизм авторизации - по учетным данным и по AT/RT JWT, разделение по уровням доступа к данным (API / пользовательские данные).
    • Внедрил CI/CD совмесно с девопсом: насторйки и скрипт автоматизации сборки билдов в редакторе, раскладывание билдов и ресурсов по серверу.

    Backend:

    • Спроектировал и реализовал архитектуру серверного приложения - несколько микросервисов, внутри каждого - Clean Architecture. Разбиение на сервисы - по DDD, на стадии MVP - упрощенное развертывание через docker-compose и прямое межсервисное взаимодействие через REST.
    • Перенес, адаптировал и доработал собственное решение для стека кеширования запросов (Redis, MediatR)
    • Реализовал функционал нескольких сервисов. Для хранения сессионных (временных) данных и кеширования использовал Redis. Хранение статичных данных (конфигураций) - Mongo, оперативных - Postgres.
    • Совместно с девопсом - внедрили и отладили CI/CD, реализовали независимый деплой на различных стендах - автоматический (dev/prod) и по запросу (из отдельных веток). Подключил логгирование (Grafana + Loki), настроил CORS для доступа из WebGL-клиентов.

    Общие задачи:

    • Архитектурный надзор и ответственость за сквозные технические аспекты проекта, ведение документации, планирование и отслеживание задач - функции PM разделили между одним из PO, мной и одним из FE.
    • Коммуникация между разработчиками и остальной командой (BE/FE - 90/10).
    • Проведение собеседований (1 BE, 3 FE)
  • Крупнейшая цифровая платформа. Технобренд, объединяющий лучшие мировые практики и самый современный стек
    МоскваБолее 5000 сотрудников
    Ведущий инженер-разработчик
    Март 2024 — Январь 2025 (11 месяцев)

    Разработка мобильного приложения на Unity и реализация клиент-серверного взаимодействия.
    1. Переделал архитектуру приложения на SOA, упорядочил схему инициализации и загрузки приложения, внедрил IoC/DI-container (Zenject).
    2. Реализовывал взаимодействие с сервером (REST+OpenAPI) и напрямую между пользователями (WebSocket, KCP).
    3. Разработал системы кеширования запросов и ресурсов. Дорабатывал и улучшал клиент-северное взаимодействие: логгирование, обработка ошибок, реконнекты и авторизация.
    4. Разработал прототип (Swift) и участвовал в интеграции (Objective-C) в Unity нативных уведомлений и звонков от iOS (PushKit, CallKit).
    5. На текущий момент отвечаю за выбор архитектурных решений и непосредственно доработку архитектуры клиента (сервисов и систем) и расширение сетевого функционала.

    Корпоративное обучение:
    2024-10: Технологии интеграции Cloud API
    2024-10: Введение в корпоративную архитектуру
    2024-10: Введение в информационную архитектуру
    2024-09: Основы Kubernetes
    2024-09: Академия амбассадоров Сбера
    2024-07: Основы архитектуры ИТ

  • Инди-геймдев (ПК)
    Москва
    Tech lead
    Апрель 2023 — Декабрь 2023 (9 месяцев)

    Руководил командой unity-разработчиков из 3 человек. Спроектировал и реализовал архитектуру десктопной сингл-плеерной игры (NDA). Перезапустил и заново выстроил технический продакш проекта. Довел до внутренней демки.

    В сентябре 2024 выступил с докладом на конференции СТАЧКА - "Рецепт: Диалоги, катсцены и технический геймдизайн в сервисной архитектуре игры".

  • Разработка AR и AI продуктов для детей
    Нью-ЙоркОт 10 до 100 сотрудников
    Unity-developer
    Февраль 2022 — Сентябрь 2022 (8 месяцев)

    Проектировал архитектуру игры, разрабатывал геймплейные механики:

    1. Переводил проект на сервисную архитектуру, внедрял динамическую загрузку ассетов (Addressables) и асинхронное выполнение. В большинстве случаев использовались async/await/Tasks для инфраструктурных модулей и загрузки извне, RSG.Promises для геймплейного кода (архитектура квеста, отдельных сервисов игры) и UniRx для взаимодействия c UI.
    2. Верстал и анимировал UI-компоненты. Для поддержки функционального подхода и процедурных анимаций использовал DOTween. На него же в целях оптимизации и сохранения семантической целостности переводил с Animator существующие UI-компоненты.
    3. Перевел конфигурационные данные игры с кастомного backend-а на Unity Remote Config, реализовал версионность и упростил разделение dev/prod.
    4. Адаптировал проект для Android, работал с нативными плагинами для AR (ARKit ARCore), распознавания речи (SpeechToText) и отправки push-уведомлений, управления разрешениями (Unity / Native Permissions).
    5. Интегрировал и дебажил haptic-эффекты (NiceVibrations) и их работу с InputSystem.
    6. Участвовал в оптимизации (CPU / RAM) игры: записывал и анализировал Profiler snapshots с разных устройств, разделял загрузку контента и формулировал задачи для art-команды по рефакторингу ассетов.
    7. Интегрировал и оптимизировал blur-эффекты (Translucent Image).
    8. Разрабатывал инструменты для геймдизайнеров (Unity Editor Extensions, Odin Inspector), средства мониторинга и читы (SRDebugger).
    9. Отвечал за разработку мультиплеера игры (Photon / PUN2), деплой выделенного сервера на AWS EC2.

    Внес вклад в управление разработкой: декомпозировал задачи, налаживал коммуникацию между unity-разработчиками, backend- и art- командами. Участвовал в обсуждении и проектировании геймплейных механик, помогал с их прототипированием. Формулировал технические требования к разработке графического контента, продвигал идеи оптимизации и универсальных компонентов.

  • Объединяя специалистов с инженерным подходом, мы создаем продукты и решения для людей
    УльяновскОт 10 до 100 сотрудников
    Backend-разработчик
    Октябрь 2021 — Январь 2022 (4 месяца)

    Внутренний проект - backend-разработчик

    Корпоративное приложение для тайм-трекинга, управления доступами сотрудников; организации и проведения внутренних мероприятий и активностей, составления расписаний и отправки уведомлений.

    Разрабатывал серверную часть сервиса бронирования переговорных комнат и релакс-зоны: расписание, рассылка уведомлений участникам. Использовал ASP.NET Core Web-API, EntityFramework Core + Automapper, MediatR для реализации CQRS. Настраивал CORS и писал кастомные middlewares. Валидация запросов - FluentValidation. Идентификация пользователей - OAuth 2.0 + IdentityServer4 отдельным сервисом. Результат - REST-сервис.

    Дополнительно писал unit-тесты (xUnit), интегрировал документирование и логгирование (Swagger, Serilog). Инструменты: Visual Studio, Postman, git-bash


    Outstaff-проект - unity-developer

    Разбирал и рефакторил существующие технические решения. Перепроектировал заново подсистему мини-игр (UI-based): построил архитектуру на базе MVP-паттерна, реализовал логику для 6 типов мини-игр. Интегрировал построение модели из конфигов заданий и загрузку ассетов через Addressables. Верстал интерфейсы согласно макету в Figma, собирал кастомные универсальные компоненты (прогрессбары, кнопки, сложные эффекты анимации). Дорабатывал, нарезал и паковал в атласы спрайты в Photoshop. Использовал Zenject, DOTweenARKit, SRDebugger. Результат - отдельная подсистема мини-игр, специфицируемая json-конфигом, с отдельной точкой входа в проекте.

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

    C#.NETUnity3dGit
  • Частная практика, работа без зачисления в штат
    Ульяновск
    Unity-developer
    Июль 2020 — Сентябрь 2020 (3 месяца)

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

    1. Разрабатывал прототип для проверки гипотез и MVP для тестирования core-геймплея бильярдной игры. Референс - 8 Ball Pool. Реализовал физику и расчёт столкновений шаров, трение и отскок от бортов. Учет забитых шаров, переход хода, таймер. Трассеры и визуализацию удара и отскока шаров. Запрограммировал бота для игры в соло: выбор и расстановка приоритетов ударов. Реализовал возможность выбора сложности игры через характеристики кия и бота-соперника. Для удобства тестирования проект был собран под Android, iOS и WebGL. Использовал C#, .NET, Unity. Для публикации приложения - App Center и TestFlight.
    2. Dumb ways to drive (Google Play) - pet-проект. Гиперказуальный мобильный раннер с сатирическим повествованием через окружение. Референс по основной механике – Fat Pusher. По нарративу и визуальному стилю – Симпсоны, Егор Жгун. Использовались C#, .NET, Unity, DOTween для анимаций окружения и UI. Авторизация пользователей реализована через GooglePlay Game Services и OAuth 2.0. Интегрировал UnityAd. Toon-шейдер собран в Shader graph. Для разработки и отладки пользовался SRDebugger и Rider.

    C#.NETUnity3dGit
  • AgapoffStudio
    Ульяновск
    Unity-developer
    Февраль 2020 — Март 2021 (1 год и 2 месяца)

    Разрабатывал VR и AR приложения для различных заказчиков:

    1.  Интерактивная 3d-презентация порта Усть-Луга. Desktop-приложение для сенсорного демо-стенда, обеспечивающее навигацию по ключевым точкам объекта и отображение краткой информации о них.
    2. AR-анатомический атлас для студентов-ветеринаров. Позволяет в дополненной реальности изучить строение костей животных и способов их фиксации при переломах. При наведении камеры на изображение-маркер появляется интерактивная 3d-модель соответствующей кости / перелома из атласа. По нажатию кнопки можно воспроизвести один из вариантов фиксации и рассмотреть анимацию с разных ракурсов.
    3. AR-презентация завода ЕвроХим.  Мобильное приложение для демонстрации инвесторам и партнерам структуры территорий и характеристик заводов по производству карбамида и аммиака. Два режима: AR (по изображению-метке) и 3D c возможностями поворота и перемещения вокруг модели завода. Отображение информации и характеристик при нажатии иконки над интерактивным объектом. 3d были экспортирован заказчиком напрямую из CAD приложения, оптимизирован (ретопология, чистка) художником. Для повышения производительности был перенастроено и запечено освещение на сцене.
    4. Конструктор домов СмартБарн. WebGL-приложение, встраиваемое на лэндинг заказчика. Позволяет рассмотреть со всех сторон типовые решения готовых домов с различными вариантами отделки. Поддерживается передача параметров в URL для загрузки определенной конфигурации отделки в конструкторе или перехода к заказу.
    5. Каталог военной техники. VR/AR приложение для демонстрации тактических возможностей военной техники. Один или несколько человек управляют техникой в VR режиме (Samsung Gear + смартфон и геймпад Dualshock 4), зрители наблюдают за ходом виртуального испытания или сражения на виртуальной карте в AR режиме (изображение-метка). Сетевое взаимодействие реализовано через локальный сервер Photon.

    Использовал следующие технологии: C#, .NET, Unity, DOTween, Vuforia, ARKit/ARCore, OpenXR, Google Cardboard SDK, InputSystem, Photon, PUN2, WebGL, URP. Оптимизировал и дорабатывал графический контент в Photoshop, 3dsMAX, Blender.

  • Ульяновский государственный технический университет
    УльяновскОт 1000 до 5000 сотрудников
    Старший преподаватель
    Сентябрь 2019 — Июнь 2020 (10 месяцев)

    Старший преподаватель кафедры Вычислительная техника ФИСТ УлГТУ.

    Вел дисциплину «Технологии программирования»: ООП и шаблоны проектирования в геймдеве, клиент-серверные приложения. Организовывал проектно-ориентированное обучение.

    Преподаватель Компьютерной школы
    Октябрь 2016 — Май 2021 (4 года и 8 месяцев)

    Проводил курс по разработке игр на Unity для старшеклассников и студентов. Разработал и проводил авторский курс по геймдизайну и проектированию многопользовательских игр. Составлял методические указания и пособия для внеурочных курсов в школах региона. Руководил командами школьников и студентов для участия в конкурсах. Были реализованы несколько крупных проектов:

    1. Веб-сервис, облегчающий работу биоинформатиков. Позволяет в автоматически наполняемой БД искать информацию о бактериях, бактериофагах, CRISPR-кассетах. На основе анализа данных автоматически для каждой бактерии формируется запись консенсусной PAM-последовательности, которая визуализируется диаграммой на сайте. Работа команды на конкурс ICCET 2019 (C#, ASP.NET.Core, EntityFramework, SQL, JS, Python/biopython, Selenium, Git, Linux).
    2. Веб-сервис, предоставляющий горожанам возможность следить за экологической обстановкой: ставить пользовательские метки контейнеров, пунктов утилизации, свалок, брошенных автомобилей; отслеживать уровень загрязнений и взаимодействовать с коммунальными службами в режиме реального времени, следить за ходом решения экологических проблем. Программа бонусов eco-friendly бизнеса. Проект команды IT-смены летнего лагеря ПФО (C#, .ASP.NET.Core, EntityFramework, OAuth 2.0, JS, Yandex.Maps API, Git).
    3. Платформер-головоломка, в которой игрок, взаимодействуя с пространством, гравитацией и временем перемещается по уровням и сюжету игры.
      Помимо базовой механики платформинга содержит логические и пространственные задачи, над которыми необходимо подумать, прежде чем построить и осуществить путь по платформам к концу уровня. Взаимодействие с пространством, временем, гравитацией – основа геймплея игры, определяющая взаимодействие игрока с виртуальным пространством с трех различных аспектов и требующая от него нахождения системного решения. Проект был представлен командой на Олимпиаде КД НТИ (Профиль Gamedev); в ходе финального этапа для добавления социального элемента в игру был реализован мультиплеер и спроектированы несколько головоломок для совместного прохождения. (Unreal Engine, Blueprints, Maya, Photoshop)
    4. Ряд ежегодных индивидуальных и командных проектов выпускников школы. Были многопользовательские игры, AR и VR приложения и игры. Использовались различные комбинации технологий C#, Unity, DOTween, Photon / PUN2 / Unet, Vuforia, OpenXR. Для контента использовали Photoshop и Blender / Maya. В проектах со сложной графикой - RizomUV и Substance Painter. Для управления командами применял Git и Trello.

    В 2020 «за заслуги в развитии отрасли образования Ульяновской области, достигнутые успехи в обучении и воспитании подрастающего поколения и плодотворную работу по выявлению и поддержке одарённых детей» награжден награждён благодарственным письмом Губернатора Ульяновской области.

    В 2021 «за проявленные профессиональные качества и подготовку команды учеников Компьютерной школы ФИСТ УлГТУ для участия в финальном этапе Олимпиады КД НТИ в г. Владивосток» награжден благодарственным письмом Ректора УлГТУ.

    Младший научный сотрудник
    Июль 2016 — Декабрь 2017 (1 год и 6 месяцев)

    Системный анализ, проектирование и разработка программного обучающего симулятора для тренировки боевых расчетов военной техники.

    Описывал и формализовал предметную область на основе технической и учебной документации заказчика для ТЗ. Проектировал архитектуру симулятора, связанного с внешней рекомендательной системой (оценки действий пользователя).

    Воспроизвел UI/UX органов управления военной техники в симуляторе. Запрограммировал реакцию на различные действия пользователя, обработку ошибок. Реализовал обмен информацией с рекомендательной системой в JSON-формате. Принимал участие в разработке модуля генерации 3d-моделей местности на основе GIS-данных. Разрабатывал систему стратегической симуляции: расстановку техники на карте, баллистические расчеты, симуляцию хода боя. Интегрировал редактор траекторий целей.

    Участвовал в составлении технической документации к проекту, защите перед заказчиком.

  • Фонд содействия инновациям
    Москва
    Исполнитель по программе "Умник"
    Февраль 2016 — Февраль 2018 (2 года и 1 месяц)

    Проектирование и разработка программно-аппаратной системы для хранения, обработки и визуализации данных при проведении шахматных турниров.

    Проанализировал и формализовал бизнес-процессы шахматного клуба. Сформулировал требования и ограничения для ТЗ. Разработал desktop-приложение для мониторинга хода шахматного турнира: судейский монитор, сбор информации и управление подключенными шахматными досками, генерация электронных отчетов. Исследовал различные способы аппаратной реализации. Спроектировал и собрал Arduino-прототип электронной шахматной доски. Протестировал и оценил эффект автоматизации обработки информации с подключенными досками и программными эмуляторами. Использовал протоколы TCP/UDP, 1-wire, RFID

    C#.NETGitPostgreSQLEntity frameworkWPFArduino
  • Разработка программного обеспечения и мобильных приложений
    УльяновскОт 10 до 100 сотрудников
    Программист
    Июнь 2014 — Июль 2014 (2 месяца)
    1. Парсинг и обработка данных из doc/xls-документов, генерация БД. Разработка модуля генерации отчетов (doc/xls/pdf) и электронных документов из БД (C#, .NET, NPOI, EntityFramefork, SQL). Проделал большую часть работы с данными заказчика, внес вклад в разработку модуля электронного документооборота гос. учреждения.
    2. Разработка сервиса генерации отчетов для внутреннего тайм-трекера (C#, .NET, NPOI, EntityFramefork, Git, Redmine).

Высшее образование

  • Информационных систем и технологий
    Сентябрь 2016 — Июнь 2018 (1 год и 10 месяцев)

    Выпускник с отличием (магистр по направлению 09.04.01 «Информатика и вычислительная техника»). Участвовал в методической и научной деятельности кафедры и факультета. Разрабатывал приложения и системы в рамках грантовых, научных и хоздоговорных проектов.

    Информационных систем и технологий
    Сентябрь 2012 — Июнь 2016 (3 года и 10 месяцев)

    Выпускник (бакалавр по направлению 09.03.01 «Информатика и вычислительная техника»). 
    Лауреат стипендий президента РФ и правительства РФ в 2015-2018 гг. Участвовал в научных конференциях и выставках проектов. Руководил практикой группы студентов младших курсов.

Дополнительное образование