BTS · 3 months ago
Emulation Developer II
BTS Software Solutions is a Service Disabled Veteran Owned Small Business focused on transforming ideas into technology that serves people. They are seeking an Emulation Developer II to design, develop, and test application software for emulation needs, while also performing software and hardware reverse engineering.
Defense & Space
Responsibilities
Design, develop, and test application software to fulfill emulation needs on Windows, Unix, or other specified platforms using modern continuous integration techniques
Perform Software and Hardware Reverse Engineering to correctly model mechanisms of emulation targets
Debug software and hardware systems and identify divergent behavior between systems
Understand networking and inter-component protocols and principles
Lead the design, development, and testing of application software to fulfill emulation needs on Windows, Unix, or other specified platforms using modern continuous integration techniques
Lead Software and Hardware Reverse Engineering efforts to understand mechanisms of emulation target
Debug software and hardware systems and identify divergent behavior between systems
Understand networking and inter-component protocols and principles
Qualification
Required
Active TS/SCI w/ POLY
Strong development skills using low level languages such as C, C++, or Assembly
Uses source control, modern build systems, and continuous integration
Benefits from experience with modern defensive coding practices, and with tools and techniques such as linters, Address Sanitizer, coverage-guided testing, etc
Ability to identify divergent behavior between emulated systems and real hardware through debugging and reverse engineering
Minimum five (5) years' experience programming with C, C++, or assembly
Minimum three (3) years' experience developing Windows applications using Visual Studio OR minimum three (3) years' experience developing UNIX applications using make files or comparable build environments OR four (3) years' experience developing software for embedded systems
Experience developing complex programs using C, C++, or other comparable languages
Experience implementing software life cycle management (requirements, design, develop, test, validate, and deploy) using modern continuous integration frameworks
Experience performing software or hardware reverse engineering
Preferred
Experience with BDI, JTAG, I2C, etc is beneficial
Experience with Ghidra, IDA Pro / Hexrays, Binary Ninja (binja), radare, GDB, lldb, WinDBG, Ollydbg, or objdump is beneficial
Understands the principles of networking and communication protocols and can identify and understand new protocols
Experience with any of the following activities is considered a plus: hypervisor development; FPGA development; device driver development; low-level experience in multiple operating systems and instruction sets; and previous experience developing emulators or emulation models
Benefits
100% Company PAID health benefits
PTO
401K matching and vested from day one of employment