How To Design A Good API and Why it Matters is a great talk that Joshua Bloch gave at Google. It's actually over 10 years old now but still very relevant. I recently rewatched it and this post contains the summary notes I made.