For a long time I didn’t get the personal benefits of sending code reviews to engineers who are less experienced than me. A more senior developer knows the system better, other design patterns, language best-practices, but what does a junior engineer bring to me? I know it sounds selfish and wrong, but I couldn’t think of an answer.
Well it really dawned on me while reading A Philosophy of Software Design by John Ousterhoust. As software developers “our primary goal is to produce great design, which also happens to work”. The code needs to be easy to understand and facilitate future extensions.
So who better to judge if your code is understandable than someone less experienced with the code base, problem, patterns? Every clarification question becomes a signal to refactor and improve the code. Making you a better engineer in return.