Becoming a professional software developer is more than just getting better at a particular language, or learning more algorithms. You must learn about the development process itself, about design and architecture of a product. Following are a few things to consider/
- Make sure your code is the correct code for the project as a whole.
- Does it help you achieve the larger goals?
- Does it impede future development or constrain possible future goals in any way?
- Can you adjust constraints in a way that adds more value to the product?
- What are the documentation implications of writing it a particular way?
- Is it easy for someone else to pickup where you left off?
- How should I break down the tasks into small ones such that there’s time to test things out and increase confidence on the new changes?