Framework for getting out of complacency & Writing great PRs
Curtis Einsmann wrote a twitter thread on how he improved his PRs over time. I loved the thought he put in to it. He starts by saying that he understands why code quality matters. The main reason is that code is read mostly my humans and therefore it behooves us to keep quality high such that code we write is easily maintainable. He takes on small tasks. Meaning that he breaks up large PRs into smaller and easily reviewable PRs. He invests time up front to ensure his local development environment is ready to code effectively. This may not be super relevant to smaller companies, but at larger companies it might be possible that one week you are writing code in the Java repo and the next week you might be writing code in a Go repo. Important to spend time to make sure the local dev env is setup appropriately. He reads the existing code - this felt closest to my heart. Whenever I need to write some code, I first search for existing patterns, not just in my code base but elsewhere as well. This has helped me numerous times. He talks about planning his code. One thing I have found useful is to write a 1-pager before making any change that might be controversial or might have multiple ways of attempting it. It has always helped to plan ahead.
Apoorva Govind wrote a very insightful post on How to waste your career, one comfortable year at a time. She provides a very useful framework in terms of answering the question “Am I Growing Complacent Currently”? She writes about how complacency is cancer, and how many tech workers has a false sense of loyalty to their companies. But I think the most important point Apoorva makes is that one must optimize for learning over anything else in one’s career early on. I made the mistake of optimizing for salary at the beginning of my career. While I had my own reasons, but had I not optimized for that I would have opened myself up to opportunities which, looking back, would have led to long term acceleration of my career.