This advice is mostly for people starting out in their careers in software engineering.
On your first day at a new job, start a document called “Promotion Packet”. If you are working for a company with published level descriptions, put in the job description of the the next level and include the judgement criteria in your employer’s words.
Find the company’s annual goals, OKRs, KPIs, etc, and ask how they trickle down to your department (and ultimately you). Write this down in your promotion packet as well.
Then, as you are working, look out for opportunities that align with that judgement criteria and the goals.
Finally, critically, keep track of all of those accomplishments with links. Make a digital footprint. For a programmer, that might be:
- Code
- PR comments
- Documents (specifications)
- Times where you are mentoring
- Participation in decision making
You are specifically looking for places where you are driving outcomes that the company leadership thinks is important and makes the case that you are operating at the next level. In your promotion packet document, you would want to write a two-sentence summary of the accomplishment and then a link to the proof.
I wrote about the general requirements of higher engineering levels in How Senior Software Developers Think. In short, it’s ever expanding scope and leverage.
If a performance review comes up before your next chance at a promotion, then you can use the information in this packet for that.