The Embedded Linux Engineer will contribute to the development, modernization, and sustainment of mission-critical embedded networking and retransmission devices. This role offers hands-on involvement across the embedded software lifecycle, from Linux image creation and platform integration to networking services, device management, testing, and deployment. You will help maintain an existing OpenWrt-based solution while supporting its migration to next-generation ARM-based hardware and an evolving Linux architecture. Working with technologies such as Python, C/C++, Bash, Buildroot, and Linux networking tools, you will develop reliable, secure, and maintainable software. You will collaborate with software, hardware, systems engineering, cybersecurity, and quality assurance teams to deliver robust capabilities in a technically challenging environment. This fully remote, individual-contributor opportunity is ideal for an engineer who enjoys solving complex integration problems and contributing to products that support critical operational missions.
Embedded Linux Development: Design, develop, integrate, debug, and maintain Linux-based software for embedded networking and retransmission devices throughout the software development lifecycle.
Platform Sustainment and Modernization: Maintain and enhance an existing OpenWrt-based firmware solution, including Linux image configuration, custom packages, package feeds, system services, first-boot behavior, and device configuration.
Next-Generation Hardware Migration: Support the migration of existing device capabilities to next-generation ARM-based hardware and a Linux-based architecture, contributing to development tasks under established technical direction.
Linux Image Creation and Integration: Develop and maintain image-building, packaging, provisioning, deployment, update, and release workflows using embedded Linux build systems and related tools.
Low-Level Platform Integration: Assist with bootloader configuration, Linux kernel integration, board-support packages, cross-compilation, device trees, and embedded Linux image development.
Software Development and Automation: Build and maintain software, scripts, and automation tools using Python, Bash, C, C++, and other appropriate programming languages.
Networking and Device Management: Implement, maintain, and troubleshoot networking functionality, including interface configuration, routing, DNS, DHCP, firewalling, Wi-Fi, cellular or modem integration, and secure communications.
API and User Interface Development: Develop and maintain REST APIs, web-based configuration interfaces, and device-management capabilities that enable users to configure network settings and device behavior.
Testing and Quality Assurance: Create and maintain unit, integration, system, simulation, and hardware-connected tests to validate functionality, reliability, and performance across embedded platforms.
CI/CD and Release Engineering: Contribute to GitLab merge-request reviews, automated build and test pipelines, release processes, build validation, and reproducible-build practices.
Cybersecurity and Vulnerability Management: Support secure software development through vulnerability remediation, certificate management, authentication and authorization, software-update integrity, dependency management, and CVE analysis.
Documentation and Technical Collaboration: Maintain design specifications, build instructions, API documentation, test procedures, and operational guides while collaborating with hardware, systems, cybersecurity, quality assurance, and product teams.
Continuous Improvement: Identify and resolve technical issues spanning embedded Linux, networking, device configuration, software integration, testing, and security, contributing to reliable and maintainable product capabilities.