Embedded Software Engineer
Role details
Job location
Tech stack
Job description
As a Senior Embedded Software Engineer, you will design, develop, and optimize software for systems operating in resource-constrained environments with both soft and hard real-time requirements. These systems may include flight, space, and ground-based platforms.
You will work on complex applications involving data analysis, data routing, and control system algorithms, collaborating closely with hardware engineers and multidisciplinary teams.
Responsibilities
Design, develop, test, debug, and maintain embedded software applications.
Implement efficient and reliable software in C++ for real-time systems.
Work with operating systems such as Linux or VxWorks and associated development tools.
Analyze system requirements and translate them into software solutions.
Collaborate with hardware and system engineers on system integration and validation.
Develop algorithms and data processing techniques for mission-critical applications.
Ensure adherence to software engineering standards and best practices.
Support system integration, testing, and troubleshooting in lab environments.
Create and maintain technical documentation, including design specifications and operating procedures.
Requirements
Bachelor's degree in Computer Engineering, Computer Science, or Software Engineering (ABET-accredited or equivalent practical experience).
8+ years of professional software development experience.
Experience with object-oriented design and C++ programming.
Experience developing software in real-time operating system (RTOS) environments (e.g., Free-RTOS, RT-Linux, or similar).
Experience working in fast-paced lab or development environments.
Preferred Qualifications
Experience across full software development lifecycle, including:
System architecture design
Requirements analysis
Object-oriented development
Unit testing and integration
Experience working with lab instrumentation (e.g., signal generators, spectrum analyzers, network analyzers, logic analyzers).
Experience with hardware validation and verification (RF, digital, or mixed-signal systems).
Strong verbal and written communication skills.
Experience working in cross-functional engineering teams.
Familiarity with development methodologies (Agile, Waterfall, or Spiral).