HID Algorithms Software Architect
- Cupertino, CA
Posted: May 6, 2020
Role Number: 200155017
Apple's Human Interface Devices (HID) group is responsible for developing innovative ways to interact with Apple products. We work across product lines, delivering technologies like Multitouch Sensing, 3D touch, Pencil, Watch Digital Crown, and other future Apple sensing technologies. The HID Algorithms team is looking for a senior software engineer to help build the next generation of algorithm architectures. We are an eclectic group with backgrounds in computer science, controls, human factors, signal processing, and more. We're looking for an engineer with excellent software skills to design and build scalable, high-quality code architectures for the future of Apple's human interface devices!
- Strong experience in both low-level and high-level programming
- Understands and advocates principles of good software design and documentation through code review, style and guideline definition, and technical mentorship
- Excellent fundamentals in object-oriented architecture and design patterns
- Strong experience developing in C/C++ as part of a software development lifecycle (SDLC)
- Solid experience developing for real-time and/or resource-constrained environments (e.g., embedded systems)
- Solid algorithm or math fundamentals. You will be comfortable working with (and learning as necessary) topics like linear algebra, statistics, signal processing, machine learning, etc.
- Experience with scripting, data processing, data visualization and/or numerical analysis in Python, Ruby, or similar dynamically-typed language
- Experience interfacing C/C++ with Python, Ruby, or similar, for acceleration, automation, and/or algorithm validation (especially in a CI or automated testing environment)
- Able to communicate clearly and collaborate with cross-functional teams
- Excellent problem-solving and root cause analysis skills
This is a key position at a focal point for HW/SW/UI integration. You will learn and work across the entire stack, from firmware to UI, and design innovative architectures for scalable, testable, production-quality algorithms. You will help our team build algorithm pipelines to translate sensor data into user intent, design new interactions, and validate their effectiveness for a large population. The ideal engineer is comfortable working in a dynamic and creative team charged with crafting the way we will interact with next-generation Apple products. You are a self-motivated, excellent problem solver, and a fast learner. You are quick to forge relationships and comfortable with change and ambiguity. You have strong technical leadership skills and enjoy collaborating with others toward the creation of commercial grade software. You will bring software expertise to a highly interdisciplinary team, working with engineers of many talents to tackle challenging problems.
Education & Experience
BS/MS in Computer Science or related field; 5+ years of experience in a related field.
- While not required, any of the following will make you more effective in this role:
- Experience as a technical lead or managing a team of engineers
- Experience architecting, implementing, and/or supporting a shared code library, API, or SDK, especially for Image or Signal Processing, Computer Vision, Machine Learning, or Scientific Computing
- In addition to C/C++, expertise in Python, MATLAB, Objective-C, and/or Swift
- Experience with data warehousing and/or database management, especially for sensor or imaging data, or other high-frequency time-series datasets
- Experience developing iOS, watchOS, or macOS applications
- User interface design or graphics programming
- Apple is an equal opportunity employer that is committed to inclusion and diversity. We take affirmative action to ensure equal opportunity for all applicants without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or other legally protected characteristics.
Back to top