Роман Молотов (thunderomancer), 30 лет, Россия, МоскваРоман Молотов (thunderomancer), 30 лет, Россия, Москва

Роман Молотов

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

Контакты

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

Обо мне

Придерживаюсь сервисной архитектуры при разработке игр. Большинство задач решаю с помощью асинхронного и реактивного программирования. Умею к каждой из задач подобрать нужный подход и технологии. Люблю когда каждый элемент реализации находится на своем месте и складывается в аккуратное общее решение.

Педантично верстаю UI, пропагандирую адаптивную верстку и универсальные компоненты. Поэтому активно пользуюсь процедурными анимациями и готов заморочиться с библиотекой кастомных компонентов и префабов.

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

Навыки

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

Опыт работы

  • Крупнейшая цифровая платформа. Технобренд, объединяющий лучшие мировые практики и самый современный стек
    МоскваБолее 5000 сотрудников
    C# Developer (Ведущий)Ведущий инженер-разработчик
    Март 2024 — По настоящее время (10 месяцев)

    Разработка мобильного приложения на 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- командами. Участвовал в обсуждении и проектировании геймплейных механик, помогал с их прототипированием. Формулировал технические требования к разработке графического контента, продвигал идеи оптимизации и универсальных компонентов.

  • Объединяя специалистов с инженерным подходом, мы создаем продукты и решения для людей
    УльяновскОт 100 до 1000 сотрудников
    Бэкенд разработчик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).

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

  • УлГТУ

    Ульяновский государственный технический университет
    Ульяновск1210 выпускников
    Информационных систем и технологий
    Сентябрь 2016 — Июнь 2018 (1 год и 9 месяцев)

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

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

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

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