# Awesome talks

There are a lot of screencasts, recordings of user group gatherings, and conference talks available online. I try to commit myself watching at least two new talks every week, and I’ve been doing this for quite some time now. I created this list of online talks that I really enjoyed watching. I’ll also be updating this list whenever I’ve watched another awesome talk that is worthy enough. Suggestions are always appreciated through a pull request. So without further ado ..

(In no particular order)

### Categories

- Software Development
- Object-Oriented Programming
- Functional Programming
- Software Design
- Web Development
- Test-Driven Development
- Methodologies
- Computer History
- Databases
- Security
- Cognitive Development

#### Software Development

- The Computer Revolution hasn’t happend yet by Alan Kay (OOPSLA 1997) [1:04:34]
- The Future of Programming by Bret Victor (Dropbox’s DBX conference 2013) [32:55]
- Inventing on Principle by Bret Victor (CUSEC 2012) [54:20]
- Media for Thinking the Unthinkable by Bret Victor (MIT Media Lab 2013) [39:32]
- Finding a Way Out by Chris Granger (Strange Loop 2013) [33:46]
- Programming is terrible - Lessons learned from a life wasted by Thomas Figg (EMF 2012) [1:06:43]
- Computers are a Sadness, I am the Cure by James Mickens (Monitorama PDX 2014) [27:35]
- Are We There Yet? by Rich Hickey (JVM Languages Summit 2009) [1:10:04]
- Simple Made Easy by Rich Hickey (Strange Loop 2011) [1:01:26]
- The Value of Values by Rich Hickey (GOTO Copenhagen 2012) [58:53]
- Effective Programs - 10 Years of Clojure by Rich Hickey (Clojure/Conj 2017) [1:14:51]
- The Web We Lost by Anil Dash (Berkman Klein Center 2013) [1:10:54]
- Growing a Language by Guy Steele (ACM OOPSLA 1998) [53:30]
- The Mess We’re In by Joe Armstrong (Strange Loop 2014) [45:49]
- To the Moon! by Russ Olsen (Clojure/Conj 2013) [52:43]
- Simplify Challenging Software Problems with Rocket Science by Bradley Grzesiak (Rocky Mountain Ruby 2015) [23:07]
- A short history of Software Engineering, and other ideas that didn’t work by Paolo Perrotta (Barcelona Ruby Conference 2020) [36:35]
- Linus Torvalds on Git by Linus Torvalds (Google 2007) [1:10:14]
- The Worst Programming Language Ever by Mark Rendle (NDC Oslo 2021) [1:00:40]
- Unconventional Programming with Chemical Computing by Carin Meier (Strange Loop 2015) [36:00]
- Seven Ineffective Coding Habits of Many Programmers by Kevlin Henney (NDC 2014) [01:02:52]
- 5 WTFs in 6 LOCs by Dorothy Wingrove (Brighton Ruby 2016) [05:11]
- Programming is Writing is Programming by Felienne Hermans (NDC Oslo 2017) [55:46]
- We’re Doing It All Wrong by Paul Phillips (Pacific Northwest Scala 2013) [50:42]
- Real Software Engineering by Glenn Vanderburg (Software Art Thou 2018) [1:07:57]
- Feature Branching Considered Evil by Thierry de Pauw (DevTernity 2019) [49:38]
- Programming’s Greatest Mistakes by Mark Rendle (NDC Copenhagen 2022) [55:34]
- Email vs Capitalism: A Story About Why We Can’t Have Nice Things by Dylan Beattie (Joy Of Coding 2023) [54:49]
- Preventing the Collapse of Civilization by Jonathan Blow (DevGAMM 2019) [01:02:41]

#### Object-Oriented Programming

- Functional is cool, but do you know OO by Sandro Mancuso (Devoxx UK 2013) [54:17]
- Stop Writing Classes by Jack Diederich (PyCon US 2012) [27:29]

#### Functional Programming

- Functional Principles for Object-Oriented Developers by Jessica Kerr (JDD Conference 2013) [51:13]
- Adventures in Functional Programming by Jim Weirich (ScotlandJS 2012) [50:34]
- Functional Programming: What? Why? When? by Robert C. Martin (NDC 2014) [58:26]
- Deconstructing Functional Programming by Gilad Bracha (QCon 2013) [48:33]
- Living in a Post-Functional World by Daniel Spiewak (Lambda Jam 2013) [45:46]
- Extreme Cleverness: Functional Data Structures in Scala by Daniel Spiewak (Clojure/Conj 2013) [39:24]
- Tangible Functional Programming by Conal Elliott (Google TechTalks 2007) [56:24]
- Faith, Evolution, and Programming Languages by Phillip Wadler (Google TechTalks 2007) [1:06:53]
- Don’t fear the Monad by Dr. Brian Beckman (Channel 9 2012) [1:07:10]
- Functional Programming Design Patterns by Scott Wlaschin (NDC London 2014) [1:49:10]
- Domain modelling with the F# type system by Scott Wlaschin (NDC 2014) [1:03:40]
- Propositions as Types by Philip Wadler (Strange Loop 2015) [42:42]
- Category Theory for the Working Hacker by Philip Wadler (Joy of Code 2016) [42:17]
- Types are like the Weather, Type Systems are like Weathermen by Matthias Felleisen (Clojure/West 2016) [1:15:18]
- Functional architecture - The pits of success by Mark Seemann (NDC Sydney 2016) [1:00:09]
- To Clojure and back: Writing and rewriting in Ruby by Phillip Mendonça-Vieira (RubyConf 2016) [33:16]
- All I needed for FP I learned in High School Algebra by Eric Normand (Clojure/Conj 2017) [33:05]
- Solving Problems The Clojure Way by Rafal Dittwald (Clojure/North 2019) [01:02:25]

#### Software Design

- Architecture the Lost Years by Robert C. Martin (Ruby Midwest 2011) [1:06:38]
- DDD: putting the model to work by Eric Evans (JAOO 2007) [58:48]
- Unleash Your Domain by Greg Young (Øredev 2010) [45:20]
- The Art of Destroying Software by Greg Young (tretton37 2023) [42:30]
- 8 Lines of Code by Greg Young (QCon 2013) [54:43]
- Strategic Design by Eric Evans (JAOO 2007) [54:40]
- Reliability, Availability, and Scalability by Udi Dahan (IASA 2008) [1:11:09]
- Implementing Micro Service Architectures by Fred George (Øredev 2013) [54:40]
- Immutability Changes Everything by Pat Helland (RICON 2012) [45:19]
- Crafting Wicked Domain Models by Jimmy Bogard (NDC 2012) [1:03:03]
- The Actor Model by Hewitt, Meijer and Szyperski (Lang.NEXT 2012) [42:34]
- How To Design A Good API and Why it Matters by Josh Bloch (Google TechTalks 2007) [1:00:18]
- The Joys and Pains of a Long Lived Codebase by Jeremy D Miller (QCon 2009) [1:02:30]
- Microservices by Martin Fowler (GOTO 2014) [26.25]
- Stewardship: The Sobering Parts by Brian Goetz (Clojure/Conj 2014) [1:03:30]
- Therapeutic Refactoring by Katrina Owen (Cascadia Ruby Conf 2012) [26:04]
- Evidence-Oriented Programming by Andreas Stefik (Strange Loop 2015) [41:42]
- The Programming Language Wars by Andreas Stefik (CodeMesh 2014) [50:28]
- Hopelessness and Confidence in Distributed Systems Design by Camille Fournier (Strange Loop 2015) [40:35]
- Kill “Microservices” Before Its Too Late by Chad Fowler (Rocky Mountain Ruby 2016) [39:41]
- The Lost Art Of Software Design by Simon Brown (YOW! 2019) [46:15]
- Tidy First by Kent Beck (QCon 2023) [46:19]

#### Web Development

- Crockford on JavaScript by Douglas Crockford (Yahoo Theater 2011) [10:14:37]
- Go To There and Back Again by Douglas Crockford (Øredev 2013) [49:06]
- The Better Parts by Douglas Crockford (JS Fest 2018) [01:00:52]
- Introduction to Node.js by Ryan Dahl (BayJax/Yahoo 2011) [58:19]
- WAT by Gary Bernhardt (CodeMash 2012) [4:17]
- The Birth & Death of JavaScript by Gary Bernhardt (PyCon 2014) [29:22]
- Hey Underscore, You’re Doing It Wrong! by Brian Lonsdorf (HTML5 Dev Conf 2015) [36:30]
- Community.js by Chris Williams (JSConfEU 2010) [21:39]
- An End to Negativity by Chris Williams (JSConfEU 2011) [27:25]
- Is Node.js Better by Brian Ford (JSConf 2012) [41:42]
- Life is Terrible: Let’s Talk About the Web by James Mickens (Øredev 2014) [32:07]
- Critical rendering path - Crash course on web performance by Ilya Grigorik (Fluent 2013) [41:10]
- 10 Things I Learned from the jQuery Source by Paul Irish (TXJS conference 2010) [53:40]
- Om Next by David Nolen (EuroClojure 2015) [46:17]
- ClojureScript for Skeptics by Derek Slager (Clojure/Conj 2015) [41:08]

#### Test-Driven Development

- TDD, where did it all go wrong by Ian Cooper (NDC 2013) [1:00:37]
- Holistic testing by Jimmy Bogard (NDC 2013) [1:00:33]
- Boundaries by Gary Bernhardt (SCNA 2012) [33:44]
- Is TDD Dead? by Martin Fowler, Kent Beck, and David Heinemeier Hansson (DHH) (Blog/Martin Fowler 2014) [Article]
- The Transformation Priority Premise by Robert C. Martin (NDC 2011) [53:43]
- TDD in Tatters by Scott Bellware (NDC 2014) [01:07:53]
- Test-Driven Development - Write better code in less time by Evan Dorn (LA Ruby 2012) [30:54]
- The Magic Tricks of Testing by Sandi Metz (Rails Conf 2013) [32:22]
- How To Stop Hating Your Tests by Justin Searls (RubyConf 2015) [43:39]
- Why You Don’t Get Mock Objects by Gregory Moeck (RubyConf 2011) [44:42]
- The Clean Code Talks - Unit Testing by Misko Hevery (Google TechTalks 2008) [32:07]
- TDD and Software Design by JB Rainsberger and Sandro Mancuso (YouTube/Carlos Blé 2008) [01:28:50]
- Integrated Tests Are a Scam by JB Rainsberger (DevConFu 2013) [01:04:35]
- Structure and Interpretation of Test Cases by Kevlin Henney (JavaZone 2018) [01:04:23]
- Does TDD Really Lead to Good Design? by Sandro Mancuso (DevTernity 2018) [57:59]
- TDD For Those Who Don’t Need It by Chew Choon Keat (GopherCon SG 2017) [13:42]
- TDD: Theme & Variations by Kent Beck (Tech Excellence 2024) [57:29]

#### Methodologies

- The Land that Scrum Forgot by Robert C. Martin (NDC 2011) [45:41]
- Demanding Professionalism in Software Development by Robert C. Martin (Elapse Technologies 2012) [45:03]
- Spotify Engineering Culture - Part 1 by Spotify Training & Development (Spotify 2014) [13:12]
- Spotify Engineering Culture - Part 2 by Spotify Training & Development (Spotify 2014) [13:27]
- Adopting Continuous Delivery by Jez Humble (NDC 2013) [47:22]
- The Death of Agile by Dave Thomas (Rethink 2014) [47:47]
- Why Agile Works by Alistair Cockburn (Agile Lietuva 2012) [53:03]
- Implementing Programmer Anarchy by Fred George (Øredev 2013) [54:55]
- Moving Past the Scaling Myth by Michael Feathers (Philly ETE 2017) [52:02]
- It Is Not About Software Anymore by Mary Poppendieck (Agile India 2020) [01:06:38]
- 7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development by JB Rainsberger (Øredev 2013) [00:07:42]
- Explaining Team Flow by Michel Grootjans (Michel Grootjans 2021) [14:30]
- The Efficiency Paradox by Niklas Modig (TEDx Umeå 2016) [18:48]
- Extreme Product Development by Peter Hilton (Devoxx UK 2024) [47:53]

#### Computer History

- A Brief History of Graphics by Stuart Brown (YouTube/Ahoy 2014) [46:00]
- The Charming Genius of the Apollo Guidance Computer by Brian Troutwine (Code Mesh 2015) [48:36]
- The History (and the Future) of Software by Grady Booch (CHM Live 2016) [01:09:27]
- The Future of Programming by Robert C. Martin (X/UP 2016) [01:18:20]
- 1968 by Kevlin Henney (Beauty in Code 2018) [56:44]
- DOOM’s Development: A Year of Madness by John Romero (WeAreDevelopers 2018) [44:12]
- The Boeing 737 MAX: When Humans and Technology Don’t Mix by Kyle Kotowick (NDC TechTown 2022) [01:00:45]

#### Databases

- Deconstructing the Database by Rich Hickey (JaxConf 2012) [1:06:23]
- Things Every Developer Absolutely, Positively Needs To Know About Database Indexing by Kai Sassnowski (Laracon EU 2019) [41:49]

#### Security

- Why Do Keynote Speakers Keep Suggesting That Improving Security Is Possible? by James Mickens (USENIX Security ’18-Q) [51:21]

#### Testing

- Acceptance Testing For Continuous Delivery by Dave Farley (PIPELINE Conference 2015) [01:02:34]

#### Cognitive Development

- A Lecture on Creativity by John Cleese (London 1991) [36:59]
- The Meaning of Life by Derek Sivers (YouTube/Derek Sivers 2014) [18:54]
- Becoming an Outlier: Career Reboot for the Developer Mind by Cory House (NDC 2014) [59:12]
- Surviving the Framework Hype Cycle by Brandon Hays (Mountain West Ruby 2016) [35:26]
- Stop Treading Water - Learning to Learn by Edward Kmett (YOW! 2014) [40:58]
- The Last Lecture: Achieving Your Childhood Dreams by Randy Pausch (Carnegie Mellon 2007) [1:16:26]
- Steve Jobs’ 2005 Stanford Commencement Address by Steve Jobs (Stanford 2005) [15:04]
- Hammock Driven Development by Rich Hickey (Clojure/Conj 2010) [39:48]
- Drive - The Surprising Truth About What Motivates Us by RSA Animate (YouTube/RSA 2010) [10:47]
- Ideology by Gary Bernhardt (Strange Loop 2015) [21:22]

## License

talks.md Github