
The path to promotion becomes less obvious as you level up in your career
If you are an experienced software engineer looking to improve your skills and advance your career, here are some areas you must focus on.
We will discuss how task management tools, code management tools, API design, clean code, and advanced code reviews can help you get to the next level of software engineering.
1. Task Management Tools
Task management tools like JIRA keep you organized and prioritize your work effectively.
Many engineers are skeptical of task management, and tend to underestimate its impact on their careers. Here are a few reasons why you must master JIRA:
-
It is the primary form of displaying your work.
Your attention to detail, communication skills, and ability to prioritize are displayed here. -
It is the primary form of inter-team communication.
Your cross-team contacts, TPMs, and skip-level managers use JIRA extensively! It makes sense for you to invest some effort in keeping it up to date, so that updates are bubbled up and visible to everyone. -
It is the best way to track and resolve issues.
Whether a production issue or a "small" CSS change, JIRA can help explain why a particular task takes "too long".
From now on, don't just use JIRA for standup updates: collaborate on tasks with your manager. Engineers who keep their managers in the loop are likelier to get better appraisals and faster promotions.
2. Code Management Tools:
Needless to say, Git helps you work collaboratively and maintain a sensible version control system. Being familiar with code management tools helps build your reputation in the team and makes you an effective code reviewer.
These are essential skills for a senior engineer. Here is a small checklist of things to do:
-
Be the engineer who encourages good branching practices.
Discourage force pushes and dangerous branch merging. -
Link pull requests with JIRA tickets.
This helps your engineering manager track and mark tickets faster. Remember, it's the simple things that make a big change! -
Enforce reviews and run automated tests after every merge.
The best part about the above checklist is its obviousness and simplicity. As a senior engineer, your job is to make sure good practices are followed again and again.
BONUS: Use a quality tool like Sonarcloud to identify potential issues in your code and improve its quality.
3. API Design:
An API is an entryway to your work. Your colleagues, clients, and teammates judge your competence based on how effective your API is.
In short, your API speaks for you!
Unlike code reviews, no client knows how good or bad the code quality of an API is. All they care about is reliability, clear error messages, and an intuitive method signature.
For more details, watch this video: https://www.youtube.com/watch?v=_YlYuNMTCc8
In addition to the points mentioned in the video:
- Use Swagger to design, document, and test your APIs.
It makes testing and understanding APIs much easier. - Keep some sample requests handy on Postman to ensure things are working smoothly, at least on your local machine!
4. Writing Clean Code:
Writing clean code is, as you can expect, essential to career growth. But what does that exactly mean?
-
Clean code is code which can be read, understood, and easily modified by your teammates.
Good points to keep in mind are design patterns and SOLID principles. These ideas help keep code readable. -
It meets all functional requirements of the system.
The code must be complete and correct. Test cases are a great way to ensure this. -
It also meets the non-functional requirements of the system.
The code should be efficient (enough), robust (enough), and performant (enough).
BONUS: Believe it or not, tools like Github Copilot and ChatGPT can help identify potential issues and suggest improvements!
5. Code Reviews:
Code reviews are the only time you can showcase your code and design skills to your team. Grab the opportunity with both hands!
Whether you are the one writing or reviewing code, make sure you put an effort in the following:
-
Communicate effectively.
Address the point of improvement, and clearly define how the improvement can be made. A reference link goes a long way. Keep your tone helpful and professional.
DO NOT make any personal or sarcastic comments during a code review (If sharing memes, please be mindful of the other person's feelings). -
Mention areas of improvement.
If you see a pattern of improvable code, pick it up in a meet. Your effort in helping teammates builds trust in your abilities. This, in turn, helps you apply for senior positions. -
Be reasonable.
You do not need to apply Linux Kernel standards for a one-time script. Along with keeping a professional tone, listen actively!
Is there a deadline that is competing with code quality? Is there a better library function out there? The more you listen, the more you are heard. -
Enforce standards.
As a senior engineer, you are expected to carry the flag of coding standards in the team. Keep a firm stance on testing standards, lines to review, etc… -
BONUS: Clear Blockers!
Dive into your team's code reviews. If no one is ready to review some code, take the lead. The more context you have around the system, the more likely you are to understand how it works.
This makes you an essential part of the team, and the company.
The above points have been collected using more than 30 interviews with senior software engineers and engineering managers. We hope this will help you become advance your career as a software engineer.
We look forward to hearing your thoughts and suggestions in the comments below.
Cheers!