Senior Software Engineer, Production Media Engineering
Los Angeles, CA
Senior Software Engineer - Playback Lifecycle (API)
About the team
Whenever anyone launches Netflix and chooses to watch a title, the playback experience is made possible by dozens of APIs. The Playback Lifecycle (PLC) team builds and operates scalable infrastructure to deliver the Playback functionality (APIs) to devices. We handle tremendous scale (millions of requests per second & we process many TBs of data daily). We also operate some of the most critical services at Netflix (If we are down, Netflix is down!)
Functionally, we are responsible for orchestrating the following major product areas pertaining to both online and offline playbacks:
1) Deliver a personalized set of audio/video/timedtext tracks along with their CDN urls so devices can decode and render the playback
2) Deliver keys to securely decrypt the assets
3) Collect, and enrich data pertaining to every playback session
See below for highlights of some of the team's work:
Why we built an Evolutionary Architecture (conference talk)
Keeping Netflix Reliable using prioritized load shedding (tech blog)
As we look to scale Netflix for the next 200 million subscribers, we are faced with two major problems: Difficult networks and Difficult devices (especially in emerging markets). As an engineer on the team, you will get an opportunity to:
1) Become an expert in API design, by evolving our device to server communication technologies (GraphQL, RPCs, binary protocols, and bidirectional streaming APIs)
2) Directly impact product functionality like experimenting with APIs spanning playbacks within UI (mobile previews, trailers etc)
3) Build infrastructure to improve our systems availability and resiliency to scale for 5x workloads.
To be successful in the role, you will need to
• Address complex architectural problems with simple, scalable design
• Work across all phases of the software development lifecycle (planning, design, implementation, deployment, operations and support)
• Collaborate effectively with teammates and technical partners
• Communicate technical ideas and direction in cross-functional settings
• Take end-to-end ownership of major features and components: from inception to deployment
• Have sharp attention to detail and openness to critique through code and design reviews
We are looking for the following skillset
• Object-oriented design and programming skills
• Experience running services in production or eager to grow in the backend space
• Expertise in data modelling for different business domains, specifically when domains are evolving continuously
• Familiarity with large scale design principles.
• Familiarity with A/B experimentation based feature development
• Experience with different API design technologies such as GraphQL/RPC/REST
• Exposure to HTTP/2 and designing bi-directional streaming APIs
• Utilizing NoSQL data stores (Cassandra, Elasticsearch, HBase, Redis etc.) in modeling and evolving domain-specific application data.
• Experience using Pub-sub (Kafka) and stream processing (Spark/Flink/Cloud Dataflow/etc) systems
• Understanding of the complexities (such as fragmentations, resource constraints) of a device ecosystem (such as android or TV)
• Familiarity with Cloud-based architectures (AWS/Azure/GCP)
If the role and the challenges excite you, we would love to talk with you. We are seeking to grow an inclusive and diverse team. If your background and experience are varied and you are strongly motivated by our space, we highly encourage you to apply. To learn more about our team and architecture overview, refer to this slide deck
Netflix values freedom and responsibility, among other things. You can learn more via our culture memo.
Jobcode: Reference SBJ-rj24wb-3-236-98-69-42 in your application.