Emulation Developer II

MC Software Solutions
Jessup, United States of America
23 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate
Compensation
$ 260K

Job location

Jessup, United States of America

Tech stack

Microsoft Windows
Software Applications
Unix
C++
Communications Protocols
Continuous Integration
Software Debugging
Device Drivers
Emulators
Joint Test Action (IEEE Standards)
Microsoft Visual Studio
OllyDBg
Reverse Engineering
Software Engineering
WinDBg
Fpga Hardware
Build Management
IDA Pro
Build Tools
Software Version Control

Job description

  • 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

Requirements

  • 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, * 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

Benefits & conditions

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

Apply for this position