The Boeing Company is currently seeking an Embedded Software Engineer (Virtual) to support their Software Products & Capabilities, Common Embedded team. This role involves designing, developing, and integrating low-level embedded firmware for safety- and mission-critical systems, while collaborating across software, hardware, systems, and test teams.
Responsibilities:
- Design, develop, and maintain low-level firmware in C (and supporting tools/scripts in Python) for embedded platforms
- Implement and debug bootloader functionality (e.g., system initialization, handoff, update flows) and support board bring-up
- Design, develop, test, debug, and maintain software integrated into embedded devices and systems, ensuring compliance with industry, customer, safety, and regulatory standards
- Implement and support software security features including encryption /decryption, key handling concepts, and secure communication/storage
- Apply knowledge of computer architecture (ARM cores, privilege levels, interrupts/exceptions, MMU, caches) to optimize reliability and performance
- Perform low-level debugging using JTAG/trace tools, logs, and hardware instrumentation; analyze root cause and implement robust fixes
- Use GitLab for source control, merge requests, code reviews, and CI workflows; follow development and documentation standards
- Produce clear technical artifacts (design notes, interface descriptions, unit tests, verification evidence) aligned with program processes
- Review, analyze, and translate customer requirements into software product designs for embedded devices and systems
- Provide guidance on software and hardware integration best practices
- Implement current and emerging technologies, tools, frameworks, and regulatory changes relevant to software and hardware development
- Test and debug software for embedded devices and systems to ensure functionality and reliability
- Analyze, monitor, and enhance the efficiency and stability of embedded software systems
Requirements:
- 2+ years of professional experience in embedded firmware / low-level software development
- 2+ years of experience in C for embedded systems (design, development, coding, debugging)
- 2+ years of development experience using Python (automation, tooling, test scripts, build support)
- 2+ years of experience with GitLab workflows (Git, branching, merge requests, code reviews)
- Bachelor's degree in computer engineering, Electrical Engineering, Computer Science, or related field and 2+ years of relevant experience (or equivalent combination of education and experience)
- Level 2: 1 or more years' related work experience or an equivalent combination of education and experience
- Level 3: 3 or more years' related work experience or an equivalent combination of education and experience
- Level 4: 5 or more years' related work experience or an equivalent combination of education and experience
- Familiarity with ARM-based processors and low-level bring-up
- Experience with bootloaders and system initialization / bring-up
- Hands-on experience with memory initialization and memory protection concepts
- Working knowledge of flash memory (drivers, layout, update mechanisms)
- Experience with secure boot, firmware authentication, integrity verification, or trusted execution concepts
- Understanding of MMU and cache fundamentals and how they impact system behavior
- Experience developing device drivers, BSP layers, or hardware abstraction layers
- Experience with CI pipelines and automated test integration in GitLab
- Exposure to safety-critical or regulated development practices (requirements, verification, traceability)
- Experience implementing or integrating software security, including encryption/decryption concepts and secure design practices
- Experience with hardware debuggers (e.g., JTAG, logic analyzers, bus analyzers, etc.)
- Experience debugging, integrating, and testing software in emulated and hardware-in-the-loop environments
- Experience identifying software vulnerabilities and implementing effective measures to protect the software
- Strong debugging and problem-solving in hardware-near environments
- Ability to communicate design intent and tradeoffs clearly
- Comfortable working across multi-disciplinary teams (HW/SW/Test/Systems)
- Ability to effectively communicate and collaborate in a virtual work environment
- Ability to independently identify and solve problems encountered on the job using both creativity and established engineering principles
- Strong analytical skills, including the ability to isolate issues with logs and test results
- Ownership mindset and attention to quality, security, and maintainability