Software Development Engineer Arxan Technologies
Arxan Technologies provides sophisticated anti-cracking tools that protect application programs from software piracy, tampering, and reverse engineering. Our tool technology processes executable (binary) software, generating new binaries with code obfuscation and injection of binary level guards. Our tools run as Windows, Linux and MacOS applications, and process executable code for a wide variety of target systems, including Window x86 (32 and 64 bit, XP and Vista), Linux x86, MacOS, Android/ARM, iOS/ARM, Java and .NET byte code
We are looking for a recent college graduate in Computer Science or Computer Engineering or an individual with 1-5 years professional software development experience to join our product development team, focused on enhancing the security features, performance and platform coverage of our products. Specific technology area assignments are variable based upon specific skills and interests, and over time the successful candidate with have opportunities to work in a wide variety of specific machine and software architectures, per the above list.
As part of the Arxan engineering team, you will execute your development activities using Scrum, a modern team-based rapid and agile methodology which keeps process overhead low and development productivity high. You will work with current and future advanced compilers (Clang, LLVM, GCC and others) and operating systems from Microsoft, Apple, Google, RIM and open source, at a deep and challenging level that will enhance your software skills and knowledge. The technologies you develop will be purchased and utilized by the world?s largest software publishing companies, financial institutions, media companies, and other technology companies in diverse areas (digital media, gaming, geosciences, consumer products, and embedded system to mention a few).
Extensive academic experience developing C/C++ software.
Understanding of basic differences amongst different binary and executable file types (PE, COFF, ELF, DWARF; dll?s, shared objects, etc.).
Academic knowledge of and experience with x86 assembly language.
Ability to think logically through complex problems to achieve technical solutions.
Excellent oral and written communication skills, including ability to work with remote staff.
Excellent analytical skills and attention to detail.
Excellent teamwork skills, working with co-workers in QA and Development.
Bachelors degree in Computer Science, Computer Engineering, or equivalent.
Experience developing software in a Visual Studio IDE environment for execution on a Windows/x86 platform.
Experience with the Eclipse IDE and the Xcode IDE.
Academic knowledge of and experience with ARM assembly language.
Experience with software cracking processes and/or software cracking tools such as OllyDebug, IdaPro and others.
Experience with embedded systems and embedded operating systems, including board support, cross-compilers, remote debugging, etc.
Systems level experience in any of: compiler technology, linker technology, debugger technology, or low level operating systems technology.
Windows XP and Vista (32 and 64 bit) run-time model knowledge (memory management, exception management, stack management, etc.)
Linux, MacOS, iOS and Android run-time model knowledge.
.NET development or internals experience.
Java development or JVM internals experience.
||San Francisco |