About the job
Join STR as an Emulation Tooling and Modeling Software Engineer, where you'll collaborate within a multidisciplinary team of skilled researchers and engineers to develop pioneering technologies that significantly enhance our national security. This role presents a unique opportunity to bridge the gap between computational systems and real-world physical environments. At STR, we value the diverse skills and perspectives of our employees, recognizing that these attributes drive our ability to deliver innovative solutions to our clients. If you find your expertise aligns with our needs, we encourage you to apply!
As an Emulation Tooling and Modeling Software Engineer, you will be adept in one or more high-level programming languages (C/C++, Python) essential for creating the foundational tools that facilitate the development of emulation models for intricate cyber-physical systems. Ideal candidates will possess experience in reverse engineering embedded instruction set architectures (e.g., ARM, PPC) and a strong motivation to design emulator tools for a wide range of targets. Key responsibilities include developing tools such as operating system handlers, bare metal firmware emulation, and virtual device simulations to support the emulation of relevant signal processing and control system components and algorithms. These components will be prototyped using time and event-driven simulations, implemented on real-time hardware systems.
You will also contribute to the model development for sensors, actuators, dynamics, and environmental factors based on first principles, empirical data, and existing documentation/hardware/software artifacts. Ensuring the quality and validity of these models will require unit testing and effective integration into larger system simulations. Familiarity with developing modular code that adheres to well-defined component message/protocol interfaces is crucial. Experience with both hardware and software elements, especially at the software/hardware interface (e.g., serial, USB, data acquisition subsystems, and device drivers), is highly beneficial.

