Apple Sr Software Engineer - Computational Geometry in Santa Clara Valley, California

Sr Software Engineer - Computational Geometry

Job Number: 57454314

Santa Clara Valley, California, United States

Posted: May. 17, 2017

Weekly Hours: 40.00

Job Summary

A job at Apple is unlike any other you’ve had. You’ll be challenged. You’ll be inspired. And you’ll be proud.

Key Qualifications

  • 7+ years developing GIS, EDA/CAD, graphics, or related software

  • 10+ years of proficiency in Java or C++.

  • 5+ years of deep development and architecture of a geometric processing library like CGAL, JTS or similar.

  • 3+ years of development of large scale data processing software

  • Deep understanding of spatial projections models and their implications on the processing of geometry.

Description

The Maps Data team is looking for an engineer to help develop spatial data processing pipelines. This team provides end-to-end geometric solutions, from low-level algorithms to high level flows and distributed processing pipelines.

The ideal candidate will have experience with geometric algorithms, deep understanding of complexity analysis, practical large scale distributed computing and proven ability to implement robust solutions.

Responsibilities:

  • Design and develop advanced geometric processing libraries and functions for maps data processing.

  • Review and consult on geometry architecture for multiple maps data teams.

  • Develop specialized functionality to support maps conflation use cases.

  • Design and performance optimize geometric operations for distributed processing

Education

• PhD in computer science with a focus on computational geometry, graphics or equivalent.

Additional Requirements

Preferred qualifications:

  • Significant contributions to geometric libraries such as CGAL or JTS.

  • Recognized expert in the field of computational geometry based on research and publication track record.

  • Track record of delivering production quality software in C++, Java or equivalent.

  • Significant experience with writing stable Boolean spatial processing operators beyond levels of stability provided by packages like JTS.

  • Practical experience with designing efficient distributed algorithms and applications using standard platforms (MPI, Spark, MR).