"APIs are hard. They are pretty much ship now, regret later." -- Chet Haase.
What do Greek philosophy, early video games, and Japanese bullet trains tell us about how we should design our APIs?
Writing any old API is easy. Writing an API that can evolve to meet your needs over the coming months, years, and even decades; now that's hard. We'll look at some common practices and try to see where they go wrong, some misunderstood techniques and how to use them better, and some less common practices that might be useful.
Let me give you some good advice that'll help you evolve your APIs, and some big ideas that might provoke some interesting thoughts.