Sr. Software Engineer/Architect - Apple Media Products
Santa Clara Valley (Cupertino), California, United States
Software and Services
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 an experienced software engineer/architect to join our team dedicated to system evolution across DSCE. As with any software that has lasted more than 15 years, there are always opportunities to leverage new technology to improve performance, use fewer resources, simplify operations, and more. You would be a leader of some of these efforts, and would get to see how a wide variety of content types are processed for digital delivery to well over a billion people worldwide!
- Outstanding verbal and written communication skills. You will need to explain your proposals well enough that others understand their value, are motivated to implement them, and become champions of them for you.
- Experience developing software for an elastic deployment environment; e.g. Kubernetes, EC2, Mesos, etc.
- Experience with distributed computing concepts like sharding, queues, consensus and service discovery
- Experience with multiples types of database; e.g. relational, key-value, document store, etc.
- Strong microservice API design skills; req/resp, RPC, event-driven, using an IDL.
- Experience instrumenting code and gathering metrics in a distributed environment.
- Strong development skills in an OO language. We use Java.
We're a team of consummate tech geeks who love figuring out how things work and trying to make them better. Sometimes it's a little tweak, sometimes it's a fundamental shift - usually it's somewhere in between. We brainstorm on whiteboards, share ideas at team lunches and pot-lucks, build prototypes, present proposals to teams, embed for a while to help them get started, check the metrics, and repeat!
Education & Experience
Bachelors in Computer Science or equivalent