Software Engineer - Computational Geometry
Santa Clara Valley (Cupertino), California, United States
Software and Services
The Maps Data team is looking for an engineer to help develop the spatial data processing pipeline. 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, and proven ability to implement robust solutions.
- Minimum three years experience developing GIS, EDA/CAD, graphics, or related software
- Proficient in C/C++ and Java, with development experience in Linux and OS X
- Understanding of 2D & 3D computational geometry principles, algorithms, and data structures
- Strong system design and object oriented programming skills, with emphasis on quality and robustness
The Maps Data team is chartered to process, analyze, conflate, and ensure the integrity of geospatial data used in Apple Maps. In this role you'll work collaboratively with other teams to develop and implement geometry processing software for Apple Maps data platforms. You’ll work closely with data architecture, tools, and pipeline teams to develop support for storage and manipulation of large and complex spatial datasets.
Education & Experience
- Bachelors or Masters degree in computer science, mathematics, or related field
- - PhD in computer science with a focus on computational geometry, graphics or equivalent
- - 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.
- - Deep understanding of spatial projections models and their implications on the processing of
- 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
- - Experience developing 2D polygon set operations, Voronoi diagrams, Minkowski sums, and
- interactive snap-rounding
- - Significant experience developing robust 3D mesh processing algorithms
- - Knowledge of arbitrary precision numeric kernels for geometric processing
- We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.