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

Current

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:

App Store Optimization (ASO) Need
Clean Architecture Need
Core Data & SwiftData Need
Data Fetching Need
Mobile CI/CD Need
Mobile Performance Need
Mobile Security Need
Navigation & Deep Links Need
Performance Budgets Need
React Core Need
React Native Need
State Management Need
Web Accessibility Need
Mobile Testing Need

Middle

2-5 years

Next

Responsibility: Independently developing features from decomposition to deployment. Participating in code review. Optimizing performance. Mentoring junior developers. Taking part in architecture discussions.

Key skills:

App Store Optimization (ASO) Need
Clean Architecture Need
Core Data & SwiftData Need
Data Fetching Need
E2E Testing Need
JWT / OAuth2 / OIDC Need
Mobile CI/CD Need
Mobile Performance Need
Mobile Security Need
Navigation & Deep Links Need
Performance Budgets Need
React Core Need
React Native Need
State Management Need
Web Accessibility Need
Mobile Testing Need
WebSocket API Design Need

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:

App Store Optimization (ASO) Need
Clean Architecture Need
Core Data & SwiftData Need
Data Fetching Need
E2E Testing Need
GraphQL Design Need
JWT / OAuth2 / OIDC Need
Mobile CI/CD Need
Mobile Performance Need
Mobile Security Need
Navigation & Deep Links Need
Performance Budgets Need
React Core Need
React Native Need
State Management Need
Algorithms & Complexity Need
API Documentation Need
Web Accessibility Need
Mobile Testing Need
Secure Coding Practices Need
WebSocket API Design Need
Type Safety & Type Systems Need

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:

App Store Optimization (ASO) Need
Clean Architecture Need
Core Data & SwiftData Need
Data Fetching Need
E2E Testing Need
GraphQL Design Need
JWT / OAuth2 / OIDC Need
Mobile CI/CD Need
Mobile Performance Need
Mobile Security Need
Navigation & Deep Links Need
Performance Budgets Need
React Core Need
React Native Need
State Management Need
Algorithms & Complexity Need
Async Programming Need
API Documentation Need
Web Accessibility Need
Code Quality & Refactoring Need
Mobile Testing Need
Secure Coding Practices Need
WebSocket API Design Need
Type Safety & Type Systems Need

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:

App Store Optimization (ASO) Need
Clean Architecture Need
Core Data & SwiftData Need
Data Fetching Need
E2E Testing Need
GraphQL Design Need
JWT / OAuth2 / OIDC Need
Mobile CI/CD Need
Mobile Performance Need
Mobile Security Need
Navigation & Deep Links Need
Performance Budgets Need
React Core Need
React Native Need
State Management Need
Algorithms & Complexity Need
Async Programming Need
API Documentation Need
Web Accessibility Need
Code Quality & Refactoring Need
Mobile Testing Need
Secure Coding Practices Need
WebSocket API Design Need
Type Safety & Type Systems Need

Gap analysis: skills to develop

To reach the next level you'll need to develop:

App Store Optimization (ASO)

Independently manages ASO for React Native apps on both platforms: differentiates keyword strategies for App Store vs Google Play, optimizes store listings for platform-specific conversion, runs A/B tests on creatives. Understands cross-platform ranking differences and review workflows.

Clean Architecture

Applies Clean Architecture in React Native — Domain layer (entities, use cases), Data layer (repositories, API), Presentation layer (screens, components). Implements Dependency Inversion through service abstractions. Isolates platform-specific code via adapters for testability.

Core Data & SwiftData

Independently implements complex screens with Core Data and SwiftData. Optimizes performance and memory consumption.

Data Fetching

Configures TanStack Query for the mobile app — staleTime, gcTime, retry, refetchOnReconnect. Implements pagination with useInfiniteQuery for infinite lists. Applies useMutation with optimistic updates. Handles offline scenarios with persistQueryClient and MMKV.

E2E Testing

Writes E2E tests with Detox for critical user flows — auth, main CTAs, navigation. Configures Detox for iOS and Android. Handles async waits — waitFor, animations. Integrates Detox into CI/CD, manages emulators in GitHub Actions.

JWT / OAuth2 / OIDC

Implements full OAuth2 flow in React Native — PKCE for mobile apps, refresh tokens with auto-renewal via interceptors. Integrates Social Login (Google, Apple Sign-In). Manages sessions — auto logout, token revocation, multi-device sessions.

Mobile CI/CD

Independently implements complex screens with Mobile CI/CD. Optimizes performance and memory consumption.

Mobile Performance

Independently implements complex screens with Mobile Performance. Optimizes performance and memory consumption.

Mobile Security

Independently implements complex screens with Mobile Security. Optimizes performance and memory consumption.

Navigation & Deep Links

Independently implements complex screens with Navigation and Deep Links. Optimizes performance and memory consumption.

Performance Budgets

Configures performance budgets for React Native — limits on JS bundle size, cold start time, memory footprint. Profiles with Hermes profiler and Systrace. Optimizes images with proper resolutions. Implements FPS monitoring via InteractionManager and performance marks.

React Core

Implements complex mobile components bridging React core patterns with native platform features. Optimizes FlatList rendering and manages state with Redux or Zustand. Tests components with Jest and React Native Testing Library.

React Native

Independently implements complex screens with React Native. Optimizes performance and memory consumption.

State Management

Architects state with Zustand — slice separation, subscriptions, middleware. Integrates TanStack Query for server state, Zustand/Jotai for client state. Implements persist with MMKV for offline access. Optimizes re-renders through selectors and shallow comparison.

Web Accessibility

Implements comprehensive accessibility for complex screens — accessibilityState, accessibilityValue, proper focus order. Configures accessible navigation with React Navigation. Tests with real screen readers and creates accessibility checklists for mobile apps.

Mobile Testing

Tests React Native applications on real devices and emulators — verifies platform-specific iOS/Android behavior. Configures debug tools — Flipper, React DevTools. Conducts manual testing — deep links, push notifications, background/foreground transitions.

WebSocket API Design

Implements robust WebSocket integration in React Native — automatic reconnection, heartbeat, exponential backoff. Manages connection state during app background/foreground transitions. Types WebSocket messages via TypeScript. Integrates Socket.IO for complex scenarios.