What I learned working with a Software Engineer with 10+ Years of Experience

Published:

Today, I worked with Kien Do, a Software Engineer who has over 10 years of experience. Here are four principles I noticed while working with him that has helped me be more effective:

  1. Take your Time: Rushing through a task will only lead to more debugging later. Plan and do it right the first time. This will help you build confidence in your codebase. If needed, communicate to your manager that you need more time to complete the task.
  2. Thoroughness is key: Follow each step diligently and ensure correctness at every stage in development. This includes syntax, understanding system changes, and confirming successful implementation.
  3. Comprehensive Understanding: Think deeply about the system and consider every interaction within the code. Try to save time and effort by addressing potential bugs before they manifest.
  4. Collaborate and Continuous Refinement: Upon completion of work, view the code of other software engineers and see what you can improve. Further, seek to teach others and you will understand your own systems better.

Working with more experienced engineers has helped me learn new things that I cannot learn from reading a textbook or taking a class. These principles likely have come from experience and trial & error. I am appreciative of being able to save some effort and learn directly from these more senior engineers.

Editor Note #1: After showing this post to Kien, he pointed that with respect to “Comprehensive Understanding”, there is a balancing point between moving fast and fully understanding a system. An good engineer is able to balance these two competing priorties.

Editor Note #2: 9 months later, I have read back this post and can summarize it into two sentences.

  1. Don’t be a code monkey - design before you type (however, don’t overdesign either).
  2. Continously learn and refine your system.