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:

BLE & Wireless: Zigbee, LoRa, WiFi Need
C for Embedded Need
C++ for Embedded Need
DNS Deep Dive Need
Edge Computing for IoT Need
Embedded CI/CD Need
Embedded Debugging: JTAG, SWD Need
GPIO, ADC, DAC Need
IoT Cloud Platforms: AWS IoT, Azure IoT Need
IoT Security Need
MicroPython / CircuitPython Need
MQTT Protocol Need
RTOS Fundamentals: FreeRTOS, Zephyr Need
SPI / I2C / UART Protocols Need
TCP/IP Deep Dive Need
WebSocket API Design 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:

BLE & Wireless: Zigbee, LoRa, WiFi Need
C for Embedded Need
C++ for Embedded Need
DNS Deep Dive Need
Edge Computing for IoT Need
Embedded CI/CD Need
Embedded Debugging: JTAG, SWD Need
GPIO, ADC, DAC Need
HTTP/2 & HTTP/3 QUIC Need
IoT Cloud Platforms: AWS IoT, Azure IoT Need
IoT Security Need
MicroPython / CircuitPython Need
MQTT Protocol Need
RTOS Fundamentals: FreeRTOS, Zephyr Need
SPI / I2C / UART Protocols Need
TCP/IP Deep Dive Need
Webhooks & Integrations Need
WebSocket API Design Need
Memory Management 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:

BLE & Wireless: Zigbee, LoRa, WiFi Need
C for Embedded Need
C++ for Embedded Need
DNS Deep Dive Need
Edge Computing for IoT Need
Embedded CI/CD Need
Embedded Debugging: JTAG, SWD Need
GPIO, ADC, DAC Need
HTTP/2 & HTTP/3 QUIC Need
IoT Cloud Platforms: AWS IoT, Azure IoT Need
IoT Security Need
MicroPython / CircuitPython Need
MQTT Protocol Need
RTOS Fundamentals: FreeRTOS, Zephyr Need
SPI / I2C / UART Protocols Need
TCP/IP Deep Dive Need
Terraform Need
Webhooks & Integrations Need
Algorithms & Complexity Need
Multithreading Need
Network Fundamentals Need
WebSocket API Design Need
Memory Management 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:

AWS Need
BLE & Wireless: Zigbee, LoRa, WiFi Need
C for Embedded Need
C++ for Embedded Need
DNS Deep Dive Need
Edge Computing for IoT Need
Embedded CI/CD Need
Embedded Debugging: JTAG, SWD Need
GPIO, ADC, DAC Need
HTTP/2 & HTTP/3 QUIC Need
IoT Cloud Platforms: AWS IoT, Azure IoT Need
IoT Security Need
MicroPython / CircuitPython Need
MQTT Protocol Need
RTOS Fundamentals: FreeRTOS, Zephyr Need
SPI / I2C / UART Protocols Need
TCP/IP Deep Dive Need
Terraform Need
Webhooks & Integrations Need
Algorithms & Complexity Need
Async Programming Need
Code Quality & Refactoring Need
Multithreading Need
Network Fundamentals Need
WebSocket API Design Need
Memory Management 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:

AWS Need
BLE & Wireless: Zigbee, LoRa, WiFi Need
C for Embedded Need
C++ for Embedded Need
DNS Deep Dive Need
Edge Computing for IoT Need
Embedded CI/CD Need
Embedded Debugging: JTAG, SWD Need
GPIO, ADC, DAC Need
HTTP/2 & HTTP/3 QUIC Need
IoT Cloud Platforms: AWS IoT, Azure IoT Need
IoT Security Need
MicroPython / CircuitPython Need
MQTT Protocol Need
RTOS Fundamentals: FreeRTOS, Zephyr Need
SPI / I2C / UART Protocols Need
TCP/IP Deep Dive Need
Terraform Need
Webhooks & Integrations Need
Algorithms & Complexity Need
Async Programming Need
Code Quality & Refactoring Need
Multithreading Need
Network Fundamentals Need
WebSocket API Design Need
Memory Management Need

Gap analysis: skills to develop

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

BLE & Wireless: Zigbee, LoRa, WiFi

Develops custom BLE GATT services for IoT devices. Optimizes connection interval and MTU for balancing power consumption and throughput. Implements BLE mesh.

C for Embedded

Develops peripheral drivers and interrupt handlers in C for IoT devices. Uses DMA, timers, and watchdog. Optimizes RAM usage down to 64 KB.

C++ for Embedded

Applies C++17 in embedded IoT with constraints: no exceptions, no RTTI, minimal heap. Develops type-safe peripheral APIs using templates and constexpr.

DNS Deep Dive

Configures DNS strategies for IoT: DNS-over-TLS for security, failover DNS, caching on IoT gateway. Diagnoses DNS issues in IoT networks.

Edge Computing for IoT

Deploys edge computing on IoT gateways: AWS Greengrass, Azure IoT Edge. Implements local data processing and filtering. Synchronizes edge-cloud state.

Embedded CI/CD

Configures CI/CD pipeline for IoT firmware: cross-compilation, static analysis, flash and testing on real hardware. Automates OTA artifact generation.

Embedded Debugging: JTAG, SWD

Applies JTAG/SWD for IoT firmware debugging. Uses Saleae logic analyzer for protocol diagnostics. Profiles ISR and RTOS task execution time.

GPIO, ADC, DAC

Applies PWM for motor control and dimming in IoT devices. Calibrates ADC with reference voltage. Uses DAC for analog signal generation.

HTTP/2 & HTTP/3 QUIC

Applies HTTP/2 server push and multiplexing for IoT gateways. Optimizes HTTP communication for constrained networks. Configures gRPC over HTTP/2 for device management.

IoT Cloud Platforms: AWS IoT, Azure IoT

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.

IoT Security

Implements comprehensive IoT security: secure boot, encrypted firmware, device attestation. Conducts threat modeling of IoT devices. Uses hardware security modules.

MicroPython / CircuitPython

Develops production-ready IoT devices in MicroPython. Manages power consumption (deep sleep), uses asyncio for multitasking. Implements OTA script updates.

MQTT Protocol

Designs MQTT topic hierarchy for IoT projects. Uses MQTT 5.0 features: shared subscriptions, message expiry. Configures TLS and client certificates for security.

RTOS Fundamentals: FreeRTOS, Zephyr

Applies FreeRTOS/Zephyr for complex IoT systems with task priorities, mutexes, and event groups. Profiles stack usage and prevents priority inversion.

SPI / I2C / UART Protocols

Develops drivers for SPI/I2C/UART devices in IoT projects. Configures DMA for high-speed SPI exchange. Diagnoses bus issues with Saleae/Wireshark.

TCP/IP Deep Dive

Applies TCP/IP optimizations for IoT: keep-alive, CoAP over UDP, DTLS. Diagnoses IoT network issues via Wireshark. Configures mDNS for device discovery.

Webhooks & Integrations

Designs webhook system for IoT platform: device event subscriptions, retry with exponential backoff, signature verification. Ensures reliable delivery.

WebSocket API Design

Designs WebSocket API for IoT: rooms/channels for device groups, heartbeat, reconnection logic. Ensures scalability through Redis pub/sub.

Memory Management

Optimizes IoT firmware memory layout: linker scripts, memory pools, stack sizing. Profiles memory usage through compiler reports and runtime monitoring.