Platform Software Engineer - Applied Machine Learning

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

Summary

Posted:
Weekly Hours: 40
Role Number: 200110687
Imagine what you could do here. At Apple, great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring passion and dedication to your job and there's no telling what you could accomplish. Apple’s Applied Machine Learning team has built systems for a number of large-scale data science applications. We work on many high-impact projects that serve various Apple lines of business. We use the latest in open source technology and as committers on some of these projects, we are pushing the envelope. Working with multiple lines of business, we manage many streams of Apple-scale data. We bring it all together and extract the value. We do all this with an exceptional group of software engineers, data scientists, dev-ops engineers and managers.

Key Qualifications

  • The position requires a solid knowledge of secure coding practices and experience with open source technologies.
  • Experience in distributed systems, design and implementation of high throughput, low latency applications.
  • Extensive hands-on experience building solutions for large-scale internet infrastructure.
  • Strong Object-Oriented Programming skills and proficiency in Java.
  • Understanding of JVM internals and garbage collection.
  • Deep understanding of TCP, websockets, and libraries like Netty.
  • Extensive experience solving complex technical problems.
  • Experience architecting distributed systems, concurrent programming, and coding data
  • structures.
  • Real passion for process improvement.
  • Excellent analytical skills, critical thinking, and interpersonal skills.
  • Strong ability to learn new technologies in a short time.
  • Meticulous attention to detail and dedication to quality; Excellent written and oral
  • communication skills on both technical and non-technical topics.
  • Strong teamwork, leadership, and time management skills; passion for leading,
  • mentoring and developing junior team members.

Description

This is a role of a Software engineer who will be responsible for the design, build and enhancements of scalable the highly concurrent distributed platform. Knowledge of popular Machine Learning tools and packages is helpful but can be an ongoing skill acquisition as part of the job. The mindset required and to be developed is how to process thousands of transactions per second, how to achieve the consistency without sacrificing the performance.

Education & Experience

BS or MS in computer science with 5+ years of related experience.

Additional Requirements

  • Understanding of encryption algorithms and technologies.
  • UNIX Systems programming.
  • Exposure to functional programming
  • Some experience in statistics and machine learning.
  • Some working knowledge of scripting languages like Python.
  • Familiarity with Compute and/or Machine Learning offerings from Amazon AWS
  • Familiarity with Kubernetes