Average code is letting us down.

And the stakes have never been higher: bits are replacing atoms, algorithms are attaining agency, and “infrastructure” is coming to mean cloud services, not roads and railways. Within the next few years, algorithms will be driving our cars and defining our virtual worlds.

Yet while the impact of technology increases, we are suffering a crisis of quality. Over 50,000 new software developers enter the industry every year, but only a fraction are on a path toward excellence. Few will produce lasting, high quality software.

At Bradfield we strive to close this gap by helping software developers become high impact software engineers. By focusing on foundational computer science disciplines like operating systems, computer architecture and databases, we prepare our graduates to produce high quality software in the short term and breakthrough technologies in the long term.

We hope you will join us.

The school

We offer intensive, in-person instruction for professional software engineers seeking mastery.

Students are assumed to be strong programmers who could easily teach themselves a new language or framework as needed. We focus instead on deeper topics in computer science, typically taught in a bachelor’s or master’s program or learnt through years of work experience.

Our courses are structured as short modules that can be taken individually to accelerate an area of study, or combined for a more comprehensive CS study experience. Small class in-person tutorials are combined with textbook study, paper reading and programming exercises to maximize effectiveness, and all instructors are 10+ year industry veterans.

Drawing trees on a whiteboard

Join our mailing list


Instruction at Bradfield centers on (i) the important foundational computer science principles that all technologists need; and (ii) the fields that are likely to be most important for the high-impact software engineers of the next generation.

Computer architecture and the hardware/software interface

Understand how a microprocessor works from logic gates up, and the interaction between hardware, user code and the operating system kernel. Involves some programming in C and assembly, and covers basic concepts like binary representations of data through to more advanced topics including pipelining and the memory hierarchy.

learn more

Next session: 3 April 2017 - 23 April 2017

Languages, compilers and interpreters

Learn about languages generally, rather than one at a time. Covers the architectures of compilers and interpreters, and the key commonalities and differences between various languages and their popular implementations.

learn more

Next session: May 2017

Problem solving with algorithms and data structures

Learn about common algorithms, data structures, and techniques for algorithmic problem solving. This course is an accelerated view of what is commonly covered in an undergraduate algorithms course. Strong programming proficiency is assumed.

learn more

Next session: 29 March 2017 - 15 April 2017

Operating systems

Learn about the fundamental problems solved by modern operating systems, and the decisions faced by operating system designers. Covers process scheduling, memory virtualization, synchronization, persistence and the syscall interface. Assumes proficiency with C.

learn more

Next session: 6 Feb 2017 - 26 Feb 2017

Computer networking

Understand the protocols and technology enabling the Internet. Covers all layers of the OSI model, with a particular focus on understanding IP, TCP, UDP and common application layer protocols.

learn more

Next session: 8 Feb 2017 - 25 Feb 2017


Learn about modern and historical innovations in data representation, and understand the architectures of both traditional relational DBMSs and modern distributed data stores. Assumes familiarity with C, operating systems, and networking.

learn more

Next session: 7 Feb 2017 - 26 Feb 2017

Program interfaces, patterns and antipatterns

Learn what good API design looks like across a variety of program boundaries, through case studies and exercises.

learn more

Next session: 7 March 2017 - 26 March 2017

Distributed systems

Understand common patterns in distributed systems design, and the tradeoffs we are forced to make between consistency and availability in the context of distributed data and computation.

learn more

Next session: 6 March 2017 - 26 March 2017

Math for computing

A crash course in the mathematics that tends to be helpful in software engineering, including combinatorics and probability theory, set theory, graphs, number theory for cryptography and basic linear algebra.

learn more

Next session: 8 March 2017 - 25 March 2017


Full time instruction is provided by Myles Byrne and Ozan Onay. They each have over a decade of experience as software engineers, engineering leads and teachers.

Myles Byrne portrait

Myles was CTO of Dev Bootcamp, prior to which he was a special projects engineer reporting directly to the CEO of Groupon, and an engineering lead at Centro. His areas of expertise include operating systems, networking, databases, functional programing and managing complexity.

Ozan Onay portrait

Oz was CTO and Co-founder of Vida.com and Topguest (acquired by Switchfly). He also worked as an engineering and engineering manager at companies including Practice Fusion and Counsyl. His areas of expertise include algorithms and problem solving, mathematics, functional programming and modeling.

Both Myles and Oz are incredible engineers and teachers, and were the two people who have had the greatest impact on my career as an engineer. Myles' instruction helped me understand more advanced concepts in programming than any other teacher, and was a key reason why I was able to secure my first job at Healthtap. Working with Oz helped me break through a plateau as a junior engineer, and has been the highest growth period of my career.
Omar Rayward portrait
Omar Rayward, Software engineer at Virta Health
If you care about software craftsmanship then you need a mentor, full stop. I look forward to working with Bradfield for the foreseeable future and investing my free time into learning only the right next things, the things I didn’t know I didn’t know, instead of wasting my time learning the APIs of JavaScript frameworks.
Jason Benn portrait
Jason Benn, Software Engineer at Minerva
Myles helped me not just with the things I didn’t know, but more importantly with the things I didn’t know I didn’t know. He was instrumental to me building up my programming interview skillsets. Through working with Myles, I have already landed one offer that was $42k higher than my previous salary.
Sid Zhang portrait
Sid Zhang, Software Engineer at Uber
Bradfield alumni have consistently punched way above their weight class in technical interviews on interviewing.io, and it's not surprising. One-on-one instruction from teachers who care deeply about imparting how to think about engineering problems rather than just how to produce code in a trendy language wins every time.
Aline Lerner portrait
Aline Lerner, Co-founder and CEO of interviewing.io
Myles an Oz are two of the best educators I know. Their program is one I wish I’d had the opportunity to take: the mix of widely varied hands-on projects combined with actual industry work really is the best way to learn this craft.
Xavier Shay portrait
Xavier Shay, Payments Engineering Lead at Square
The Bradfield program’s closely-mentored instruction is exactly the sort of prep we think sets candidates up for success.
Ben Kamens portrait
Ben Kamens, head of engineering at Khan Academy

San Francisco, California
© 2016 Bradfield School of Computer Science