So you want to game the system and get promoted?

  • Publish Date
  • Reading Time
    6 minutes
  • Tags
    • Self Improvement

    Getting promoted can be a complex and often unpredictable process. Ideally, career promotions should be based solely on merit, where rewards are proportionate to your proven abilities and individual performance.

    However, demonstrating your capability to deliver at the next level involves more than just personal achievement. Factors largely beyond your control, such as the company’s and industry’s current performance, internal bureaucracy, and individual biases, can all have a negative influence on the final outcome.

    I recently participated in two promotion cycles at Coinbase. Initially, I was passed over during the mid-year review but secured the promotion on my second attempt six months later. With hindsight, I’ve taken some time to reflect on why I was unsuccessful initially and what changed to lead to success in the following cycle.

    By the end of the first quarter, I was responsible for and successfully launched several major feature releases. End users were pleased. My manager was satisfied. I was confident that a repeat performance in the second quarter would all but guarantee me a senior role.

    Unfortunately, a team-wide architectural overhaul in the second quarter resulted in code freezes that disrupted code merges and production deployments. Although I had technically completed my assigned tasks, the work was ultimately held up by frozen pull requests and backend dependencies that faced similar issues.

    Despite these challenges, the promotion packet was submitted at the end of the second quarter. I hoped that the impact of the re-architecture on the entire team would be considered, even though my Objectives and Key Results (OKR henceforth) were not fully met.

    A few weeks later, I received the disappointing news. I was devastated. Not just by the result, but by the feeling that an uncontrollable factor had impeded my progress. The decision left me feeling jaded and resentful. It felt like I was back at square one, and what was to stop a similar scenario from unfolding before the next packet submission?

    On reflection, I realised that other engineers had been promoted during this period. This led me to two conclusions: either those engineers managed to overcome the code freeze and deliver results, or they demonstrated competency in areas beyond just meeting OKRs.

    This realization underscored that promotion considerations extend beyond individual efforts. As a software engineer, you’ll eventually become responsible for areas you don’t directly contribute to, even as an Individual Contributor. Besides achieving hard results, cultivating soft skills becomes equally important.

    So, how did I game the system and secure the promotion? In truth, I didn’t. At least not in that sense. But don’t let the truth get in the way of a good clickbait title.

    I’m a lifelong gamer, with a particular soft spot for role-playing games. For the uninitiated, these game provide mechanisms for you to improve core abilities to take on greater challenges. Assuming you are meeting the technical requirements for your next role, I’m going to outline the outside factors that I believe contributed to my promotion, and contextualise them within the core statistics of role playing games.

    Special thanks to Chafin Bryant for seeing it through with me 👊🏻


    Learn to flex. Create a brag list to document your accomplishments. A brag list is an invaluable tool for tracking your smart goals and helping you stay focused throughout the year. Continual progress simplifies demonstrating your value during performance reviews and promotion discussions. Rather than scrambling to recall earlier achievements before the packet submission, this living document will already offer all relevant information and context from when it was recorded. When noting your accomplishments, make sure to highlight the existing problem, what you did to solve it, and the benefits of the result.

    Enjoying the article?

    Support the content


    Learn to be agile. The word itself has picked up baggage in recent years, but here I’m referring to a method of execution rather than an idealistic process. Being agile essentially makes complex projects more approachable. Even if the end goal is not entirely clear, breaking down large tasks into smaller ones and using project management tools to track them provides a structured path forward. This also helps distribute work effectively to other team members. Most importantly, it provides clear milestones, allowing stakeholders to see tangible progress throughout the project’s lifespan, and not just the end result.


    Learn to stand firm. Set clear boundaries for yourself and your team, and prioritise managing your time effectively. Doing so will help you to control the project scope’s and avoid the otherwise inevitable overwork and burnout. Sticking to these principles will ensure a sustainable performance over time and a healthier work environment. Regardless, things won’t always go your way; it’s possible to commit no mistakes and still lose, after all. It’s important to remain calm in these situations, and focus on solving problems rather than complaining about them. You’ll lead by example and become known as a dependable source.


    Learn to solve problems. Level up your technical skill set outside of your daily workload: write a technical blog, work on some fun side projects, and learn from others through educational courses. While these may not directly appear in a promotion packet, they’ll benefit your overall growth as a software engineer. These transferable activities will refine your communication skills, increase motivation, and enhance your day-to-day output.


    Learn to solve the right problems. Focus on understanding and aligning your efforts with that of your company. What your manager (and their manager) are looking for will yield far more impact than something you personally find interesting. Better still, if your company holds cultural tenets, demonstrate their application in your accomplishments. Additionally, mentor less experienced colleagues to help them solve similar problems. Assign them relevant work, provide regular feedback, and celebrate their successes to support their growth and promotion. A rising tide lifts all ships.


    Learn to network. Attend company and industry events, and build rapport with your wider network. Promotions are often decided by a committee of senior peers and managers. By collaborating with others, you’ll build presence within your company and become known within your professional sphere. Strengthen your relationship with line managers and senior peers by understanding their goals, requesting feedback, and showing appreciation for their efforts. Since they will likely champion you during the promotion cycle, help them see your true worth, both as a professional and an individual. Finally, I’ll leave you with one of my favourite quotes from Sara Viera: ”You can teach someone to code, but you can’t undick a person”. Sage advice.

    If you enjoyed the article, please share it with others on Twitter or LinkedIn.

    Related Articles