Понимает управление памятью в контексте VR/AR (GC в Unity, reference counting). Избегает частых аллокаций в Update/FixedUpdate. Знает о GC spikes и их влиянии на VR-фреймрейт.
Роли · AR/VR Developer · Junior
Что должен уметь Junior }
34 ключевых навыков, всего 51. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Тестирование и QA, Контроль версий и коллаборация.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 8
Знает основные структуры данных (массивы, хеш-таблицы, деревья) и их применимость в XR. Понимает O-нотацию. Реализует простые алгоритмы поиска и сортировки для AR/VR-данных.
Использует корутины (Unity) / async-await (C#) для асинхронных операций в XR. Загружает ассеты асинхронно для предотвращения фризов. Понимает event-driven модель.
Следует code style guide для XR-проекта. Пишет понятный и документированный код. Использует линтеры и автоформатирование. Следует именованию конвенциям Unity/Unreal.
Понимает необходимость многопоточности для VR (90+ FPS). Знает что render и main thread разделены. Использует async/await для неблокирующих операций в Unity/Unreal.
Знает базовые паттерны (Singleton, Observer, Factory) и применяет их в XR-разработке. Использует Observer для event-driven VR-взаимодействий. Понимает Component pattern в Unity.
Применяет ООП-принципы (инкапсуляция, наследование, полиморфизм) в C# для Unity. Создаёт компонентную архитектуру для AR/VR-объектов. Понимает SOLID принципы.
Использует основные структуры данных для AR/VR-разработки: List, Dictionary, Queue. Понимает когда использовать массив vs связный список. Работает с Transform hierarchies.
Тестирование и QA · 1
Пишет базовые unit-тесты для XR-логики с использованием NUnit / Unity Test Framework. Тестирует helper-функции и утилиты. Понимает принцип AAA (Arrange-Act-Assert).
Контроль версий и коллаборация · 2
Участвует в code review как ревьюи. Отвечает на замечания, исправляет код. Изучает подходы коллег к XR-разработке.
Работает с Git: commit, push, pull, branch, merge. Понимает Git LFS для работы с большими XR-ассетами. Разрешает простые merge conflicts.
Game Development · 8
Понимает бюджет производительности для VR (90 FPS, 11мс на кадр). Использует Unity Profiler / Unreal Insights для базового профилирования. Знает основные причины снижения FPS (draw calls, overdraw).
Понимает основы рендеринга для AR/VR: стереоскопический рендеринг, базовые шейдеры и ограничения frame timing для HMD. Использует инструменты профилирования движка для выявления GPU-bound проблем. Следует рекомендациям команды по снижению draw calls и оптимизации текстур в XR-проектах.
Работает с Unity Editor: создаёт сцены, настраивает GameObjects и компоненты. Пишет скрипты на C# (MonoBehaviour lifecycle). Использует Prefabs, ScriptableObjects. Настраивает input через Input System.
Работает с Animator Controller / Animation Blueprint для XR-персонажей. Настраивает базовые анимации: idle, walk, grab. Использует Animation Clips и Blend Trees.
Настраивает базовое аудио в Unity/Unreal: AudioSource, звуковые эффекты. Понимает 3D-звук и его параметры (rolloff, spatial blend). Использует Audio Mixer для управления звуком.
Использует встроенную физику Unity (Rigidbody, Collider) / Unreal (Physics). Настраивает physical materials и collision layers. Понимает разницу между dynamic и kinematic bodies.
Понимает принципы VR/AR UX: comfort, ergonomics, spatial UI. Реализует базовые UI-элементы в VR (мировые canvas, кнопки, слайдеры). Следует guidelines платформ (Meta, Apple).
Знакомится с Unreal Engine 5: Editor, Blueprints, основы C++. Создаёт простые сцены и уровни. Работает с базовым BP-скриптингом для прототипов. Понимает Actor/Component модель.
XR: AR/VR/MR · 12
Понимает базовые концепции 3D-математики: координатные системы, векторы, матрицы трансформации. Использует кватернионы для представления вращений в Unity/Unreal. Работает с Transform API для позиционирования объектов.
Создаёт базовый AR-контент с использованием готовых 3D-моделей и анимаций. Работает с Reality Composer / Spark AR для простых AR-эффектов. Понимает форматы 3D-ассетов (glTF, USDZ) и их ограничения для AR.
Знакомится с ARKit (iOS) и ARCore (Android), выполняет базовую настройку AR-сессий. Использует ARFoundation в Unity для обнаружения плоскостей и размещения объектов. Понимает разницу между мировым и face-трекингом.
Понимает принципы безмаркерного AR-трекинга (SLAM, visual-inertial odometry). Использует plane detection для размещения объектов на поверхностях. Работает с face tracking для базовых AR-фильтров.
Разрабатывает приложения для Meta Quest с использованием Oculus SDK / Meta XR SDK. Настраивает проект для сборки на Quest (Android manifest, graphics settings). Тестирует и отлаживает на Quest устройстве.
Понимает стандарт OpenXR и его роль в унификации XR-разработки. Использует OpenXR через Unity XR Plugin / Unreal OpenXR plugin. Настраивает OpenXR runtime для целевых устройств.
Понимает концепции пространственных вычислений: 3D-дизайн взаимодействий, отслеживание рук и пространственные якоря. Создаёт базовые AR/VR-сцены с пространственным восприятием через ARKit/ARCore или OpenXR.
Работает с VR-контроллерами через XR Interaction Toolkit / OpenXR Input. Настраивает маппинг кнопок для Meta Quest / PCVR-контроллеров. Реализует базовый hand tracking для standalone VR.
Реализует базовые VR-взаимодействия: grab, point, click с помощью XR Interaction Toolkit. Настраивает UI-элементы в 3D-пространстве (world-space canvas). Работает с gaze-based interaction для standalone VR.
Реализует базовые способы перемещения в VR: teleportation и snap turn. Настраивает comfort settings для снижения motion sickness. Понимает проблемы cybersickness и факторы, которые к ним приводят.
Знает основные 3D-форматы (glTF, FBX, OBJ, USDZ) и их применимость. Импортирует 3D-модели в Unity/Unreal и настраивает materials. Понимает базовые концепции: mesh, UV-mapping, normal maps.
Знакомится с Apple visionOS и RealityKit. Изучает SwiftUI для пространственных интерфейсов. Создаёт простые immersive experiences в Reality Composer Pro. Понимает концепции shared space и full immersion.
Performance Engineering · 3
Понимает критичность latency для VR/AR (motion-to-photon < 20мс). Знает основные источники latency: rendering, tracking, display. Измеряет frame time.
Использует Unity Profiler / Unreal Insights для базового CPU-профилирования. Находит hotspots в VR-приложении. Понимает frame budget для VR (11мс).
Использует Memory Profiler в Unity / Unreal для отслеживания использования памяти. Находит очевидные утечки памяти. Понимает разницу между heap и stack memory.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
49 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- 3D Asset Pipeline: Осведомлённость → Применение
- 3D Math: Применение → Продвинутый
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Многопоточное программирование: Осведомлённость → Применение
- Паттерны проектирования: Осведомлённость → Применение
- Принципы ООП и SOLID: Осведомлённость → Применение
- Структуры данных: Осведомлённость → Применение
- Управление памятью: Применение → Продвинутый
} в открытой матрице компетенций: 51 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.