![STR Logo](https://s6-recruiting.cdn.greenhouse.io/external_greenhouse_job_boards/logos/400/219/500/original/badge-teal-small.png?1682697116)
Software Engineer - Emulation Tooling and Modeling
STR is hiring an Emulation Tooling and Modeling Software Engineer 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 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.
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
Requirements:
- US Citizen with the ability to obtain a Top Secret (TS) Security Clearance
- Proficiency in C/C++ and Python
- Familiarity with virtualization tools (e.g. Docker, QEMU)
- Strong grasp of emulation principles, computer architecture, and software engineering principles
- Experience working with hardware components and interfaces.
- Experience using collaborative source code management (Git, Subversion)
Education:
- BS with 4 years’ experience, MS with 2 years or a PhD in Computer Engineering, Computers Science, Electrical Engineering or related field
Preferred:
- Active Top Secret Security Clearance
- Familiarity with network architectures and protocols
- Implant or software patch development
STR is a growing technology company with locations near Boston, MA, Arlington, VA, near Dayton, OH, Melbourne, FL, and Carlsbad, CA. We specialize in advanced research and development for defense, intelligence, and national security in: cyber; next generation sensors, radar, sonar, communications, and electronic warfare; and artificial intelligence algorithms and analytics to make sense of the complexity that is exploding around us.
STR is committed to creating a collaborative learning environment that supports deep technical understanding and recognizes the contributions and achievements of all team members. Our work is challenging, and we go home at night knowing that we pushed the envelope of technology and made the world safer.
STR is not just any company. Our people, culture, and attitude along with their unique set of skills, experiences, and perspectives put us on a trajectory to change the world. We can't do it alone, though - we need fellow trailblazers. If you are one, join our team and help to keep our society safe! Visit us at www.str.us for more info.
STR is an equal opportunity employer. We are fully dedicated to hiring the most qualified candidate regardless of race, color, religion, sex (including gender identity, sexual orientation and pregnancy), marital status, national origin, age, veteran status, disability, genetic information or any other characteristic protected by federal, state or local laws.
If you need a reasonable accommodation for any portion of the employment process, email us at appassist@str.us and provide your contact info.
Pursuant to applicable federal law and regulations, positions at STR require employees to obtain national security clearances and satisfy the requirements for compliance with export control and other applicable laws.
Apply for this job
*
indicates a required field