How do we design interfaces? What is a good design? How can we tell that something is wrong? Josh Bloch has many years of hands on experience working on the Java Collection framework as well as the math library. He will engage us into a discussion of keys principles. Josh has also been active on the legal front, battling for the right to reimplement interfaces. He will update us on the latest developments.