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:

Code Review Need
Desktop App Packaging: MSI, DMG, AppImage Need
Electron Core Need
Electron Security: Sandbox, Preload Need
Git Advanced Need
IPC: Inter-Process Communication Need
MVVM Pattern Need
React Core Need
State Management Need
Unit Testing Need
Async Programming Need
Code Quality & Refactoring Need
Design Patterns Need
OOP & SOLID Principles Need
Data Structures 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:

Auto-Update Mechanisms Need
Code Review Need
Desktop App Packaging: MSI, DMG, AppImage Need
Electron Core Need
Electron Security: Sandbox, Preload Need
Git Advanced Need
IPC: Inter-Process Communication Need
MVVM Pattern Need
React Core Need
State Management Need
Unit Testing Need
Algorithms & Complexity Need
Async Programming Need
Code Quality & Refactoring Need
Design Patterns Need
Secure Coding Practices Need
OOP & SOLID Principles Need
Data Structures 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:

Auto-Update Mechanisms Need
Code Review Need
Desktop App Packaging: MSI, DMG, AppImage Need
Electron Core Need
Electron Security: Sandbox, Preload Need
Git Advanced Need
GitHub Actions / GitLab CI Need
IPC: Inter-Process Communication Need
MVVM Pattern Need
Node.js Frameworks Need
OWASP & Application Security Need
React Core Need
State Management Need
Unit Testing Need
Algorithms & Complexity Need
Async Programming Need
Code Quality & Refactoring Need
Multithreading Need
Design Patterns Need
Secure Coding Practices Need
OOP & SOLID Principles Need
Data Structures 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:

Auto-Update Mechanisms Need
Code Review Need
Desktop App Packaging: MSI, DMG, AppImage Need
Electron Core Need
Electron Security: Sandbox, Preload Need
Git Advanced Need
GitHub Actions / GitLab CI Need
IPC: Inter-Process Communication Need
MVVM Pattern Need
Node.js Frameworks Need
Offline-First & Local Storage Need
OWASP & Application Security Need
React Core Need
REST API Design Need
State Management Need
Unit Testing Need
Algorithms & Complexity Need
Async Programming Need
Integration Testing Need
Code Quality & Refactoring Need
Multithreading Need
Design Patterns Need
Secure Coding Practices Need
OOP & SOLID Principles Need
Data Structures 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:

Auto-Update Mechanisms Need
Code Review Need
Desktop App Packaging: MSI, DMG, AppImage Need
Electron Core Need
Electron Security: Sandbox, Preload Need
Git Advanced Need
GitHub Actions / GitLab CI Need
IPC: Inter-Process Communication Need
MVVM Pattern Need
Node.js Frameworks Need
Offline-First & Local Storage Need
OWASP & Application Security Need
React Core Need
REST API Design Need
State Management Need
Unit Testing Need
Algorithms & Complexity Need
Async Programming Need
Integration Testing Need
Code Quality & Refactoring Need
Multithreading Need
Design Patterns Need
Secure Coding Practices Need
OOP & SOLID Principles Need
Data Structures Need
Type Safety & Type Systems Need

Gap analysis: skills to develop

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

Auto-Update Mechanisms

Implements auto-update through electron-updater with S3/generic server. Configures delta updates, staging updates. Shows download progress and release notes in UI. Works with update channels.

Code Review

Conducts code review for TypeScript/Electron. Checks security (IPC safety, CSP), performance, TypeScript correctness. Reviews React components and CSS.

Desktop App Packaging: MSI, DMG, AppImage

Configures electron-builder with custom targets (NSIS, DMG, snap, flatpak). Optimizes bundle size through asar unpacking rules. Signs binaries for Windows (Authenticode) and macOS (Apple Developer ID).

Electron Core

Independently develops Electron applications with TypeScript. Manages lifecycle (app events, window management). Configures Tray, Menu, dialog API. Works with protocol handlers and deep links.

Electron Security: Sandbox, Preload

Configures sandbox mode for renderer processes. Implements permission handling (media, geolocation). Validates IPC messages. Configures webRequest for blocking dangerous URLs. Audits npm dependencies.

Git Advanced

Applies Git rebase, cherry-pick, bisect. Configures Git hooks through Husky (lint-staged, type-check). Works with Git LFS for native module binaries. Resolves merge conflicts in package-lock.json.

IPC: Inter-Process Communication

Develops typed IPC through TypeScript interfaces. Implements streaming through MessagePort. Uses SharedArrayBuffer for high-performance data sharing. Manages multiple BrowserWindows through IPC.

MVVM Pattern

Applies state management as ViewModel layer. Organizes navigation through React Router. Implements separation of concerns: IPC layer, business logic, UI components. Tests ViewModel separately.

React Core

Develops React UI for Electron with TypeScript strict mode. Uses React.lazy for code splitting. Implements virtualization (react-window) for large lists. Applies React.memo and useMemo for optimization.

State Management

Applies state management tools. Synchronizes state between main and renderer through IPC. Implements persistence middleware. Works with optimistic updates.

Unit Testing

Structures tests for Electron: main process, renderer, shared. Mocks electron module through jest-electron. Introduces coverage through c8/istanbul. Tests IPC handlers.

Algorithms & Complexity

Optimizes algorithms for Electron: list virtualization, debounce/throttle, efficient search. Profiles through Chrome DevTools Performance. Implements efficient tree traversal for file browser.

Async Programming

Applies async patterns: Promise.all for parallel operations, AsyncIterator for streaming, AbortController for cancellation. Implements async queue for rate limiting. Handles unhandled rejections.

Code Quality & Refactoring

Configures strict TypeScript (strict: true, noUncheckedIndexedAccess). Uses ESLint plugin for Electron security rules. Introduces Husky pre-commit hooks. Applies conventional commits.

Design Patterns

Implements patterns for Electron: Mediator for IPC, Repository for data access, Strategy for platform-specific code. Applies Builder for complex configuration. Uses Proxy for IPC abstraction.

Secure Coding Practices

Applies secure coding: crypto for encryption, path validation for file access, IPC message validation. Configures TypeScript strict for null safety. Uses ESLint security plugins.

OOP & SOLID Principles

Designs classes following SOLID in TypeScript. Uses DI through constructor injection (TSyringe/InversifyJS). Applies composition over inheritance. Understands mixins in TypeScript.

Data Structures

Creates custom data structures for Electron: immutable state (Immer), tree structures for file browser, LRU cache. Uses SharedArrayBuffer for cross-thread data. Works with Protocol Buffers.