Many developers rise to surprisingly senior positions without having any idea which design patterns lead to success and which to failure. To learn the right patterns, begin by temporarily ignoring everyone around you. Shut the door. Then find your favorite open source projects, and go see what they do. Do not attempt to read or understand all or even most of their code. Look for broad patterns. What tools they use. How they organize their code. Do they specify dependencies as specific versions, like `pkg==1.2.3`, or do they usually just specify `pkg`, and rarely `pkg>=1.2.2`? Many quite popular tools choose defaults that run contrary to the received wisdom you'll find in nearly every successful open codebase. Before you can learn from your colleagues, remember that most startups fail, and many large companies are quite dysfunctional and can afford inefficient developer teams. First learn from the many successful open codebases you use in your day to day life. Distill the patterns they share, and you'll be years ahead of your contemporaries in your intuition about your field.