🤖 Trae (Sponsor)
Meet Trae - an adaptive AI IDE that transforms how you work, collaborating with you to run faster:
Simply describe your project needs in natural language, and watch it build by Trae
Upload your design files and let Trae assist in translating your visual concepts into clean, workable code.
As you code, Trae learns your project patterns and provides contextually relevant suggestions to help you code more efficiently.
After working in big tech for several years, I've found a few key factors contribute to succeeding at these large companies. While these tips apply to my experience in larger organizations, I strongly believe by following these 3 concepts you can be successful at virtually any company.
Understand Your Team
The first crucial thing you need to do when joining any new company or team is to become intimately familiar with what your team does. While this will slowly happen over time, the faster you can get up to speed, the better. To understand your team it’s important to not only learn about the product that you own, but also the priorities of your team.
Developing a deep understanding of the former helps you understand the needs of your users, be able to debug issues, and offer ways to improve the product. Similarly, learning the priorities of your team gives you insight into how you can best help your team and therefore help your career.
As software engineers, it’s also critical that we understand the code, binaries, and processes our team owns to ship and support the product for our users. Having now understood your team’s product and priorities, you can begin to understand which binaries and code paths are critical for your team to maintain, improve, refactor, etc.
Since it tends to be more difficult to grok this information at specific companies due to large codebases and more red tape around processes, it can be helpful to read design documents. One benefit of larger companies is that because they have more formal processes, most systems will have thorough documentation outlining with great detail how certain systems were built in the past or will be built in the future. Reading through these documents as well as additional documents they may link out to can be extremely helpful in understanding the responsibilities of a binary as well as how it was designed and implemented.
If for some reason these design documents don’t exist you can always set up time with teammates to help understand the purview of your team better. One of the best benefits of being new to a team or company is that no one expects you to know much if anything about the team so be sure to take advantage of this benefit by asking thoughtful questions. If all else fails, locate and read the code. While it can be difficult to understand isolated logic without additional context, code is the best source of documentation. If this proves difficult without more context and all else fails, look in version control for which engineer changed the lines you’re interested in and reach out to them with your questions.
Align Your Goals Accordingly
With your team fully understood you can now start setting yourself up for success — which in the typical corporate world means promotion. The best way to do this is to align your goals and personal contributions with what’s best for your team and its priorities.
This typically comes in the form of aligning your day-to-day work with the highest priority, “big ticket” items for your team. By doing this, you’re checking an important box on the company’s promotion checklist, that the work you did is high priority and delivered significant value for the company.
In these situations, it’s often helpful to think from the perspective of your manager and your skip manager (your manager’s manager) i.e. the people who will be involved in your eventual promotion discussion. Consider what are their biggest goals for the team, what work they believe should be prioritized, and what helps them “look good” up the chain. If you can work on and deliver those projects you’re placing yourself in a good position to maximize your chances of being promoted.
Another valuable thing you can do is zero in on is the pain points for your team. This could be helping clean up tech debt, improving existing processes, or volunteering for a task no one else is willing to take. Doing this is valuable as managers and others will remember your willingness to help and it also builds up goodwill, a currency that can help you cash in on favors you might need from others in the future. Become known as the person who raises their hand to help for this is the best kind of teammate.
This final tip is where most people go wrong. Understanding your team and aligning your goals is useless without it. Thankfully for me, it’s what I tend to do best as it feels natural to me.
Keep reading with a 7-day free trial
Subscribe to The Software Engineer Weekly to keep reading this post and get 7 days of free access to the full post archives.