Skip to main content

Software Engineer

Posted yesterday

markesman groupAnnapolis Junction (MD)

SENIORITY

Lead

Apply (opens in a new tab)

About the role

Job Description: *This position is contingent upon contract award Markesman Group is seeking Software Engineers to join our team at Annapolis Junction, Maryland.
Job Responsibilities: Candidates for this position will lead a team performing reverse engineering tasks on existing products and encoding discoveries directly into our codebase. Additional tasks involve the research, design, and development of innovative algorithms to automate challenging or time-consuming tasks within the reverse engineering domain. Candidates will be exposed to and become proficient with a variety of technologies involving hardware description languages, embedded instruction architectures, high-level software development languages, formal verification tools, and more.?The ideal candidate will have experience with object-oriented design and an understanding of basic logic gates. We are particularly looking for candidates that have experience with FPGA design (Quartus, Vivado, ISE), embedded system design, EDA tools (synthesis, P&R, simulation), and/or microcontrollers. Experience with software reverse engineering is also valued in this position.
Minimum Qualifications? ? ?An active DoD Top Secret/SCI with Poly at the time of consideration? ? ?Have a bachelor?s degree in a relevant engineering discipline ? ? ?Have extensive experience with object-oriented programming languages (C++, Java, Python) ? ? ?Have exposure to basic logic gates and Boolean math (AND, OR)?Preferred
Requirements? ? ?Have experience with modern C++ standards (>= C++17) and STL ? ? ?Have experience with Python ? ? ?Can demonstrate the use of design patterns ? ? ?Have developed using software development processes (Agile, TDD, etc.) ? ? ?Familiarity with Verilog or VHDL ? ? ?Have experience with FPGA design software (Quartus, ISE, Vivado, etc.) ? ? ?Have experience with software reverse engineering (IDA Pro, Ghidra, etc.) ? ? ?Are proficient with source control systems (git, svn, perforce, etc.) ? ? ?Have experience with the code review process ? ? ?Have experience with binary patching ? ? ?Have experience bypassing encryption schemes (power glitching, side channel attacks, etc.) ? ? ?Have published research regarding cybersecurity, software exploitation, or reverse engineering

Before you apply

Applying takes about a minute. These four things decide how fast it moves after that.

Your profile is current

It's what we read first. Occupations, seniority and locations matter more than a long history.

Two examples you can talk through

Not a portfolio — just two pieces of work where you can explain the decisions and what you'd change.

A number in mind

What you're on now and what would make you move. We negotiate better when we know both.

Your notice period

Employers plan around it, and it's the question that stalls offers most often.

Once you apply, someone reads it and calls you before anything reaches the employer — usually within two working days.

More like this