Software Development and Integration Engineer
STR is hiring a Software Development and Integration 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. 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 intended to give you a sense for the position. If you see an overlap with your skills, go ahead and apply!
Applicants should be proficient coding in one or more high-level languages (C/C++, Python and/or MATLAB) for building models of complex cyber physical systems. Implementations include representations of signal processing and control systems within custom modeling and simulation frameworks. Responsibilities include building model subcomponents, leveraging available documentation and hardware/software artifacts associated with the system, unit testing, and then integrating the modules with the larger system model within the simulation framework. Knowledge and experience developing modular code compliant with 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 well matched. Designing and implementing data tap points to assist rapid engineering analysis and performance assessments is also important to this work. Applicants would be responsible for developing and testing software and providing supporting analysis and performance evaluations relative to metrics.
Duties may include:
Requirements
Desired Skills and Experience:
Applicants should be proficient coding in one or more high-level languages (C/C++, Python and/or MATLAB) for building models of complex cyber physical systems. Implementations include representations of signal processing and control systems within custom modeling and simulation frameworks. Responsibilities include building model subcomponents, leveraging available documentation and hardware/software artifacts associated with the system, unit testing, and then integrating the modules with the larger system model within the simulation framework. Knowledge and experience developing modular code compliant with 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 well matched. Designing and implementing data tap points to assist rapid engineering analysis and performance assessments is also important to this work. Applicants would be responsible for developing and testing software and providing supporting analysis and performance evaluations relative to metrics.
Duties may include:
- Working as part of a small, focused team to architect, develop, implement, and test applications featuring modular software design principles
- Implementing system modules in Python, C/C++, and/or MATLAB and integrate modules into system-level software processing chains, including development of unit-level and system level test and verification
- Collaborating with algorithm developers to implement mathematical software implementations and perform associated data analysis for implementation verification
- Assisting with design of experiments, performance modeling and simulation runs, and associated test verification and performance analysis using standard analysis tools (e.g., data processing in Python or MATLAB)
- Participating in laboratory and field tests to collect and analyze real-world data for model verification and validation
Requirements
- US Citizen (no dual citizenships) with the ability to obtain a Top Secret (TS) Security Clearance
- BS, MS or PhD in Computer Science, Computer Engineering, Electrical Engineering, Mathematics, Physics or related field
- Proficiency in C/C++ and Python as well as other higher-level languages
- Experience designing and implementing software modules with specified input/output data flow in accordance with defined messages/protocols
- Experience with software development best practices of design, code, test using unit tests and system-level integration tests
- Experience using collaborative source code management (Git, Subversion) and build tools (make, cmake)
Desired Skills and Experience:
- Active Security Clearance at the TS level
- Familiarity with network architectures and protocols
- Experience with statistical analysis
- Interest and understanding of computing languages and operating systems
- Assembly Languages (x86, ARM, etc.)
- Experience with device driver / firmware development
- Reverse engineering (e.g., IDA Pro, Ghidra)
- Vulnerability research and/or exploit development
- Implant or software patch development