Минимизирует GC давление в VR: object pooling, struct vs class, NativeArray. Профилирует память через Unity Memory Profiler. Управляет lifecycle AR/VR-объектов для предотвращения утечек.
Роли · AR/VR Developer · Middle
Что должен уметь Middle }
34 ключевых навыков, всего 51. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Тестирование и QA, Контроль версий и коллаборация.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 8
Применяет оптимальные алгоритмы для XR-задач: spatial hashing, octree для collision detection. Оптимизирует алгоритмы по времени и памяти для real-time XR. Использует графовые алгоритмы для навигации.
Проектирует асинхронные XR-системы: загрузка сцен, стриминг ассетов, сетевое взаимодействие. Использует UniTask для производительной асинхронности в Unity. Управляет cancellation для VR-переходов.
Проводит code review для XR-кода. Настраивает static analysis для C#/C++. Пишет самодокументируемый код с clear naming. Рефакторит legacy XR-код.
Работает с многопоточностью для XR: Job System (Unity), TaskGraph (Unreal). Реализует offloading тяжёлых вычислений на worker threads. Понимает thread safety и race conditions в XR-контексте.
Применяет паттерны проектирования для XR: State Machine для VR-состояний, Command для undo/redo, Object Pool для VR-объектов. Выбирает подходящие паттерны для конкретных XR-задач.
Проектирует ООП-архитектуру для XR-систем. Использует interface-based design для кросс-платформенной совместимости. Применяет принцип composition over inheritance для XR-компонентов.
Применяет специализированные структуры данных для XR: spatial hash maps, priority queues для event systems. Выбирает оптимальные структуры данных для конкретных XR-задач.
Тестирование и QA · 1
Пишет тесты для XR-систем: interaction logic, state machines, event handlers. Использует mocking для изоляции VR-зависимостей. Настраивает test coverage для XR-проекта.
Контроль версий и коллаборация · 2
Проводит code review XR-кода: архитектура, производительность, best practices. Оставляет конструктивные замечания с объяснением XR-специфичных решений.
Использует Git-стратегии для XR-проектов: feature branches, rebasing, cherry-pick. Настраивает Git LFS для бинарных XR-ассетов. Оптимизирует .gitignore для Unity/Unreal.
Game Development · 8
Профилирует и оптимизирует VR/AR-приложения: CPU/GPU bottlenecks, memory. Использует RenderDoc для анализа GPU. Оптимизирует под мобильный VR (Quest): LOD, occlusion culling, baked lighting. Мониторит thermal throttling.
Оптимизирует рендеринг для VR: single-pass instanced, foveated rendering, fixed foveated. Работает с URP/HDRP для VR. Разрабатывает шейдеры для AR (occlusion, shadow receiver). Оптимизирует draw calls и overdraw.
Проектирует архитектуру Unity-проекта (MVC/ECS подходы). Работает с Addressables для управления ассетами. Настраивает URP/HDRP для рендеринга. Использует Unity Profiler для оптимизации. Разрабатывает Editor tools.
Реализует IK-системы для VR-аватаров (hand IK, body IK). Настраивает procedural animation для VR. Работает с Animator Override Controllers для вариативности. Оптимизирует анимации под VR frame budget.
Реализует spatial audio для VR/AR с использованием FMOD / Wwise. Настраивает HRTF для реалистичного 3D-звука. Работает с амбисоникс-форматом. Оптимизирует аудио-потребление для мобильного VR.
Настраивает физику для VR/AR: точные коллизии, Physics.OverlapSphere, raycasting. Оптимизирует физические вычисления (broad/narrow phase). Использует joints и constraints для VR-взаимодействий.
Проектирует VR/AR интерфейсы с учётом эргономики и комфорта. Реализует diegetic UI, head-locked и body-relative элементы. Проводит юзабилити-тестирование VR-интерфейсов. Учитывает accessibility.
Разрабатывает на Unreal Engine с использованием C++ и Blueprints. Работает с Nanite и Lumen для визуального качества. Настраивает VR-рендеринг в UE5. Использует Enhanced Input System.
XR: AR/VR/MR · 12
Свободно применяет линейную алгебру в AR/VR-разработке: dot/cross product, матрицы проекции, интерполяция вращений (slerp). Решает задачи пространственной геометрии: ray-casting, intersection tests. Понимает разницу между Euler angles и кватернионами.
Разрабатывает интерактивный AR-контент с анимациями и взаимодействием. Оптимизирует 3D-модели для AR (polycount, текстуры, LOD). Использует Reality Composer Pro и Scene Understanding. Создаёт AR-фильтры и эффекты для социальных платформ.
Уверенно работает с ARKit и ARCore для создания AR-приложений. Использует image/object tracking, plane detection и light estimation. Реализует persisted anchors и AR collaboration sessions. Настраивает ARFoundation для кросс-платформенной AR-разработки.
Реализует world tracking с persistent anchors для стабильного AR-позиционирования. Работает с body tracking и hand tracking через ARKit/ARCore. Настраивает SLAM-параметры для оптимального трекинга в различных условиях освещения.
Оптимизирует приложения для мобильного VR Quest (draw calls, overdraw, shader complexity). Использует Meta Interaction SDK для продвинутых взаимодействий. Реализует Passthrough API для mixed reality. Работает с Meta App Lab для дистрибуции.
Работает с OpenXR API напрямую для кросс-платформенной XR-разработки. Использует OpenXR extensions (hand tracking, eye tracking). Настраивает action-based input через OpenXR Input System. Отлаживает OpenXR runtime issues.
Реализует пространственные вычисления для AR/VR: mesh reconstruction, spatial mapping, occlusion. Работает с persistent spatial anchors и cloud anchors. Использует scene understanding для интеграции виртуального контента с реальным миром.
Разрабатывает кастомные controller mappings для различных VR-устройств. Реализует продвинутый hand tracking с gesture recognition. Настраивает haptic-feedback для контроллеров и hand tracking. Интегрирует Ultraleap для высокоточного трекинга рук.
Проектирует комплексные VR-интерфейсы с haptic-feedback. Реализует physics-based interactions (кинематическое и динамическое взаимодействие с объектами). Создаёт пользовательские interactors и interactables. Работает с hand tracking для natural interaction.
Проектирует системы перемещения с учётом комфорта пользователя. Реализует smooth locomotion с vignetting и другими comfort-механиками. Настраивает roomscale tracking и guardian/boundary системы. Создаёт кастомные locomotion systems (climbing, swimming).
Выстраивает пайплайн импорта 3D-ассетов в проект. Оптимизирует модели: polygon reduction, LOD, atlas textures. Работает с PBR-материалами и шейдерами. Настраивает lightmapping и проbake для AR/VR.
Разрабатывает visionOS-приложения с использованием RealityKit и SwiftUI. Реализует spatial windows и volumes. Использует ARKit на visionOS для hand/eye tracking. Работает с PolySpatial для Unity-проектов на visionOS.
Performance Engineering · 3
Оптимизирует end-to-end latency VR/AR-приложений. Использует async time warp / reprojection. Минимизирует input-to-render latency. Настраивает predictive tracking.
Профилирует CPU для VR/AR-приложений: deep profiling, marker-based profiling. Анализирует call stacks для нахождения bottlenecks. Оптимизирует Update/FixedUpdate loops.
Проводит детальное профилирование памяти XR-приложений. Анализирует memory snapshots для нахождения утечек. Оптимизирует texture и mesh memory для мобильного VR.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
51 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- 3D Asset Pipeline: Применение → Продвинутый
- 3D Math: Продвинутый → Эксперт
- Алгоритмы и сложность: Применение → Продвинутый
- Асинхронное программирование: Применение → Продвинутый
- Качество кода и рефакторинг: Применение → Продвинутый
- Многопоточное программирование: Применение → Продвинутый
- Паттерны проектирования: Применение → Продвинутый
- Принципы ООП и SOLID: Применение → Продвинутый
- Структуры данных: Применение → Продвинутый
- Управление памятью: Продвинутый → Эксперт
} в открытой матрице компетенций: 51 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.