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.
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 (one week full time or three weeks part time) 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.
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.
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.
Next session: two evenings per week and one weekend class, for three weeks starting Jan 9 2017
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.
Next session: two evenings per week and one weekend class, for three weeks starting Jan 10 2017
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.
Next session: one evening per week and one weekend class, for three weeks starting Jan 11 2017
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.
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 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.
Get your data model right the first time by learning how to refine your understanding of any given problem domain.
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.
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 the basics of machine learning using neural networks, write a neural network from scratch to solve a classification problem, and become acquainted with TensorFlow and similar tools.
Next session: April 2017
Learn about 3D computer graphics with an emphasis on real time rendering for virtual reality applications.
Next session: April 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 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.
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.
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.
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.
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.
The Bradfield program’s closely-mentored instruction is exactly the sort of prep we think sets candidates up for success.