Sunday January 13, 2019
I enjoy listening to tech talks from expert software engineers. When you listen to a good tech talk, you’re given the opportunity to learn from someone else’s experiences, and this is really valuable in such a fast-moving industry. A lot of tech talks from big developer conferences are posted online for free, and I’ve kept a list of some of my favorite tech talks from the last several years. These are the five tech talks that have had the most influence on me personally, and I think that anyone who’s a web developer should listen to them if you haven’t already. Although most of them are several years old by now, I think the ideas presented in them have already stood the test of time. So while some technological details might change, the big ideas presented are still relevant and will continue to be for a long time.
Why Google Stores Billions of Lines of Code in a Single Repository (Rachel Potvin, 2015)
As you might guess from the title, this video is all about the benefits of storing your code in a large monolithic repository. I personally think monolithic repositories are great, for all the reasons discussed in the talk. Unfortunately, it often seems like starting a conversation about a monolithic repository is almost as difficult as talking about tabs vs spaces. But regardless of whether you think a monolithic repository is ideal for your working environment, I think it’s important to understand the trade-offs you’re making by going one way or the other. Besides that, the talk also contains valuable ideas about the way Google approaches refactoring and code maintenance on such a large scale.
Spotify Engineering Culture, part 1 (Spotify, 2014)
Spotify Engineering Culture, part 2 (Spotify, 2014)
The Spotify engineering culture videos were relatively popular in the software engineering community when they first came out several years ago, and if you haven’t seen them you definitely should. Although these are technically two separate videos, I’m counting them as a single tech talk in my list. These videos focus more on the business aspects of building software than the technical details. They discuss things like agile practices and team organization. The videos are really well done and present many well thought out ideas, so it’s likely you’ll be able to learn something from them even if your work environment is a little different.
Architecting for CI Success (Jez Humble, 2015)
Jez talks about continuous delivery, dev ops, and how to overcome some of the hurdles that people often face when trying to implement dev ops practices. His talk is full of practical advice that focuses on building scalable, maintainable, and reliable solutions. He touches on deployment pipelines and testing strategies for producing low-risk, easy to manage releases. He also discusses service architecture patterns that support some of these dev ops practices. Overall, he’s a great speaker, and the talk is definitely worth listening to.
Continuous Delivery: The Dirty Details (Mike Brittain, 2013)
Mike Brittain was an engineer at Etsy when he gave this talk, which is an overview of some of the engineering practices Etsy uses for continuous delivery. He also briefly mentions some other challenges and solutions, such as scaling to large traffic volumes and degrading service gracefully. One of the reasons I like this talk so much is that it seems to pull back the curtain a little bit on how continuous delivery impacts the developers at Etsy on a daily basis. When watching the talk, it’s clear that Etsy doesn’t just talk about abstract ideas but actually implements them in ways that some people would consider a little bit radical. And you can see concrete benefits that have developed out of some of the ideas they’ve implemented.
Pushing Millions of Lines of Code Five Days a Week (Chuck Rossi, 2011)
Releng 2014 Keynote (Chuck Rossi, 2014)
Rapid Release at Massive Scale (Chuck Rossi, 2017)
If you only watch one tech talk from my list, watch one of Chuck Rossi’s talks. The oldest one is my favorite, but they’re all great. Chuck Rossi was the Release Engineering Director at Facebook, and his presentation about how Facebook manages its releases remains my favorite tech talk to this day. Chuck talks about how source code is developed, tested, and released at a company that maintains one of the largest web applications in existence. He’s a great speaker, and presents ideas and solutions for challenges that are likely to affect software organizations of any size. If you’re a web developer, it’s critical that you understand how and when your code will roll out to production. I think that one of the reasons I like this talk so much is that Chuck not only explains how Facebook manages these processes, but also explains why they chose certain solutions over others, revealing some aspects of their decision making process.
Chuck has actually given essentially the same talk multiple times, and I’d recommend watching all of them. Although the basic ideas in the talk are the same, by watching different iterations of the same talk you can see how Facebook’s release process has evolved over time, and you can pick out some themes, ideas, and challenges that remain consistent over time. Chuck understands the need to minimize the time between merge and release to production, and has developed solutions to help Facebook do this at a massive scale.
All of these videos have had a significant impact on the way I think about, develop, and release software. I hope you take some time to watch some of them if you haven’t seen them before, and I hope they spark some new ideas for you as they did for me.