The candidate should have a strong interest and demonstrated experience with iOS/Android Mobile Device development and thrive in a fast-paced environment with often-changing priorities and a demanding customer. Primary focus will be on researching proof of concept techniques, reverse engineering vulnerabilities and prototyping mobile activities. The candidate will work closely to identify requirements and translate those requirements into the required product. The team works in a collaborative and agile environment. The Software Engineer will be involved in all aspects of the software development lifecycle: assisting with architecture, design and development, user experience, documentation, unit testing, delivery, and maintenance. The candidate must be a self-starter with experience to work without direction.
Technical Skills Required:
- Working knowledge of Linux, C/C++, Java, Python, Assembly, etc.
- Experience with code execution in non-traditional manners using shell code and injected code
- Experience with manual loading and execution techniques
- Experience with HEAP internals, HEAP overflow, use after free and spray concepts
- Experience with some of the following:
- ARM/ X86/ other assembly language
- iOS/Android SDK programming/engineering; OSX kernel experience can be substituted for specific iOS experience
- iOS/Android kernel, drivers, and JNI exposure; APKs for Android
- Reverse engineering and software analysis tools toolsets
- Debug tools for crash analysis
- Native debugging
- Web platform software (mobile software and mobile hardware)
- Experience with designing software tools and subsystems to support software reuse and domain analyses and manage their implementation
- TS/SCI with Polygraph required
Minimum Experience Required:
This position is contingent and does not yet have a LCAT assigned to it. We are researching candidates with this experience for our future position.