Camera incubation Software Engineer
Santa Clara Valley (Cupertino), California, United States
Machine Learning and AI
Apple's Camera Incubation Team is looking for a creative software engineer who will drive the design of special-purpose camera systems. As part of the team, the engineer will be involved in the design and development of internal-use special camera systems, and the computers that control them. The ideal candidate will be able to make balanced design-decisions and evaluate tradeoffs between using existing technologies and bringing up new systems from scratch; and the engineer will have the tenacity and technical ability to contribute to a software project and see it through to completion of its work.
- - Proficiency in real-time C and C++ programming
- - Strong passion and enthusiasm for general technical problem solving, with emphasis on providing software solutions
- - Familiarity with digital camera software and basic image processing concepts
- - Familiarity with iOS application software development
In this role, the engineer will work with software and hardware developers to rapidly build, design and test software for new camera systems. This will involve: 1. Detailed software design and implementation, including memory management, algorithm control, and hardware configuration 2. Design and deployment of an Application Programming Interface (API) to provide camera features to other teams 3. Hardware bringup and troubleshooting 4. General familiarity with standard image processing algorithms and methods, including exposure, focus, and color processing This is a multifunctional role and will require frequent and rapid familiarization with several new software and hardware skills and technologies. The engineer will work with multi-functional teams to define specifications and must be able to implement, deliver, and support the software that fulfills the agreed specification.
Education & Experience
BS/MS in Computer Science or Electrical Engineering. Alternatively, candidates with a related technical background and very strong software development skills can be considered.
- You should be able develop software in the C programming language, including diagnosing, debugging, and troubleshooting system-level issues.
- The ideal person will have experience building an electronic or electromechanical device involving a camera that is used for capturing images and video, either as part of a project-class or as a hobby.