Software Engineer - C++ LLVM BitCode
Work location in Indiana ( Lafayette)
US Citizens only please
Compensation: $70,000- $102,00work to enhance the features and platform coverage of one of the markets most trustedmobileand embedded application protection products.
0 PLUS FULL TIME BENEFITS
Our products protect mobile and embedded applications from software piracy, tampering and reverse engineering. By joining our development team, you will work to enhance the features and platform coverage of one of the markets most trusted mobile and embedded application protection products.
Running as a Linux, Mac OSX and Windows application, it protects software for a wide variety of target systems including Android, iOS, embedded Linux, ChromeOS, Tizen and tvOS.
- Linux, Mac OSX and Windows hosts
- Android, iOS, Embedded Linux, ChromeOS, Tizen, watchOS and tvOS devices
- Android Studio, Apple Xcode, and Visual Studio development environments
- C, C++, Java, Objective-C and Swift compiled languages
- Perl and Python scriptinglanguages
As part of our engineering team, you will have opportunities to work with many different machine and software architectures. You will work with current and future advanced compilers and operating systems from Apple, Google and open source, at a deep and challenging level that will enhance your software skills and knowledge.
This is an energetic environment in which initiative and innovation coupled with teamwork, openness, and customer focus are valued. We welcome candidates who thrive on challenge in a fast-paced, high-tech, dynamic environment and who value success to join our team.
Candidates must be able to:
- Think like an adversary that is attempting to attack a binary; utilizing tools such as IDA Pro
- Understand the behavior of a standard compiler, linker and loader
- Design, develop and test object oriented systems using C++ for execution on Linux, Mac OSX and Windows
- Document research, specifications and design results clearly, with an emphasis on explaining why decisions were made
- Understand the LLVM bitcode intermediate representation
- Develop software to read and manipulate LLVM bitcode using the LLVM core library C++ interface
- Understand and manipulate the low-level format of compiled and linked ELF and MACHO binaries
- Analyze and debug applications on a variety of different target operating systems and architectures with and without a reproducible test case
- Understand and write small pieces of code in ARM and x86 assembly
- Write unit and system test cases that verify software functionalityf
- Research and break down nebulous requests into smaller, well-defined tasks with accurately estimated effort