Awesome Programming Presentations
List of programming presentations everyone should watch.
Don't know where to start? β Start here.
If you need some inspiration, start with this or listen to this song or this one.
Table of Contents
- General
- Programming Languages
- APIs
- Artificial Intelligence
- Paradigms and Principles
- Cloud Computing
- Computer Security
- Cryptocurrency
- Database Systems
- DevOps
- Distributed Systems
- Microservices
- Operating Systems
- Software Testing
- Miscellaneous
- Contribute
- License
General
- A Conversation with Linus Torvalds
- Building and Motivating Engineering Teams - by Camille Fournier
- Evolutionary Software Architectures - by Neal Ford
- Fork Yeah! The Rise and Development of illumos - by Bryan Cantrill
- Growing a Language by Guy Steele
- How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft by Sean Lee
- I See What You Mean - by Peter Alvaro
- I want you to contribute to open source by Max Stoiber
- It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech - by Julie Pagano
- Linux Kernel Development - by Greg Kroah-Hartman
- Moving Fast At Scale - by Randy Shoup
- Overkill - by Katrina Owen
- System We Love
- Systems programming as a swiss army knife - by Julia Evans
- The art of destroying software - by Greg Young
- The Future of Programming - by Bob Martin
- The Future of Programming - by Bret Victor
- The Mess We're In - by Joe Armstrong
- The Motivation for a Monolithic Codebase - by Rachel Potvin
- The Myth of the Genius Programmer - by Brian Fitzpatrick & Ben Collins-Sussman
- Thinking Above the Code - by Leslie Lamport
- You can be a kernel hacker! - by Julia Evans
Programming Languages
Bash
- Introduction to Advanced Bash Usage - by James Pannacciulli
- The Functional Tao of Bash - by Garrett Smith
CPP
- C++ as a "Live at Head" Language - by Titus Winters
- CPU Caches and Why You Care - by Scott Meyers
- Data-Oriented Design and C++ - by Mike Acton
CSS
- 3.14 Things I Didn't Know About CSS - CSSconf EU 2014
- CSS for Software Engineers for CSS Developers - by Harry Roberts
- CSS Performance Tooling - by Addy Osmani
- Refactoring CSS Without Losing Your Mind - by Harry Roberts
- Your CSS is a Mess - by Jonathan Snook
- Your Very Own Component Library - by Alex Sexton
Elixir
- A GraphQL-on-Elixir Primer - by Bruce Williams
- A Practical Guide to Elixir Protocols - by Kevin Rockwood
- Building beautiful systems with Phoenix contexts - by Andrew Hao
- Building Umbrella Project - by Wojtek Mach
- Consistent, Distributed Elixir - by Chris Keathley
- Debugging Techniques in Elixir - by Erich Kist
- Dialyzer: Optimistic Type Checking for Erlang and Elixir - by Jason Voegele
- Discovering Processes - by SaΕ‘a JuriΔ
- Docker and OTP Friends or Foes - by Daniel Azuma
- Don't Write Macros But Do Learn How They Work - by Jesse Anderson
- ElixirDaze 2018 Keynote - by Rob Conery
- Elixir by the Bellyful - by Bryan Hunter
- Elixir in Elixir - by Jay Hayes
- Elixir Native UI - by Boyd Multerer
- Elixir Power Tracing - by Gabi Zuniga
- GenStage in the Kitchen - by Claudio Ortolina
- Go vs Elixir: A concurrency comparison - by Anna Neyzberg and Hannah Howard
- High availability with Elixir and Erlang - by SaΕ‘a JuriΔ
- Introducing HDD: Hughes Driven Development - by JosΓ© Valim
- Let's Get Functional With Elixir! - by Nate Taylor
- Metaprogramming Elixir - by Chris McCord
- Micropatterns: Learning to Reach Quickly for the Right Tool - by Cameron Price
- OOP in Elixir - Lightning Talk - by Wojtek Mach
- Phoenix - Productive. Reliable. Fast - by Chris McCord
- Phoenix 1.3 - by Chris McCord
- Phoenix after 100000 lines - by Renan Ranelli
- Phoenix Is Not Your Application - by Lance Halvorsen
- Plugging the Security Holes in Your Phoenix Application - by Griffin Byatt
- Processing 2.7M Images with Elixir (vs Ruby) - by David Padilla
- Profiling and Tracing for all with Xprof - by PΓ©ter GΓΆmΓΆri
- QuickCheck for Elixir - Generate Tests Automatically - by Thomas Arts
- Releases and Elixir: Envisioning a more perfect union - by Paul Schoenfelder
- Securing Elixir Applications - by Bram Verburg (Applies to Erlang as well in general)
- Solid Ground - by SaΕ‘a JuriΔ
- Taking Elixir to the Metal with Rust - by Sonny Scroggin
- The Feature That No One Knew About in Elixir 1.5 - by JosΓ© Valim
- The Hitchhiker's Guide to the Unexpected - by Fred Hebert
- The Joy of Connecting Elixir to the Physical World - by Frank Hunleth
- The Soul of Erlang and Elixir - by SaΕ‘a Juric
- Thinking In Ecto - by Darin Wilson
- Well Behaved Native Implemented Functions for Elixir - by Andrew Bennett
- Writing an Editor in Elixir - by Ian Duggan
Elm
- Demystifying Parsers - by Tereza Sokol
Erlang
- 26 years with Erlang or How I got my grey hairs - by Joe Armstrong
- Erlang: Evolution - by Robert Virding
- Erlang Performance Lab - by Michal Slaski
- How We Program Multicores - by Joe Armstrong
- Scaling Distributed Erlang - by Zandra Norman
- Scaling Erlang cluster to 10,000 nodes - by Maxim Fedorov
- The Zen of Erlang - by Fred Herbert
F#
- Understanding parser combinators: a deep dive - by Scott Wlaschin
Go
- 7 common mistakes in Go and when to avoid them - by Steve Francia
- Concurrency Is Not Parallelism - by Rob Pike
- Crypto For Go Developers - by George Tankersley
- Do not fear first class functions - by Dave Cheney
- Go Proverbs - by Rob Pike
- "go test -race" Under the Hood - by Kavya Joshi
- How to write your own Go tool - by Fatih Arslan
- Inside the Map Implementation - by Keith Randall
- Program your next server in Go - by Sameer Ajmani
- Self Deploying Go Applications - by Kelsey Hightower
- Simplicity is Complicated - by Rob Pike
- Stupid Gopher Tricks - by Andrew Gerrand
- The Design of the Go Assembler - by Rob Pike
- The Scandalous Story of the Dreadful Code Written by the Best of Us - by Katrina Owen
JavaScript
- 10 Things I Regret About Node.js - by Ryan Dahl
- A Cartoon Intro to Fiber - by Lin Clark
- A Cartoon Intro to WebAssembly - by Lin Clark
- Benchmarking Javascript - by Vyacheslav Egorov
- Hey Underscore, You're Doing It Wrong! - by Brian Lonsdorf
- How to Build a Compiler - by James Kyle
- Immutable Data and React - by Lee Byron
- In The Loop - by Jake Archibald
- Learning Functional Programming with JavaScript by Anjana Vakil
- Performance and benchmarking - by Vyacheslav Egorov
- Really. Javascript. - by Douglas Crockford
- RxJS + Redux + React = Amazing! - by Jay Phelps
- The myth of the "Real JavaScript Developer" - by Brenna O'Brien
- V8, modern JavaScript, and beyond - by Seth Thompson
- What the heck is the event loop anyway? - by Philip Roberts
PHP
- 25 Years of PHP - by Rasmus Lerdorf
- PHP in 2017 - by Rasmus Lerdorf
Python
- 10 Tips for Pythonic Code - by Michael Kennedy
- A tale of concurrency through creativity in Python: a deep dive into how gevent works - by Kavya Joshi
- Beyond PEP 8 - Best practices for beautiful intelligible code - by Raymond Hettinger
- Builtin Superheroes - by David Beazley
- Crypto 101 - by Laurens Van Houtven
- Decorators: A Powerful Weapon in your Python Arsenal - by Colton Myers
- Fear and Awaiting in Async: A Savage Journey to the Heart of the Coroutine Dream - by David Beazley
- Learn Python Through Public Data Hacking - by David Beazley
- Modern Dictionaries - by Raymond Hettinger
- Modules and Packages: Live and Let Die! - by David Beazley
- Python asyncio - by David Beazley
- Python Concurrency From the Ground Up - by David Beazley
- Statistics for Hackers - by Jake Vanderplas
- Transforming Code into Beautiful, Idiomatic Python - by Raymond Hettinger
- Type Hints - by Guido van Rossum
- Understanding the Python GIL - by David Beazley
- What Does It Take To Be An Expert At Python? - by James Powell
Ruby
- In Relentless Pursuit of REST - by Derek Prior
- Let's build a blockchain! β A mini-cryptocurrency in Ruby - by Haseeb Qureshi
- Nothing is Something - RailsConf 2015 by Sandi Metz
Scala
- Striving to Make Things Simple and Fast - by Phil Bagwell
APIs
- How To Design A Good API and Why it Matters - by Joshua Bloch
Artificial Intelligence
- Large-Scale Deep Learning with TensorFlow - by Jeff Dean
- Self-Driving Lessons from Comma AI - by George Hotz
- TensorFlow and Deep Learning without a PhD - by Martin Gorner
- TensorFlow and Deep Learning without a PhD, Part 2 - by Martin Gorner
Paradigms and Principles
Event-Driven Architecture
- Creating event-driven microservices: the why, how and what - by Andrew Schofield
- The Many Meanings of Event-Driven Architecture - by Martin Fowler
CQRS and Event Sourcing
- A Decade of DDD, CQRS, Event Sourcing - by Greg Young
- CQRS and Event Sourcing - by Greg Young
- DDD, event sourcing and CQRS β theory and practice - by Golo Roden
- Scaling Event Sourcing for Netflix Downloads - by Phillipa Avery and Robert Reta
Functional Programming
- Controlling Time and Space: understanding the many formulations of FRP - by Evan Czaplicki
- Functional Programming Patterns for Mere Mortals - by Daniel Chambers
- Railway Oriented Programming - error handling in functional languages - by Scott Wlaschin
- Why Isn't Functional Programming the Norm? - by Richard Feldman
Programming Language Principles
- Clean Code - Uncle Bob - by Robert Cecil Martin
- Types, and why you should care - by Yaron Minsky
Cloud Computing
- 12-Factor Apps and the Hashistack - by Kelsey Hightower
- Achieving Rapid Response Times in Large Online Services - by Jeff Dean
- A Day in the Life of a Netflix Engineer - AWS re:Invent 2015 - by Dave Hahn
- Build user trust: running containers securely with Google Container Engine - by Alex Mohr and Jessie Frazelle
- Building Software Systems At Google and Lessons Learned - by Jeff Dean
- Cluster Management at Google with Borg - by John Wilkes
- Container management and deployment: from development to production - by Kelsey Hightower
- Infrastructure as Code Might Literally Be Impossible - by Joe Damato
- Infrastructure as Code Might Literally Be Impossible Part Two - by Joe Damato
- Scaling at GitHub - by Patrick Reynolds
- Scaling Redis at Twitter - by Yao Yu
- Scaling Up to Your First 10 Million Users - by Joel Williams
Computer Security
- Esoteric sub-domain enumeration techniques - by Bharath Kumar
- OAuth 2.0 and OpenID Connect (in plain English) - by Nate Barbettini
- Pwned By the owner: What happens when you steal a hackers computer - Defcon 18 - by Zoz
Cryptocurrency
- Ethereum in 25 Minutes, Version MMXVII - by Vitalik Buterin
Database Systems
- Efficient Time Series with PostgreSQL - by Steve Simpson
- Modern SQL in PostgreSQL - by Markus Winand
- PostgreSQL + ZFS: Best Practices and Standard Procedures - by Sean Chittenden
- Things every developer absolutely, positively needs to know about database indexing - by Kai Sassnowski
- Transactions: myths, surprises and opportunities - by Martin Kleppmann
- Tuning PostgreSQL for High Write Workloads - by Grant McAlister
DevOps
- How Netflix Thinks of DevOps - by Dave Hahn
- Modern Continuous Delivery - by Ken Mugrage
- Tracing, Fast and Slow: Digging into & improving your web serviceβs performance - by Lynn Root
Distributed Systems
- Applying the Saga Pattern - by Caitie McCaffrey
- A Brief History of Distributed Programming - by Christopher Meiklejohn, Caitie McCaffrey
- A Tour Through the Distributed System Zoo - by Mariano Guerra
- Conflict Resolution for Eventual Consistency - by Martin Kleppmann
- CRDTs and the Quest for Distributed Consistency - by Martin Kleppmann
- Distribution, Scale and Flexibility with ZeroMQ - by Pieter Hintjens
- Everything Will Flow - by Zach Tellman
- Jepsen 9: A Fsyncing Feeling - by Kyle Kingsbury
- Practical Load Balancing with Consistent Hashing - by Andrew Rodland
- The Anatomy of a Distributed System - by Tyler McMullen
- What We Talk About When We Talk About Distributed Systems - by Alvaro Videla
Microservices
- Deploying And Scaling Microservices - by Sam Newman
- Design Microservice Architectures the Right Way - by Michael Bryzek
- Globally scalable microservices with Container Engine & Cloud Load Balancing - by Sandip Dinesh
- Mastering Chaos - A Netflix Guide to Microservices - by Josh Evans
- Microservices at Netflix Scale: Principles, Tradeoffs & Lessons Learned - by R. Meshenberg
- Principles Of Microservices - by Sam Newman
- The Seven (More) Deadly Sins of Microservices - by Daniel Bryant
Operating Systems
Unix
- Early days of Unix and design of sh - by Stephen R. Bourne
- Unix Architecture Evolution from the 1970 PDP-7 to the 2018 FreeBSD Important Milestones and Lesson - by Diomidis Spinellis
Software Testing & Automation
- Integrated Tests Are A Scam - by J.B. Rainsberger
- Modern Web Testing and Automation with Puppeteer - by Andrey Lushnikov and Joel Einbinder
- The Magic Tricks of Testing - by Sandi Metz
Miscellaneous
Fun to Watch
- Best Practices for Software Development - by Chet Haase
- Computers are a sadness, I am the cure by James Mickens
- Developer Stand up Comedy - by Scott Hanselman
- If you wish to learn ES6/2015 from scratch, you must first invent the universe - by Ashley Williams
- It Was Never Going to Work, So Letβs Have Some Tea - by James Mickens
- Life As A Developer: My Code Does Not Work Because I Am A Victim Of Complex Societal Factors That Are Beyond My Control - by James Mickens
- Life is Terrible: Lets Talk About The Web - by James Mickens
- Not Even Close: The State of Computer Security - by James Mickens
- Perfectly Executing The Wrong Plan - by Tomer Sharon
- Programming is terrible β Lessons learned from a life wasted. - by Thomas Figg
- Single Point of Failure: The (Fictional) Day Google Forgot To Check Passwords - by Tom Scott
- Tail Call Optimization: The Musical!! - by Anjana Vakil & Natalia Margolis
- The Birth & Death of Javascript - by Gary Bernhardt
- The Social Coding Contract - by Justin Searls
- The Worst Programming Language by Mark Rendle
- Virtual Machines, JavaScript and Assembler - by Scott Hanselman
- WAT - by Gary Bernhardt
- What Is Open Source & Why Do I Feel So Guilty? - by Jacob Thornton
- WTFJS - by Brian Leroux
IDEs and Editors
- 7 Habits For Effective Text Editing - by Bram Moolenaar
- How to Do 90% of What Plugins Do (With Just Vim) - by Max Cantor
- Learning Vim in a Week - by Mike Coutermarsh
- Mastering the Vim Language - by Chris Toomey
- More Instantly Better Vim - by Damian Conway
- Precision Editing at the Speed of Thought - by Drew Neil
- Going Mouseless with Vim, Tmux, and Hotkeys - by Leeren Chang
- vim + tmux - by Nick Nisi
- Xi: an editor for the next 20 years - by Raph Levien
Version Control
- Dissecting Git's Guts - by Emily Xie
- Git - by Linus Torvalds
Contribute
Contributions welcome! Read the contribution guidelines first.