Senior Software Engineer - Emulation Tooling and Modeling at STR
Woburn, Massachusetts, USA -
Full Time


Start Date

Immediate

Expiry Date

30 Nov, 25

Salary

0.0

Posted On

31 Aug, 25

Experience

3 year(s) or above

Remote Job

Yes

Telecommute

Yes

Sponsor Visa

No

Skills

Good communication skills

Industry

Computer Software/Engineering

Description

STR is hiring an Senior Software Engineer (Emulation Tooling and Modeling) to be part of a multidisciplinary team of researchers and engineers dedicated to developing cutting-edge technologies with significant and immediate impact on our national security. This position offers an excellent opportunity to work at the nexus of computers and real-world physical systems. We believe that each employee has a unique set of skills, experiences, and perspectives that are essential to providing our customers with innovative solutions. The skills listed below are representative of those needed for this role but are not the only acceptable set. If you see an overlap with your skills, go ahead and apply!
The Emulation Tooling and Modeling Senior Software Engineer must be proficient in one or more of the high-level languages (C/C++, Python) used for building the underlying tools that support the development of emulation models of complex cyber physical systems. Successful candidates will have experience in reverse engineering of embedded instruction set architectures (e.g., ARM, PPC) and a desire to develop required emulator tooling across a diverse class of targets of interest. The ability to develop tools such as operating system handlers, bare metal firmware emulation, and virtual device simulation are key to support the emulation of representative signal processing and control systems components and algorithms. Such components will be prototyped with time and event-driven simulations and implemented on real-time hardware systems.
The Emulation Tooling and Modeling Software Engineer will also support model development for sensors, actuators, dynamics and environmental factors from first principles, measured data, available documentation/literature and hardware/software artifacts. The quality and validity of the models are ensured using unit testing and effective operation after integrating the modules into larger system simulations. Knowledge and experience developing modular code compliant with well-defined component message/protocol interfaces is highly relevant. Models often include both hardware and software elements, and experience working at the software/hardware interface (e.g., serial, USB, data acquisition subsystems and device drivers) is particularly useful.

How To Apply:

Incase you would like to apply to this job directly from the source, please click here

Responsibilities
  • Working as part of a small, focused team to architect, develop, implement, and test applications featuring modular software design principles
  • Developing bare metal emulators in C/C++, Python as well as unit tests for verification of capabilities
  • Developing emulator capabilities and unit tests to increase overall feature capabilities to develop advanced models
  • Implementing component models in Python/C/C++, and integrating models into system-level simulations with software processing chains, including development of unit-level and system-level tests and verification
  • Developing integrated models using virtualization tools (e.g., QEMU, Docker), that are networked together, and launched using scripting tools (e.g. bash, python)
  • Communicating technical foundations of models and algorithms through reports and briefings
Loading...