What Programming Language Is Netflix Coded In?
Netflix is coded mainly in Java. Its backend runs about 3,000 Java services on Spring Boot. The web interface is JavaScript with React, served through a Node.js layer. Data science and machine learning run in Python, large data jobs run in Scala on Apache Spark, and the player that runs on smart TVs is written in C++.
These facts come from the Netflix Technology Blog and Netflix's open source repositories. Netflix publishes more about its engineering than almost any company of its size, so the language answer is unusually well documented.
Netflix programming languages by layer
| Layer | Language | Framework or tool Netflix names |
|---|---|---|
| Backend services | Java | Spring Boot, the Netflix DGS framework for GraphQL |
| API layer | Java, Node.js | GraphQL Federation gateway, Zuul |
| Web interface | JavaScript, TypeScript | React, served by Node.js |
| iOS app | Swift, Objective-C | Native app |
| Android app | Kotlin, Java | Native app |
| TV and set-top player | C++ | Netflix's own device SDK |
| Data science and ML | Python | Metaflow, Jupyter, PyTorch |
| Large data processing | Scala, Python | Apache Spark, Apache Flink |
| Infrastructure tools | Go, Java, Python | Chaos Monkey (Go), Spinnaker (Java) |
Java: the Netflix backend language
Java is the language of the Netflix backend. Netflix has written on its blog that it standardized about 3,000 backend services on Spring Boot after retiring an older internal Java stack. Those services handle sign-in, billing, the catalog, playback licensing, and the personalization that fills each user's home screen.
Netflix also documents its Java version work. It moved services from Java 8 to Java 17 and reported about a 20 percent drop in CPU use from the newer garbage collector. It then moved to Java 21 for virtual threads, which let one server handle more requests at the same time with fewer operating system threads.
Netflix's GraphQL layer is Java as well. The Domain Graph Service framework, shortened to DGS, is a Netflix open source library that lets each Spring Boot service publish part of one shared GraphQL schema. GraphQL is a query language for APIs in which the client states exactly which fields it wants.
JavaScript, Node.js and React for the interface
The Netflix web app is React, and a Node.js layer sits between the browser and the Java services. Netflix adopted React early and has described its use of server-side rendering to make the first page load fast. Node.js runs the "backend for frontend" services, which are small servers that shape data for one particular screen so the browser does less work.
TypeScript appears in newer Netflix front-end code, and Netflix engineers have written about it publicly. The mobile apps are native: Swift on iOS and Kotlin on Android.
Python for data science and machine learning
Does Netflix use Python? Yes, for data science, machine learning and much of its tooling. Netflix created Metaflow, an open source Python framework for building and running machine learning projects, and its data scientists work in Jupyter notebooks that Netflix runs as scheduled jobs.
Python also appears in Netflix's security tooling, its content encoding pipeline, and its operations scripts. It is not used for the core streaming services, which stay in Java for throughput reasons.
Scala, Go and C++
Scala runs on Apache Spark for the large batch jobs behind recommendations and reporting. Netflix's data platform also uses Apache Flink for stream processing, which handles events as they arrive rather than in batches.
Go is used for some infrastructure tools. The current version of Chaos Monkey, the tool that shuts down random servers to test resilience, is written in Go.
C++ runs the player. Netflix ships a device software kit to television and set-top box makers, and that kit is C++ because it must run on low-powered chips. The video encoders Netflix contributes to, such as the AV1 work, are also C and C++.
Netflix open source projects
Netflix publishes its code on GitHub under the Netflix organization. The most used projects are Spinnaker for deployments, Eureka for service discovery, Zuul for API routing, Metaflow for machine learning, Atlas for metrics, and Apache Iceberg, the table format Netflix created and donated to the Apache Software Foundation. Hystrix, the older fault-tolerance library, is in maintenance mode and no longer developed.
Most of these projects are Java, which is another sign of where Netflix's core engineering happens.
What this means for a Netflix candidate
Netflix does not require a specific language in coding interviews. Candidates choose their language, and Java, Python, C++ and Go are all common. Backend roles do expect familiarity with the JVM in the system design and past-work discussions, because that is what the team will use.
How to Prepare
- Practice coding in the language you will interview in. Grokking the Coding Interview teaches the pattern set behind most Netflix coding questions.
- Prepare the system design round with a streaming case. Grokking the System Design Interview covers caching, CDNs and data replication.
- Work through the Netflix design question itself. See designing a Netflix-like streaming service.
- Know the interview stages. See Netflix's interview process for software engineers.
- Decide which language to interview in. See which programming language is best for Netflix.

GET YOUR FREE
Coding Questions Catalog

$99

$197

$72