Software Engineer - Machine Learning Infrastructure Applications
Austin, Texas, United States
Software and Services
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.
- Experience in building RESTful web applications and services by following use-case based, test-driven development strategy
- Extensive experience using one or more of Node, Python, Go and Java technology stacks
- Extensive experience with Cassandra or a similar schema-free, non-relational, NoSQL database
- Strong Infra Concepts in Networking ( VIP, GSLB, DNS, DHCP, CDN, Layer 4, Layer 7, for example ), Linux System Administration ( FSU, monitoring CPU, Memory, etc. )
- Experience building applications in the domain of Cloud Orchestration, DevOps and Site Reliability Engineering
- Strong knowledge of DevOps philosophy and hands-on experience with one or more of technologies including OpenStack, Salt-stack, Ansible, Spinnaker, Terraform, Cloud Formation, Cloud Foundry and enabling workflows and pipelines using one or more of Jenkins, Rundeck, AirFlow, or like, with absolute emphasis on CI+CD pipeline using technologies such as Docker deploying on hybrid cloud and bare metal simultaneously
- Ability to understand the nuances and to deliver abstractions around deploying and running enterprise grade applications on bare metal, VMs, Mesos, Kubernetes, and public clouds, such as AWS, GCP and Azure, supporting Red/Black, Blue/Green deployments, from git push to live
- Should be able to understand complex architectures and be comfortable working with multiple teams
- Should be highly proactive with a keen focus on improving uptime availability of our mission-critical services
- Comfortable working in a fast paced environment while continuously evaluating emerging technologies
- Solid knowledge of secure coding practices and experience with the open source team
We are looking for a self-motivated individual with strong programming fundamentals. You will be working closely with several application development teams, data science teams to take their applications to cloud. Managing multiple priorities and attention to detail in our fast-paced and growing environment are essential skillsets. • Design, develop, unit test, code review, build and produce the deployment artifacts. • Deploy the application and the APIs to several environments, following development to production strategy. • Maintain and support, solicit user feedback, support requirement gathering, evangelize the adoption of the application and the APIs. • Perform manual tasks including data population, backfills, deployments as needed but strive to provide automation. • Provide on-call support for production issues. • Learn and foster the development philosophy and the team culture.
Education & Experience
BS in computer science with 5-7 years or MS plus 3-5 years experience or related experience.
- - Experience with Kubernetes, Docker Swarm, or other container orchestration framework
- - Experience with big data technologies - hadoop, hive, spark