Co-authored with Behnam Montazeri, Yilong Li, and Mohammad Alizadeh; published at SIGCOMM 2018. Combines receiver-managed network priorities, receiver-driven flow control, and controlled downlink overcommitment to serve short and large messages with high network utilization.
Linux kernel implementation associated with Ousterhout's stated work to encourage Homa adoption; hosted by PlatformLab, not established as his personal GitHub account. Uses an API different from TCP sockets. The retained repository records network namespace support, memory caps, January 2026 TCP coexistence improvements, and March 2026 RHEL 8 and 9.5 backports. Staged upstreaming began in October 2024; complete Linux kernel inclusion is not established.
Authored by Ousterhout, first published in 2018. The July 2021 second edition expanded general-purpose module design, added a chapter on deciding what matters, and discussed disagreements with Clean Code over method length and comments.
Ousterhout is explicitly identified as Tcl's creator; his personal career account includes Tcl and the Tk toolkit among his Berkeley research projects. He later founded Scriptics to commercialize Tcl development tools and served as CEO until 2000.
Listed as Ousterhout's research projects during his Berkeley professorship from 1980 to 1994: the Magic integrated-circuit layout editor, Crystal timing analyzer, Sprite network operating system, and log-structured file systems. This establishes research involvement, not sole authorship of every project.
Ousterhout founded Electric Cloud in 2002 and led development of ElectricAccelerator, a parallel build system, and ElectricCommander, a web-based server managing distributed processes such as nightly builds and automated tests. Development leadership is distinguished from sole authorship.
Co-authored systems paper published in ACM Transactions on Computer Systems in August 2015. The retained personal bibliography lists Ousterhout with twelve collaborators.
Co-authored with Diego Ongaro; published at USENIX ATC 2014. Authorship is explicitly recorded in Ousterhout's personal bibliography.
web.stanford.edu
Bio, Work & Ideas
John Ousterhout
Conference affiliation: Stanford University
On this page
John Ousterhout is an emeritus professor of computer science at Stanford University, the creator of the Tcl scripting language, and a systems researcher whose work spans operating systems, storage, distributed computing, and software design. His career includes fourteen years at Berkeley, fourteen years in industry, and a return to academia at Stanford. His research and software projects include Tcl and Tk, RAMCloud, work on understandable consensus with Diego Ongaro, and the Homa transport protocol.
From Berkeley to commercial software
Ousterhout earned a bachelor’s degree in physics from Yale in 1975 and a doctorate in computer science from Carnegie Mellon in 1980. From 1980 to 1994, he was a computer science professor at the University of California, Berkeley. His projects included the Magic integrated-circuit layout editor, the Crystal timing analyzer, the Sprite network operating system, log-structured file systems, Tcl, and the Tk toolkit. These projects addressed several layers of the infrastructure programmers use to build and run software, from chip-design tools to languages and operating systems.
In 1994, he left Berkeley to pursue a long-standing ambition to build commercial software. He worked as a distinguished engineer at Sun Microsystems Laboratories until 1998, then founded Scriptics to commercialize Tcl development tools. He served as its chief executive until 2000.
In 2002, he founded Electric Cloud, where he led development of ElectricAccelerator, a parallel build system, and ElectricCommander, a web-based server for managing distributed processes such as nightly builds and automated tests. He remained at Electric Cloud until 2007 and joined Stanford’s computer science department in 2008. His career account describes this transition from academic systems research to commercial development tools and back to academia.
At Stanford, his collaborative publications included The RAMCloud Storage System and, with Diego Ongaro, the 2014 paper In Search of an Understandable Consensus Algorithm. His research now focuses primarily on datacenter communication through Homa. He has retired from regular teaching and no longer accepts new research students, while continuing projects intended to encourage wider use of the protocol.
How Homa handles datacenter traffic
Ousterhout co-authored the Homa research with Behnam Montazeri, Yilong Li, and Mohammad Alizadeh. The protocol targets datacenter workloads with large numbers of very short messages while also supporting large transfers and high network utilization. Its design gives receivers control over how incoming traffic shares the network:
Prioritize short messages. Homa uses priority queues in the network, with each receiver dynamically allocating priorities. This helps short messages avoid waiting behind larger transfers.
Control incoming traffic. Priority allocation works together with receiver-driven flow control, allowing the receiving machine to manage the traffic directed toward it.
Keep bandwidth in use. Controlled overcommitment of receiver downlinks helps maintain efficient bandwidth utilization under high load.
Ousterhout argues that Homa should replace TCP inside datacenters. His work on a Linux kernel implementation turns that proposal into software developers can build, install, and test. The implementation uses an application interface different from TCP sockets, and its development has addressed practical concerns including network namespaces, memory limits, and running alongside TCP.
A January 2026 update introduced a queuing discipline intended to improve performance when Homa and TCP share a machine. March 2026 updates added backports for Red Hat Enterprise Linux 8 and 9.5. The repository records the start of upstreaming work in October 2024 and describes a staged review process in which the first version entering Linux would have limited functionality and performance. That history supports describing upstreaming as an ongoing effort; it does not establish that the complete implementation has entered the kernel.
Software design as a subject of its own
Ousterhout’s A Philosophy of Software Design, first published in 2018, examines how programmers structure software. The July 2021 second edition expanded its treatment of general-purpose modules and added a chapter, “Decide What Matters,” about separating important concerns from less important ones and directing attention accordingly.
The second edition also made his disagreements with Robert Martin’s Clean Code explicit, particularly over method length and the role of comments. His book page links to a discussion between the two authors and makes the revised chapters and comparisons available as an extract for readers who already own the first edition.
Ousterhout’s Stanford profile records membership in the National Academy of Engineering and honors including the ACM Software System Award, the ACM Grace Murray Hopper Award, and Berkeley’s Distinguished Teaching Award.