Were looking for an IoT Embedded Linux engineer to design, build, and own the software stack that powers our edge devices in the field. Youll craft resilient Linux-based systems (from bootloader to application), ensure secure and reliable connectivity to the cloud, and work closely with hardware, manufacturing, and backend teams to deliver production-ready devices at scale.
A Day In Your Life :
Own the embedded Linux platform: BSP, kernel configuration, device tree, bootloaders (e.g., U-Boot), systemd services, and startup/upgrade flows.
Develop user-space applications using object-oriented principles (C++/Go/Rust/Similar) to implement core device logic and features, leveraging available libraries and frameworks.
Build production images using Yocto or Buildroot, manage layers/recipes, and maintain reproducible builds for multiple hardware variants.
Implement secure OTA updates (e.g., Mender, RAUC, SWUpdate), with A/B partitions, rollback, and signing-targeting zero‑touch fleet upgrades.
Harden devices for security: filesystem permissions, sandboxing (e.g., AppArmor/SELinux), secure boot/TPM, key management, CVE tracking, and update policies.
Deliver robust connectivity: Ethernet/Wi‑Fi/Cellular (LTE), BLE gateway roles, MQTT/HTTPS, VPN/WireGuard; optimize reliability, roaming, and reconnection logic.
Instrument and debug in the field: journald, core dumps, remote shell, metrics/health checks; trace with strace/perf/tcpdump and diagnose with Wireshark.
Collaborate across disciplines: work with HW, manufacturing, QA, backend, and product to define requirements, provisioning flows, and factory test automation.
Raise the bar on quality: CI/CD for cross‑compilation, unit/integration tests, static analysis, reproducible builds, and fleet-safe release practices.
Requirements: 3-5 years of Embedded Linux experience shipping devices to production at scale.
Strong proficiency in object-oriented programming (OOP) principles and multi-threading experience, with hands-on skills in C/C++/GO/Rust/Similar in user space (some kernel familiarity) and scripting (Bash, Python); expertise with build systems (CMake/Make, BitBake).
Hands-on with Buildroot or Yocto Project (preferably Buildroot), including custom layers, recipes, and SDKs.
Solid understanding of Linux kernel basics, device trees, drivers/BSP integration, bootloaders (U‑Boot), and systemd service design.
Networking fundamentals: TCP/IP, DHCP/DNS, TLS, MQTT/HTTPS, VPN; experience with Wi‑Fi/cellular modules and AT command stacks is a plus.
Proven experience with OTA frameworks, partitioning strategies, and rollback-safe update flows.
Git fluency and experience with CI (GitHub Actions, GitLab CI or similar) for cross builds and test automation.
BSc in EE/CE/CS (or equivalent practical experience).
Nice to have
Device security: secure boot, TPM, disk encryption, SBOM/CVE remediation workflows.
Real-time and performance: PREEMPT_RT, scheduling, latency tuning, power management.
Edge packaging: containers (Docker/Podman) on ARM, OCI/CRUN, rootless strategies.
Cloud & IoT: AWS IoT/Azure IoT, device identity/provisioning, fleet management tooling.
Language breadth: Go or Rust for system services; protobuf/gRPC.
Manufacturing flows: factory provisioning, E2E traceability, and end-of-line testing.
This position is open to all candidates.