Over on /r/ruby, someone asked How to be a Senior engineer from a Junior or Mid-level engineer?.
Two of the most important things for my journey have been mentoring and improving my skills at communication.
First, in mentoring people, I learn and refine my approach and understanding. This helps me better communicate to team members and convey the vision I’m seeing and hoping that we achieve.
And communication skills build from there. I take time in my commit messages to write about the changes I made, in particular why I made them, and what the prior state was before the commit. I also write lots more documentation, diagrams, and runbooks.
None of this is code (per se) but instead demonstrates that I’m sharing my vision and understanding. From there, it becomes far easier to work on the challenging stuff, because I’ve taken the time to ensure that I’m not running too far afield from those less experienced (or taking a different path) than me. 47