STR ยท 2 months ago
Senior Embedded Software Engineer - Cyber
Systemstechnologyresearch (STR) makes the world a safer place by developing technology to solve national security challenges. As a Senior Embedded Software Engineer, you will work within a multidisciplinary team to develop cutting-edge vulnerability research technologies, focusing on the intersection of digital and physical systems.
Artificial Intelligence (AI)Machine Learning
Responsibilities
Working as part of a small team to design, develop, and test software applications and tools, in languages such as C, C++, and Python
Ensuring software quality through the practice of unit-level and system-level tests and verification
Integrating software components using networking/messaging technologies
Packaging software for ease of configuration control, delivery, and deployment
Communicating technical foundations of software designs and implementations through reports and presentations
Qualification
Required
This position requires the ability to obtain a Top Secret (TS) security clearance, for which U.S. citizenship is needed by the U.S. Government
BS in Computer Science, Computer Engineering, or related field with 5 years of experience (or MS and 3 years)
Deep knowledge of at least one of the following topics: microcontroller software, embedded systems, firmware, kernels, or drivers
Proficiency in at least one compiled and one scripting programming language
Familiarity with assembly language, operating systems internals (e.g., file systems, IO, memory management, device drivers), threading, compiler technologies (e.g., GCC, LLVM)
Experience with software scripting and build automation tools (e.g., bash, make)
Applied skills using collaborative source code management and software engineering tools (e.g., Git, Subversion, Gitlab)
Preferred
Experience working on classified programs
Proficiency in C, C++, and Python
Understanding of common software vulnerabilities, and secure programming principles
Experience with containers (e.g., Docker), virtualization technologies (e.g., QEMU), network communications frameworks (e.g., TCP/IP sockets), and unit test frameworks
Knowledge of static and dynamic analysis