Demo

Staff Software Engineer, Embedded Linux Platform

Firestorm
San Diego, CA Full Time
POSTED ON 1/14/2025
AVAILABLE BEFORE 3/14/2025

Job Details

Job Description

Job Description

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.

careers@launchfirestorm.com

Powered by JazzHR

nfq8n7aO63

Employers have access to artificial intelligence language tools (“AI”) that help generate and enhance job descriptions and AI may have been used to create this description. The position description has been reviewed for accuracy and Dice believes it to correctly reflect the job opportunity.

Salary : $200,000

If your compensation planning software is too rigid to deploy winning incentive strategies, it’s time to find an adaptable solution. Compensation Planning
Enhance your organization's compensation strategy with salary data sets that HR and team managers can use to pay your staff right. Surveys & Data Sets

What is the career path for a Staff Software Engineer, Embedded Linux Platform?

Sign up to receive alerts about other jobs on the Staff Software Engineer, Embedded Linux Platform career path by checking the boxes next to the positions that interest you.
Income Estimation: 
$123,167 - $152,295
Income Estimation: 
$146,673 - $180,130
Income Estimation: 
$80,479 - $90,779
Income Estimation: 
$90,609 - $105,383
Income Estimation: 
$90,609 - $105,383
Income Estimation: 
$117,524 - $131,245
Income Estimation: 
$117,524 - $131,245
Income Estimation: 
$145,630 - $167,634
Income Estimation: 
$145,630 - $167,634
Income Estimation: 
$162,729 - $194,659
View Core, Job Family, and Industry Job Skills and Competency Data for more than 15,000 Job Titles Skills Library

Job openings at Firestorm

Firestorm
Hired Organization Address San Diego, CA Full Time
Job Description Job Description Business Development Manager – Air Force Programs Location : Remote (National Capital Re...
Firestorm
Hired Organization Address San Diego, CA Full Time
Senior Robotics Engineer (Swarm) Location : onsite in San Diego, CA Travel : as needed to support flight testing and dem...

Not the job you're looking for? Here are some other Staff Software Engineer, Embedded Linux Platform jobs in the San Diego, CA area that may be a better fit.

Software Engineer, Embedded Linux

TrellisWare Technologies, Inc, San Diego, CA

Staff Embedded Software Engineer

Cypress HCM, San Diego, CA

AI Assistant is available now!

Feel free to start your new journey!