Loved this article! It really resonated with me. To augment what you said about running the tests, experienced programmers will also write new tests (that fail) that demonstrate an issue. Again, use tests to drive code design and development.

I'm a big fan of getting your observability story sorted out sooner rather than later and become proficient at it. If root cause analysis is difficult, that should be an indication that you need better tooling and techniques. Using chaos engineering tooling to simulate issues and practice your root cause analysis process.

Good stuff, as always, Bennett!

--

--

Loved your callout about pair programming. If I was looking to join a company full-time (I currently consult), this would be my make or break answer. I have worked in a few organizations that used pair programming over 75% of the time and those engagements were the most rewarding and successful engagements. Unfortunately, most organizations view software development as a factory, pumping out widgets, thus those organizations promote the idea of more fingers on keyboards. Software development is a high-communication endeavor, but I rarely see software development projects optimized for communication and collaboration.

--

--

I see a lot of contract-for-hire engagements these days in my consulting. Initial 3-6 month contract with the opportunity to offer full-time employment to the contractor at the end of the contract. I typically stay away from these contracts as I am generally not interested in full-time, salaried employment, but this approach does seem to be used frequently to try out a candidate before making an offer. Again, the company is trying to mitigate the risk of making a bad hire.

--

--

Love the callout for pair programming. If your team is remote, learn how to use collaboration tools to facilitate real pair programming. Tuple, Code with Me (JetBrains) and Visual Studio Live Share come to mind. Teams that embrace pair programming are almost always high functioning teams--they get collaboration and embrace it.

--

--

There are outliers...I'm 55 and have been programming professionally for 27 years. I have had many opportunities to join a company and probably move into a managerial role. I have resisted those overtures and have stayed in independent consulting for the past 16 years. I like building things and I have no problem picking up new technologies that my clients ask me to learn and use on their products. So there are older developers out there; you just have to look hard to find them.

--

--