Senior Embedded Software Engineer - Cyber

STRMelbourne, FL
42d$134,000 - $184,000

About The Position

STR makes the world a safer place by developing technology and applying it to solve emerging national security challenges. Our Cyber Division develops the people, tools, and processes that put all the right bytes in all the wrong places. We strive for impact, craftmanship, and teamwork while tackling our nation’s most demanding cyber problems. A Senior Embedded Software Engineer at STR will engage as part of a multidisciplinary team of researchers and engineers dedicated to developing cutting-edge vulnerability research technologies. Our work targets the boundary between the digital and physical worlds by creating models of physical systems, probing interfaces for weaknesses, and reverse engineering software.

Requirements

  • 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)

Nice To Haves

  • 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

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
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service