Designing interfaces so that other code can interact with ours (whether our code is a library, framework, application, website...) is a very common and clearly crucial activity, but fraught with dangers — stuff we all keep doing wrong time after time. This talks shows some common cases of API design errors encountered in the wild, with tips on how to avoid them when you design your next API.