Link Search Menu Expand Document

Lectures

Lectures will be given live in Franz Hall 1178 each Monday and Wednesday from 4-5:50 PM. Lectures will not be recorded or live streamed.

Lecture presentation slides will be posted before lecture and will only be available to users logging in from their @g.ucla.edu accounts.

Any listed readings are entirely supplemental.


Table of contents

  1. Course overview / Development environments / Source control
  2. Testing
  3. Code Reviews and Web Servers
  4. Build Systems and Deployment
  5. Testing, Refactoring, Dependency Injection
  6. Tips for Testing
  7. Static Analysis
  8. Logging, Midterm review
  9. API Design
  10. API Design & Voting
  11. The Art of Readable Code
  12. Threading and Concurrency (remote, in place of postponed midterm)
  13. Web Server & Distributed System Architecture
  14. Performance
  15. Monitoring, Documentation
  16. Postmortems, Team Structure, AMA
  17. Deployments, Experiments, and Launches

Course overview / Development environments / Source control

Lecture
1
Date
Monday, March 31
Links
Slides

Testing

Lecture
2
Date
Wedneday, April 2
Links
Slides

Code Reviews and Web Servers

Lecture
3
Date
Monday, April 7
Links
Slides

Build Systems and Deployment

Lecture
4
Date
Wednesday, April 9
Links
Slides
Reading
Why Google Stores Billions of Lines of Code in a Single Repository

Testing, Refactoring, Dependency Injection

Lecture
5
Date
Monday, April 14
Links
Slides

Tips for Testing

Lecture
6
Date
Wednesday, April 16
Links
Slides

Static Analysis

Lecture
7
Date
Monday, April 21
Links
Slides
Reading
A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World , Rubber Duck Responds

Logging, Midterm review

Lecture
8
Date
Wednesday, April 23
Links
Slides
Reading
Kqueue: A generic and scalable event notification facility

API Design

Lecture
9
Date
Monday, April 28
Links
Slides

API Design & Voting

Lecture
10
Date
Monday, May 5
Links
Slides

The Art of Readable Code

Lecture
11
Date
Wednesday, May 7
Links
Slides

Threading and Concurrency (remote, in place of postponed midterm)

Lecture
12
Date
Monday, May 12
Links
Slides
Reading
Real-world Concurrency

Web Server & Distributed System Architecture

Lecture
13
Date
Wednesday, May 14
Links
Slides
Reading
2003 The Google File System , 2004 MapReduce: Simplified Data Processing on Large Clusters , 2006 Bigtable: A Distributed Storage System for Structured Data , 2010 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure , 2012 Spanner: Google’s Globally-Distributed Database

Performance

Lecture
14
Date
Monday, May 19
Links
Slides

Monitoring, Documentation

Lecture
15
Date
Wednesday, May 21
Links
Slides

Postmortems, Team Structure, AMA

Lecture
16
Date
Wednesday, May 28
Links
Slides

Deployments, Experiments, and Launches

Lecture
17
Date
Monday, June 2
Links
Slides

Back to top

“You may think using Google’s great, but I still think it’s terrible.” —Larry Page

Page last modified: June 5, 2025.