Select your current position
Pick a role and level — we'll show the growth path, skills and gap analysis.
Development path
Junior
0-2 years
Responsibility: Completing tasks under the guidance of senior colleagues. Learning the codebase, standards, and team processes. Writing code to spec, fixing simple bugs, writing tests.
Key skills:
Middle
2-5 years
Responsibility: Independently developing features from decomposition to deployment. Participating in code review. Optimizing performance. Mentoring junior developers. Taking part in architecture discussions.
Key skills:
Senior
5-8 years
Responsibility: Designing the architecture of components and services. Solving complex technical problems. Managing technical debt. Code review as a quality gatekeeper. Mentoring middle developers. Choosing technologies for new tasks.
Key skills:
Lead / Staff
7-12 years
Responsibility: Technical leadership of a team or area. Designing system architecture. Coordinating with other teams. Establishing standards and best practices. Participating in hiring. Planning the technical roadmap.
Key skills:
Principal
10+ years
Responsibility: Technical strategy at the company or domain level. Cross-organizational influence. Solving systemic business problems through technology. Mentoring lead engineers. Publicly representing the company.
Key skills:
Gap analysis: skills to develop
To reach the next level you'll need to develop:
Builds the 3D asset import pipeline for the project. Optimizes models: polygon reduction, LOD, atlas textures. Works with PBR materials and shaders. Configures lightmapping and baking for AR/VR.
Fluently applies linear algebra in AR/VR development: dot/cross product, projection matrices, rotation interpolation (slerp). Solves spatial geometry problems: ray-casting, intersection tests. Understands the difference between Euler angles and quaternions.
Develops visionOS applications using RealityKit and SwiftUI. Implements spatial windows and volumes. Uses ARKit on visionOS for hand/eye tracking. Works with PolySpatial for Unity projects on visionOS.
Develops interactive AR content with animations and interactions. Optimizes 3D models for AR (polycount, textures, LOD). Uses Reality Composer Pro and Scene Understanding. Creates AR filters and effects for social platforms.
Confidently works with ARKit and ARCore for creating AR applications. Uses image/object tracking, plane detection, and light estimation. Implements persisted anchors and AR collaboration sessions. Configures ARFoundation for cross-platform AR development.
Profiles and optimizes VR/AR applications: CPU/GPU bottlenecks, memory. Uses RenderDoc for GPU analysis. Optimizes for mobile VR (Quest): LOD, occlusion culling, baked lighting. Monitors thermal throttling.
Optimizes rendering for VR: single-pass instanced, foveated rendering, fixed foveated. Works with URP/HDRP for VR. Develops shaders for AR (occlusion, shadow receiver). Optimizes draw calls and overdraw.
Optimizes end-to-end latency of VR/AR applications. Uses async time warp / reprojection. Minimizes input-to-render latency. Configures predictive tracking.
Implements world tracking with persistent anchors for stable AR positioning. Works with body tracking and hand tracking via ARKit/ARCore. Configures SLAM parameters for optimal tracking under various lighting conditions.
Optimizes applications for mobile VR Quest (draw calls, overdraw, shader complexity). Uses Meta Interaction SDK for advanced interactions. Implements the Passthrough API for mixed reality. Works with Meta App Lab for distribution.
Works with the OpenXR API directly for cross-platform XR development. Uses OpenXR extensions (hand tracking, eye tracking). Configures action-based input through the OpenXR Input System. Debugs OpenXR runtime issues.
Implements spatial computing for AR/VR: mesh reconstruction, spatial mapping, occlusion. Works with persistent spatial anchors and cloud anchors. Uses scene understanding for integrating virtual content with the real world.
Architects Unity project structure (MVC/ECS approaches). Works with Addressables for asset management. Configures URP/HDRP for rendering. Uses Unity Profiler for optimization. Develops Editor tools.
Develops on Unreal Engine using C++ and Blueprints. Works with Nanite and Lumen for visual quality. Configures VR rendering in UE5. Uses the Enhanced Input System.
Develops custom controller mappings for various VR devices. Implements advanced hand tracking with gesture recognition. Configures haptic feedback for controllers and hand tracking. Integrates Ultraleap for high-precision hand tracking.
Designs complex VR interfaces with haptic feedback. Implements physics-based interactions (kinematic and dynamic object manipulation). Creates custom interactors and interactables. Works with hand tracking for natural interaction.
Designs locomotion systems considering user comfort. Implements smooth locomotion with vignetting and other comfort mechanics. Configures roomscale tracking and guardian/boundary systems. Creates custom locomotion systems (climbing, swimming).
Minimizes GC pressure in VR: object pooling, struct vs class, NativeArray. Profiles memory via Unity Memory Profiler. Manages AR/VR object lifecycle to prevent leaks.