Staff Software Engineer, Embedded Linux Platform

Remote
Full Time
Experienced

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] 

Share

Apply for this position

Required*
Apply with Indeed
We've received your resume. Click here to update it.
Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or Paste resume

Paste your resume here or Attach resume file

To comply with government Equal Employment Opportunity and/or Affirmative Action reporting regulations, we are requesting (but NOT requiring) that you enter this personal data. This information will not be used in connection with any employment decisions, and will be used solely as permitted by state and federal law. Your voluntary cooperation would be appreciated. Learn more.

Invitation for Job Applicants to Self-Identify as a U.S. Veteran
  • A “disabled veteran” is one of the following:
    • a veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be entitled to compensation) under laws administered by the Secretary of Veterans Affairs; or
    • a person who was discharged or released from active duty because of a service-connected disability.
  • A “recently separated veteran” means any veteran during the three-year period beginning on the date of such veteran's discharge or release from active duty in the U.S. military, ground, naval, or air service.
  • An “active duty wartime or campaign badge veteran” means a veteran who served on active duty in the U.S. military, ground, naval or air service during a war, or in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.
  • An “Armed forces service medal veteran” means a veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated in a United States military operation for which an Armed Forces service medal was awarded pursuant to Executive Order 12985.
Veteran status



Voluntary Self-Identification of Disability
Voluntary Self-Identification of Disability Form CC-305
OMB Control Number 1250-0005
Expires 04/30/2026
Why are you being asked to complete this form?

We are a federal contractor or subcontractor. The law requires us to provide equal employment opportunity to qualified people with disabilities. We have a goal of having at least 7% of our workers as people with disabilities. The law says we must measure our progress towards this goal. To do this, we must ask applicants and employees if they have a disability or have ever had one. People can become disabled, so we need to ask this question at least every five years.

Completing this form is voluntary, and we hope that you will choose to do so. Your answer is confidential. No one who makes hiring decisions will see it. Your decision to complete the form and your answer will not harm you in any way. If you want to learn more about the law or this form, visit the U.S. Department of Labor’s Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

How do you know if you have a disability?

A disability is a condition that substantially limits one or more of your “major life activities.” If you have or have ever had such a condition, you are a person with a disability. Disabilities include, but are not limited to:

  • Alcohol or other substance use disorder (not currently using drugs illegally)
  • Autoimmune disorder, for example, lupus, fibromyalgia, rheumatoid arthritis, HIV/AIDS
  • Blind or low vision
  • Cancer (past or present)
  • Cardiovascular or heart disease
  • Celiac disease
  • Cerebral palsy
  • Deaf or serious difficulty hearing
  • Diabetes
  • Disfigurement, for example, disfigurement caused by burns, wounds, accidents, or congenital disorders
  • Epilepsy or other seizure disorder
  • Gastrointestinal disorders, for example, Crohn's Disease, irritable bowel syndrome
  • Intellectual or developmental disability
  • Mental health conditions, for example, depression, bipolar disorder, anxiety disorder, schizophrenia, PTSD
  • Missing limbs or partially missing limbs
  • Mobility impairment, benefiting from the use of a wheelchair, scooter, walker, leg brace(s) and/or other supports
  • Nervous system condition, for example, migraine headaches, Parkinson’s disease, multiple sclerosis (MS)
  • Neurodivergence, for example, attention-deficit/hyperactivity disorder (ADHD), autism spectrum disorder, dyslexia, dyspraxia, other learning disabilities
  • Partial or complete paralysis (any cause)
  • Pulmonary or respiratory conditions, for example, tuberculosis, asthma, emphysema
  • Short stature (dwarfism)
  • Traumatic brain injury
Please check one of the boxes below:

PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5 minutes to complete.

You must enter your name and date
Human Check*