Firestorm logo

Staff Software Engineer, Embedded Linux Platform

Firestorm
Full-time
Remote
United States

Staff Software Engineer, Embedded Linux PlatformΒ 
Full-time / Remote or San Diego officeΒ 

Firestorm as a company grew out of the simple question: how does a US ally country with a relatively low defense budget deter an aggressor state entity with a vastly larger war chest? We’re building the very answer to that question, something we call β€œdemocratized deterrence.” Firestorm is a VC-backed, defense-meets-Silicon Valley technology company developing mission-adaptable aerial vehicles to put the power back into the hands of the operator. We aim to upend the current defense procurement cost paradigm by bringing world-class capabilities to bear at meaningfully lower costs.Β 

We are looking for a highly skilled and motivated Staff Software Engineer, Embedded Linux Platform to join our team, either remotely or at our San Diego office. In this role, you will be responsible for customizing and optimizing Ubuntu or Debian-based embedded Linux distributions for high-performance, real-time autonomous systems. Your expertise with NVIDIA Jetson platforms and JetPack SDK will be crucial in adapting and customizing Board Support Packages (BSPs), drivers, and software components to ensure seamless operation of mission-critical applications. You will focus on kernel customization, device tree configuration, Linux packaging systems (deb, snap), creating and managing package repositories, and integrating advanced hardware components such as cameras, sensors, and radios. This position requires deep knowledge of embedded Linux systems, OS and BSP bring-up, and experience optimizing GPU-accelerated applications.Β 

What You'll Be Doing:Β 

  • Configure, patch, and optimize the Linux kernel for specific embedded hardware platforms, including applying real-time enhancements using PREEMPT_RT patches. Lead OS bring-up processes on new hardware platforms, including BSP development, hardware initialization, and low-level debugging.Β 

  • Create and maintain device tree files to accurately represent hardware configurations.Β 

  • Integrate and customize bootloaders (e.g., U-Boot, GRUB) to meet platform requirements, including secure boot mechanisms. Apply security best practices across the software stack, including encrypted storage and secure communication protocols, to ensure compliance with industry standards.Β 

  • Create and manage custom Linux packages using deb and snap systems. Set up and maintain private package repositories for reliable deployment and management of software components. Automate packaging processes and maintain version control.Β 

  • Design and implement secure, reliable OTA update mechanisms using tools like Mender or Balena, developing fail-safe strategies with rollback capabilities to ensure system reliability during updates.Β 

  • Develop and maintain Docker containers for application deployment, testing, and development environments. Ensure consistency and scalability across platforms, optimizing container performance for resource-constrained embedded environments.Β 

  • Develop Linux services and applications to interface with system services, applications and aircraft avionics components.Β 

  • Profile and optimize system performance to meet real-time, low-latency requirements. Implement multi-threading, CPU affinity, and interrupt handling optimizations. Utilize tools like perf, strace, and ftrace for system analysis.Β 

  • Set up and maintain CI/CD pipelines using tools like Jenkins, Github Actions, or Azure DevOps for automated building, testing, and deployment.Β 

  • Offer guidance and mentorship to junior engineers. Lead technical discussions, code reviews, and architecture design sessions, promoting best practices in coding, testing, and documentation.Β 

  • Work closely with hardware engineers, system architects, and application developers to ensure seamless integration and operation of the embedded Linux platform. Participate in project planning and contribute to the technical roadmap.Β 

Minimum Qualifications:Β 

  • Bachelor's or advanced degree in Computer Science, Electrical Engineering, or a related field.Β 

  • 10+ years of experience in embedded Linux software development, focusing on OS customization, kernel development, and system integration.Β 

  • Extensive experience with Ubuntu or Debian for embedded devices, including customizing and optimizing distributions for specific hardware platforms using tools like debootstrap and live-build.Β 

  • Strong expertise with NVIDIA Jetson platforms and JetPack SDK, including adapting JetPack components, BSP customization, driver development, and optimizing GPU-accelerated applications using CUDA, cuDNN, and TensorRT.Β 

  • Proficiency in C/C++ programming, with strong knowledge of Linux internals and system programming.Β 

  • Expertise in Linux kernel configuration and development, including real-time extensions (PREEMPT_RT) and hardware interfacing.Β 

  • Strong proficiency in device tree development and hardware-software integration for complex platforms.Β 

  • Extensive experience with Linux packaging systems (deb, snap): creating custom packages, managing private APT repositories, and automating packaging and deployment processes.Β 

  • Proven expertise in implementing OTA update systems with tools like Mender or Balena, designing robust update strategies with rollback mechanisms.Β 

  • Experience in OS and BSP bring-up on new hardware platforms, including hardware initialization and low-level debugging.Β 

  • Knowledge of build automation tools like CMake or GNU Autotools.Β 

  • Expertise in TCP/IP and embedded networking.Β 

  • Knowledge of security best practices in embedded systems: encryption, authentication mechanisms, and system hardening.Β 

  • U.S. citizenship is required due to the nature of the work and the need to obtain and maintain a U.S. Government security clearance.Β 

Preferred Qualifications:Β 

  • Experience with embedded build systems like Yocto Project or Buildroot, and adapting Ubuntu/Debian for embedded systems.Β 

  • Experience in autonomous systems, robotics, or IoT, emphasizing real-time performance and reliability.Β 

  • Deep understanding of bootloader customization, secure boot processes, and ARMTrusted Firmware: cryptographic integrity checks and key management.Β 

  • Experience with Docker containerization: creating, managing, and deploying Docker images and containers for embedded applications.Β 

  • Experience with AI/ML frameworks and optimizing inference engines on embedded platforms.Β 

  • Strong scripting skills in Python and Bash for automation and tooling.Β 

  • Experience with virtualization technologies (e.g., KVM, QEMU) for embedded environments.Β 

  • Strong knowledge of communication protocols and driver development: CAN, SPI, I2C, UART.Β 

  • Experience with ROS 2 (Robot Operating System 2) and DDS (Data Distribution Service).Β 

  • Experience with filesystem optimization for embedded systems (e.g., SquashFS, UBIFS).Β 

  • Familiarity with software-in-the-loop (SITL) and hardware-in-the-loop (HITL) integrations.Β 

What Makes You a Good Fit:Β 

  • Strong analytical and problem-solving skills, capable of tackling complex challenges in embedded Linux development.Β 

  • Excellent communication and teamwork abilities, collaborating effectively with multidisciplinary teams.Β 

  • Ability to work independently and drive projects to completion, demonstrating initiative and leadership.Β 

  • Passion for innovation and advancing technology through cutting-edge embedded solutions.Β 

  • Adaptability to rapidly changing technologies, operational demands, and project requirements.Β 

  • Commitment to quality, with meticulous attention to detail in development, testing, and documentation.Β 

  • Proactive in learning and applying new technologies, methodologies, and best practices.Β 

  • Enthusiasm for embedded systems and real-time, high-performance computing environments.Β 

Bonus Points:Β 

  • Contributions to open-source projects related to embedded Linux, kernel development, or system optimization.Β 

  • Experience with advanced security implementations: secure elements, Trusted Platform Modules (TPMs), hardware security modules.Β 

  • Familiarity with container orchestration tools like Docker Compose or Kubernetes in embedded contexts.Β 

  • Experience with hardware debugging tools: JTAG debuggers, oscilloscopes, logic analyzers.Β 

  • Knowledge of real-time networking protocols and optimizing network stacks for embedded systems.Β 

Β 
Firestorm is committed to hiring and retaining a diverse workforce. We are proud to be an Equal Opportunity/Affirmative Action Employer, making decisions without regard to race, color, religion, creed, sex, sexual orientation, gender identity, marital status, national origin, age, veteran status, disability, or any other protected class. U.S. Citizenship is required for all positions with a government clearance and certain other restricted positions. Our culture at Firestorm fosters collaboration, respect, and trust to empower passionate people to do their best work.Β  We offer a competitive salary, comprehensive benefits, and opportunities for career growth.Β 

As a Staff Software Engineer, Embedded Linux Platform, you will play a pivotal role in developing and enhancing our advanced autonomous systems, contributing directly to the capabilities of our current and next-generation platforms. If you are a seasoned professional with profound expertise in embedded Linux development, OS and BSP bring-up, and a passion for pushing the boundaries of real-time, high-performance computing, we invite you to join our team and contribute to our mission of redefining autonomous technology.Β 

Salary range: up to $200,000.Β 

To apply, please fill out the online application and attach your resume.Β  Please include your LinkedIn profile link. Β 
Β 
[emailΒ protected]Β