Senior Software Engineer (Search, distributed computing, Big Data, ML), Apple Media Products
Santa Clara Valley (Cupertino), California, United States
Software and Services
Wonder how Apple's Media Products show relevant search results and recommendations? Do you strive to tackle complex problems? We are looking for extraordinary software engineers with deep experience in large scale data processing systems and highly scalable applications and web services. If you have a passion to push the limits of distributed computing frameworks to get every ounce of performance out of them, comfortable working with Object Oriented programming techniques and have familiarity with modern server technologies (e.g., non-blocking IO, distributed storage, completable futures, etc.) look no further. This team exhibits strong attention to detail, have excellent analytical capabilities and have passion for development - we would love to have you join us! We are looking for a great team player with the ability to communicate technical concepts effectively to others.
- Ideal candidate will be able to demonstrate a strong practical understanding of how to develop practical, fault-tolerant high-performance distributed systems and data pipelines at scale.
- Applicants will have 3+ years experience in industry or research developing robust, server-side Java, Scala, Python code and will be able to demonstrate creativity, initiative and the ability to work to deadlines. Experience and/or education must include:
- Java or equivalent Object Oriented Languages
- Understanding of HTTP and restful API design
- Machine Learning
- Big Data pipelines
We are seeking an exceptional engineer to help build the next-generation of search features for Apple's ground breaking devices and platforms for a product that supports billions of transactions. If you want to craft new ways for customers to discover content in a rapidly growing catalogue on a range of devices and platforms, this is the place to be. Responsibilities include: - Ability to architect, prototype and collaborate to deliver scalable/performant runtime systems. - Design and develop run-time services and off-line data pipelines in Java. - Design and develop off-line pipelines, data analysis and A/B experiment analysis in Map/Reduce, Spark and/or Scoobi. - Work with large data sets to build user and content models in collaboration with Research team. - Collaborate with the Research team to build recommendation models using Machine Learning. - Design, build and test debugging tools to help visualize recommendation models and analyze software problems. - Build prototypes, A/B Test pipelines to evaluate algorithm improvements. - Develop pipelines to store big data (both content and user) on Hadoop using Map/Reduce techniques.
Education & Experience
Master’s degree or foreign equivalent in Computer Science, Information Technology, Software Engineering, or related field and 2 years of experience in the job offered or related occupation.