Associate Software Engineer - Emulation Tooling and Modeling

Str Limited
Woburn, United States of America
11 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Compensation
$ 125K

Job location

Woburn, United States of America

Tech stack

3d Models
Application Testing
Unit Testing
C++
Computer Engineering
Desktop Computing
Device Drivers
Emulators
Firmware
Hardware Interface Design
Python
Microsoft Dynamics
Network Architecture
Quick EMUlator (QEMU)
Reverse Engineering
Signal Processing
Software Engineering
Subversion
Virtualization Technology
Scripting (Bash/Python/Go/Ruby)
GIT
System-level Testing
Bare Metal
Hardware Infrastructure
Software Version Control
Docker

Job description

  • 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

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., * This position requires an Active Secret security clearance with eligibility for Top Secret (TS) clearance, for which U.S. citizenship is needed by U.S. Government.

  • 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 in Computer Engineering, Computers Science, Electrical Engineering or related field

Nice to have:

  • Active Top Secret (TS) Security Clearance
  • Familiarity with network architectures and protocols
  • Implant or software patch development
  • Masters or PhD in related field

Benefits & conditions

Full-Time Salary Range: $92,000 - $125,000

The salary range listed is based on external market data. Offers are based on factors, such as but not limited to, the candidate's experience, education, training, key skills/critical skills, security clearances, and prevailing market and business conditions.

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.

About the company

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.

Apply for this position