How do simple, classical interactions give rise to the astoundingly rich and complex structures that form on the nano- to micronscale? To address this question, my research group uses, and develops, a combination of state-of-the-art computational and machine learning algorithms to study self-assembly in soft matter systems – both in and out of equilibrium. My research has made significant contributions to our understanding how defects manifest in colloidal crystals, crystal nucleation, the relationship between structure and dynamics in supercooled liquids, and self-assembly behaviour in active colloids. Two themes of particular focus in my group at the moment are i) understanding the interplay between defects and phason strain in the self-assembly of soft matter quasicrystals ii) harnessing machine learning algorithms to shed new light on colloidal self-assembly.