5+ years of programming experience in C, C++, or Assembly
3+ years developing Windows applications with Visual Studio or UNIX applications with make files
Experience in software life cycle management using continuous integration frameworks
Proficient in software or hardware reverse engineering
Familiarity with low-level debugging tools and techniques
Responsibilities
Design and develop application software for emulation on various platforms
Perform software and hardware reverse engineering to model emulation targets
Debug systems to identify discrepancies between emulated and real hardware
Lead software development efforts using modern continuous integration techniques
Understand and apply networking and inter-component protocols
Benefits
Active TS/SCI w/ POLY clearance required
Opportunity to work on cutting-edge emulation technologies
Collaborative team environment
Access to modern development tools and practices
Potential for professional growth in a specialized field
Full Job Description
Emulation Developer II
REQ ID:989-03
BTS Software Solutions is seeking an Emulation Developer II with an active TS/SCI w/ POLY to join our team in Annapolis Junction, MD.
What You'll Get To Do:
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
You'll Bring These Skills:
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.
Experience with BDI, JTAG, I2C, etc is beneficial
Likewise, 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
Education/Qualifications:
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
Pay Range: $200,000 to $260,000 The BTS pay range for this job level is a general guideline only and not a guarantee of compensation or salary. Our approach to crafting offers considers various factors to establish an equitable and competitive compensation package. These considerations include, but are not limited to, the extent and intricacy of the role's responsibilities, the candidate's educational background, their work experience, and the specific competencies crucial for success in the role
About BTS Software Solutions
BTS Software Solutions is a software development company that provides custom software solutions to businesses. The company was founded in 1998 by Dr. M. H. Dehghani. BTS Software Solutions' services include software development, web development, mobile app development, and IT consulting. The company has worked with clients in various industries, including healthcare, finance, and government.