* You are expected to manage your career and growth. Don’t rely on or expect your manager or someone else to do that for you. You’ll get lots of good advises around how to grow in your career. It essentially boils down to taking initiative and driving those to closure.
* Understand the product end-to-end as an end-user. All the use cases, all the flows.
* Understand the business model, how it relates to the product and how that product (or part of it) in turn relates to what your team and you are working on. This is much harder than it sounds which is why you need to relentlessly pursue this. The code base you are working on has an abundant of domain knowledge and architectural decisions built into it. Build a mental model of both that domain knowledge as well that architecture. You will rarely find those documented so you need to put in a lot of effort to know all the use cases and relate them to control and data flows. Trace different requests through the system, use whatever tools that are at your disposal (debugger, logs, metrics etc.,). This mental model will really help you accurately estimate feature requests.
* Help those around you in whatever way you can. Treat all the functions (HR, finance, marketing etc.,) with equal respect. Get to know them, what they do on a daily basis, their pain points. If not to help them then at least to empathize with them.
* Actively look out for inefficiencies (e.g., build taking 20+ minutes, broken unit tests, chronic production issues) and take time out to fix them. Even if no-one appreciates this you will have at least a feeling of fulfillment of having achieved something valuable to the business/company. In the process, you will have learned something new.
* Make full use of vacation policy. No one’s going to tell you to take a vacation you gotta take care of your physical/mental health yourself.