As a software engineer, Dan Sturtevant SM ’08, PhD ’13 had jobs where making a small change to a codebase was easy — and jobs where a similarly small change would cause other, seemingly random parts of the codebase to break down or malfunction. Making these changes could remind Sturtevant what he liked about being a programmer, or make him feel like an idiot. That experience still puzzled Sturtevant when he arrived at MIT in 2006, first as a master’s and later as a PhD student. Then, he stumbled onto…