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:
Develops custom BLE GATT services for IoT devices. Optimizes connection interval and MTU for balancing power consumption and throughput. Implements BLE mesh.
Develops peripheral drivers and interrupt handlers in C for IoT devices. Uses DMA, timers, and watchdog. Optimizes RAM usage down to 64 KB.
Applies C++17 in embedded IoT with constraints: no exceptions, no RTTI, minimal heap. Develops type-safe peripheral APIs using templates and constexpr.
Configures DNS strategies for IoT: DNS-over-TLS for security, failover DNS, caching on IoT gateway. Diagnoses DNS issues in IoT networks.
Deploys edge computing on IoT gateways: AWS Greengrass, Azure IoT Edge. Implements local data processing and filtering. Synchronizes edge-cloud state.
Configures CI/CD pipeline for IoT firmware: cross-compilation, static analysis, flash and testing on real hardware. Automates OTA artifact generation.
Applies JTAG/SWD for IoT firmware debugging. Uses Saleae logic analyzer for protocol diagnostics. Profiles ISR and RTOS task execution time.
Applies PWM for motor control and dimming in IoT devices. Calibrates ADC with reference voltage. Uses DAC for analog signal generation.
Applies HTTP/2 server push and multiplexing for IoT gateways. Optimizes HTTP communication for constrained networks. Configures gRPC over HTTP/2 for device management.
Configures IoT rules (AWS IoT Rules Engine) for routing data to DynamoDB/S3/Lambda. Implements device provisioning and fleet indexing. Manages OTA updates via cloud.
Implements comprehensive IoT security: secure boot, encrypted firmware, device attestation. Conducts threat modeling of IoT devices. Uses hardware security modules.
Develops production-ready IoT devices in MicroPython. Manages power consumption (deep sleep), uses asyncio for multitasking. Implements OTA script updates.
Designs MQTT topic hierarchy for IoT projects. Uses MQTT 5.0 features: shared subscriptions, message expiry. Configures TLS and client certificates for security.
Applies FreeRTOS/Zephyr for complex IoT systems with task priorities, mutexes, and event groups. Profiles stack usage and prevents priority inversion.
Develops drivers for SPI/I2C/UART devices in IoT projects. Configures DMA for high-speed SPI exchange. Diagnoses bus issues with Saleae/Wireshark.
Applies TCP/IP optimizations for IoT: keep-alive, CoAP over UDP, DTLS. Diagnoses IoT network issues via Wireshark. Configures mDNS for device discovery.
Designs webhook system for IoT platform: device event subscriptions, retry with exponential backoff, signature verification. Ensures reliable delivery.
Designs WebSocket API for IoT: rooms/channels for device groups, heartbeat, reconnection logic. Ensures scalability through Redis pub/sub.
Optimizes IoT firmware memory layout: linker scripts, memory pools, stack sizing. Profiles memory usage through compiler reports and runtime monitoring.