It has been known for some time that algebraic geometry and representation theory are useful for proving lower bounds on the complexity of the matrix multiplication operator. In this talk I will explain how geometry can be used to prove both upper and lower bounds. After a discussion of the problem and its history, I will present very recent work with M. Michalek on border rank algorithms.