Type theory is a family of logical systems with computer-friendly features. Some of the most expressive systems have therefore been implemented in the form of proof assistant software such as Coq, Agda, Matita, Lean, etc, where developing mathematical proofs is akin to programming. Mathematical objects are typed, and in the modern view of type theory, proofs themselves are considered as mathematical objects on a par with e.g. functions and integers. Proofs can be quantified over, and equalities between proofs stated. For instance, we will see that a proof that A implies B is a (total) function from A to B. Proofs of equalities, however, have not connected so well with familiar programming concepts. Indeed, generalising to rich type theories the understanding of equality that we have, based on reflexivity and Leibniz’s principle, is often counter-intuitive. I will show, with a live Coq demonstration, some of the main questions about equality proofs, such as properties J and K and the John Major equality. Finally, I will explain how homotopy theory has shed light on these questions, opening up one of the most ‘in vogue’ area of research in the field, Homotopy Type Theory.