Creating a good design is hard. Learning about principle helps, but seeing them in action can help to reinforce the concepts. Furthermore, we can get clarity on how to approach design and exercise some rather common approaches that are hidden in plain sight in libraries we use each day.
We will start with a problem and discuss various design options and evolve towards an extensible solution.