NLP Software Engineer, C++

Santa Clara Valley (Cupertino), California, United States
Software and Services


Weekly Hours: 40
Role Number: 200055684
Apple's Language Intelligence team is bridging software, machine learning, and linguistics to power the world’s best software keyboards and text input systems. Our team is responsible for a wide range of text input technologies, including auto-correction, spellchecking, predictive typing, Chinese & Japanese input, tokenization, tagging and other solutions that are at the intersection of machine learning and NLP. Our diverse, multi-faceted team delivers intelligent and highly performant technologies using natural language text data and statistical modeling. We are seeking a talented software engineer to contribute to future versions of language-driven features on OS X, iOS, watchOS and tvOS. We are searching for a software developer with excellent fundamentals on data structures and algorithms and experience writing production quality C++ code, who is both passionate and innovative about incorporating natural language processing technologies into end-user features.

Key Qualifications

  • Strong object oriented C++ experience and design skills
  • Solid understanding of algorithms, data structures, coding standards
  • Experience writing high performance/memory efficient code
  • Experience with multithreaded programming
  • Experience developing reusable APIs and knowledge of entire software stack
  • Strong communications skills
  • Ability to work well as part of a team


As a member of the team, you will work with a multi-faceted team of machine learning, NLP and software experts to design systems and architectures for handling natural language data. The position will involve all aspects of the use of natural language processing in software, including design, implementation, algorithms, correctness, user experience, and performance. You will be a key member of our team that delivers the natural language intelligence behind keyboard input on the world’s most advanced mobile operating system. You will gain exposure to state-of-the-art technologies in machine learning and NLP, and your work will have a direct impact on millions of Apple’s customers.

Education & Experience

Master's Degree or higher in Computer Science or related discipline

Additional Requirements

  • - 5+ years experience in software development
  • - Software architecture design experience
  • - Familiarity with entire software stack and ability to rapidly create prototypes
  • - Programming experience with scripting languages such as Python, Ruby
  • - Machine Learning or NLP knowledge is a plus but not required
  • - Familiarity with Unix or Linux