Software Engineer (Fullstack ML Service Infrastructure)

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

Summary

Posted:
Weekly Hours: 40
Role Number:200159119
Apple Media Products (AMP) first delighted users with downloadable music in April 2003 with the opening of the iTunes Store. Since then, AMP has delivered countless innovations around the digital delivery of audio and video, and in 2008 revolutionized smartphone app distribution with the launch of the App Store. Being the source for so much digital content requires maintaining relationships with a vast number of providers, from record labels to movie studios to app developers. The Digital Supply Chain Engineering team (DSCE) is responsible for ensuring that new content is uploaded, processed, cataloged, and available on our storefronts when the provider expects it to be, and with the highest quality. We are looking for a Fullstack Software Engineer to help build the next generation of Machine Learning (ML) service infrastructure to analyze different kinds of digital assets (app, image, video, music, etc.) at AMP. This role will be responsible for building end-to-end ML service data pipelines from data collection, annotation, training to productionizing all of our ML-specific use cases. We are solving for issues of complexity with disparate data sources across many internal workflows, and making our pipelines run more smoothly. Our tech stack: - Python (TensorFlow/PyTorch/Keras) for ML research and production - Java for backend - Spark for offline data processing - JavaScript/React for frontend - Cassandra for data storage - Docker and Kubernetes as internal cloud infrastructure We don’t expect prior experience with all the technologies involved, but you will be expected to learn to use them effectively. In this role you will be working together with both ML engineers and engineers owning all the components of our stack, operations, and product teams to implement infrastructure and add product features necessary for our ML efforts.

Key Qualifications

  • Strong experience with building consumer-facing single-page applications in JavaScript ES6+, HTML/CSS.
  • Strong experience with developing rich, interactive and well-performing user interfaces using frameworks like React.
  • Solid expertise in building highly scalable, distributed, loosely coupled systems.
  • Deep knowledge of concurrency, resiliency, and caching.
  • Experience with building services using REST/gRPC.
  • Experience with running microservices in public cloud infrastructure like Amazon AWS/Microsoft Azure or Kubernetes.
  • Working experience with RDBMS&NoSQL, technologies like MySQL/Cassandra.
  • Expertise in object oriented programming, data structures, algorithms and design patterns.
  • Understanding of distributed computing concepts like sharding, queues, consensus and service discovery.

Description

- Design, implement, and evolve the web application for different ML use cases. - Build a flexible ML service platform that can be easily customized toward different use cases. - Design and build scalable infrastructure to support our ML pipelines from data collection and training to deployment. - Integrate with different internal digital asset processing workflows to provide Machine Learning as a service. - Collaborate with multi-functional teams of engineers, data analytics, Machine Learning specialists, and products to build new features.

Education & Experience

BS, MS or PhD in Computer Science or equivalent work experience.

Additional Requirements

  • Nice to have:
  • - Experience with A/B Testing.
  • - Experience with building end-to-end Machine Learning system.
  • - Experience with Big Data processing framework like Hadoop/MapReduce/Spark.
  • - Experience using CI/CD environments (Jenkins, Spinnaker, etc).