API design is something programmers do daily. Every time we come up with a function interface or a method in our backend API – we make a design decision. Good decisions lead to code that is easy to evolve and maintain. Bad decisions can demolish the project.
API design is something we learn by looking at more different systems. Unfortunately, that’s not something we are paid to do 🙂 In this talk, I’d like to share the insights I’ve got from interviewing dozens of people for Code Podcast. We’ll go through examples from DOM API, BitTorrent, Ethereum, several programming languages and UI frameworks. We’ll see how those projects make tradeoffs, what are the characteristics of good and bad design, and how we can make our decisions better.