Systems Software Engineer, Device Engineering
HeadSpin
Software Engineer, iOS Engineering
This is an entry level position for a Systems Engineering role on the iOS Engineering team at Headspin. We are building tools to automate, instrument, and ultimately enable remote control of Apple mobile devices. You have experience reverse engineering closed-source software, digging into device internals over USB, and building production-grade back-end services.
What you will do
Your role on the team will be to support our efforts to deliver a first class iOS, iPadOS, and tvOS global device cloud. You will build products and contribute to features that enable our customers to test, inspect, and measure the reliability and performance of their mobile apps in a virtualized interactive environment with real devices. You need to be just as comfortable writing mobile applications to leverage supported device frameworks as you are diving into disassembled code to figure out how a proprietary device service operates. This is not an app development role and requires a deep understanding of operating systems internals to succeed.
You will be part of a team-wide collaborative effort to research the Apple software ecosystem and develop novel products that accomplish that which cannot be done with off-the-shelf tooling. You will need to be up to the challenge to develop software that extends the horizon of what is possible. We are enabling mobile software development teams to achieve their best work and therefore you will also need to be able to diagnose customer issues when they arise and use your findings to strengthen our product.
Necessarily skills
- Deep familiarity with operating systems and networks.
- Comfortable with a debugger, disassembler, packet sniffer, hex editor, etc.
- Experience reverse engineering using software tools such as Hopper, IDA Pro, Ghidra, Capstone
- Ability to work in MacOS and Linux command-line environments
- Experience developing in Go, Python is preferred
- Basic knowledge of Objective-C, Swift, Apple development ecosystem, and mobile app technologies
Required Experience
- Two years of software development experience
Required education
- Bachelor’s degree in Computer Science or related field
- Master’s degree in Computer Science or related field strongly preferred
Location
- India (Remote)
Other required qualifications
- Must be able to handle open-ended research tasks without pre-determined solutions
- Able to read and implement technical specifications
- Focus on self-motivated problem solving
- Able to communicate technical details to non-technical support staff in a solutions-oriented manner