Career Advancement — Choosing the right project for your future

Evgenii Ray
7 min readJul 30, 2021

--

Random thoughts about the importance of finding the right place for Software Engineer

Perhaps the most complex and important decision you have to make at any stage of your career of Software Engineer is choosing the right project.

I haven’t thought about that earlier because I was lucky to find great companies and projects for my career. But at the senior level stage and with my last job change, this process was quite challenging from a psychological and career point of view. On the one hand, you want to work on a product that people will use. But, on the other hand, you don’t want to burn out at work and get a message at night:

“We’re losing $20 million a nanosecond… Get up and fix it now”

In addition to that, the internal atmosphere of the team and people’s relationships are also important. This will directly affect the speed of your integration into the team and reaching maximum efficiency, as teammates will share their experience and save plenty of hours of work time if you encounter a problem. With this article, I want to share my thoughts on the importance of choosing the right project for your career and the framework I’ve used while doing it

Disclaimer: The article is the sole personal opinion of the author. The author does not claim to be absolutely correct in his words. Everything is based only on personal experience. Thank you.

Let’s start with key parameters

  1. Stack — tools that you’re going to use
  2. Product — what you are going to build.
  3. Product development phase — newborn / active development / mature product
  4. Team — location / relationships / manager

Each parameter has different importance depending on your experience.

Level 3 — Junior Engineer (post-grad)
Level 4 — Middle Engineer (2–5 YoE)
Level 5 — Senior Pomidoro Engineer (5+ YoE)

Let’s think about how to choose a team depending on your experience.

L3 — Junior Engineer

TLDR: Focus on team selection. Choose a project with an active or matured development phase to learn from already established guidelines and best practices. If you can choose a stack, choose it. If not, don’t worry, you can easily change it in the future.

Key parameters focus points for L3

Team

You’re a lucky Junior Engineer who came in after university hoping to become a Senior Software Engineer in the next 2 years (lol).

First and foremost, maximizing your experience gain is the most important for L3. Making mistakes is fine — but dunking your code in the toilet bowl — it’s the job of a competent engineer. The ability to write code and think in the context of the business and product also comes naturally with time, but it’s a skilled mentor who will help channel your endless energy in the right direction.

The team is your first priority

The phase of product development

I think it’s better to go for teams with active development / mature product phases. These teams tend to have senior engineers who have already established code guidelines and project architecture with all best practices. As a result, there is less stress in starting a career and the opportunity to focus on simple tasks, and a gradual increase in responsibility. I wouldn’t join a newborn team — too many unknown variables at the start of the career cause too much stress and can be bad for mental health and enjoying your job.

(Optional) Stack

I would say that in the first year of work, the stack is not that important. The most important thing is to get commercial development experience. But, if you can choose it while leaving the first two priorities in the equation, it can help determine the direction of your specialization in the future.

L4 — Middle Engineer

TLDR: Focus on a project with an active development phase. Try to lead a significant project feature and become an expert. Don’t be afraid to take on more responsibility. Choose a well-known product that you can work on to increase your personal brand awareness. Look for focus points and increase your level of expertise in them.

Key parameters focus points for L4

You’re an experienced developer who can take responsibility without significant supervising from senior engineers. You’re looking for new challenges to advance your career, you can lead a notable project feature, but you’re not yet ready to manage a team. So, what’s should you do? Let’s return to our priorities.

Team + Product + newborn / active development phase

This phase, I believe, is the most important for further development. Making the right choice will help you accelerate your professional value in the market, progress quickly in your career, and get the right skills to evolve into a Senior Engineer.

Product — Your Career Booster

Choose a product designed for external users with a transparent impact model. Development in such projects is different from tools for internal consumption. It is important to consider users’ feedback, to think about business and further development. Higher quality standards are set for such projects, and the developer has to think about such things as:

1. Organization of the development cycle
2. Automated delivery
3. Automatic and regression testing
4. System monitoring
5. Scaling the project architecture
6. Interaction with users and business

Huge space to dive into different topics and find points of “personal focus” and growth.

Project Development Phase — Newborn / active

Try to find a new or actively developing project where there is room for making things. In this case, you will start leading a large part of the project, improve your leadership skills, increase your technical competence, and further mentor your younger colleagues. This will set your path clear to becoming a product expert.

Bonus Booster — The brand and its impact on your career

They say that interviewers and HR are taught to be unbiased towards the person interviewing for the company, but in my experience, this is not true, even when it comes to large companies. Let’s imagine hypothetically two job seekers and the lines on their CVs:

Engineer 1 — I worked at Google on a project, “Google Bla-Bla” |, and my job was to build a high-load distributed architecture that could serve N million users.

Engineer 2 — I worked on the Super Rental portal as a senior developer. My tasks included organizing and building a highly loaded architecture for a real estate portal.

Guess with what probability the first engineer will be called for an interview? Right — very high. Unfortunately, there is a brand influence on the initial hitting of the interview cycle. Also, working on a large and well-known project makes the Behavioural Interview a lot easier. This has been the case for me in many interviews. When interviewers hear a product or company they know, they usually react positively, and conversation proceeds easier.

Stack

Specializing in a particular stack can help you become an expert in one specific field and start speaking at conferences. Add to that working on a well-known brand, which immediately raises your personal brand several levels up.

L5 — Senior Engineer

In large companies, this level will be the terminal for most people. However, many continue to work at this level without trying to jump further. The author of this article is at this stage of his career. I will try to describe the framework I have chosen for myself. Time will tell whether it is the right one.

The phase of product development — Newborn

If you can develop a team from scratch, establish its culture, hire new people and raise the project from the ground — this is a huge plus. Unfortunately, I don’t have pure team-lead experience, so I think it will be a good challenge for me to lead a project and work with the business on an important project for the company.

Stack

When you’re coming into a company at the senior level, you should already be an expert in your field and choose a team that fits your stack. For example, if you work in the front-end, then going and writing C++ is a sure way to get fired. Pick a stack where you can get up to speed on the project as quickly as possible and use your expertise to solve problems. For example, I chose a team that needed a Lead Front-end developer to organize the project architecture. Not only did it fit my hard skills, but it would also be a test for my soft skills.

Additional thoughts

When you choose a new team, you get to set its culture, develop the project from scratch, set the scope of work, and directly influence the project vision. However, it is tough to work with multiple unknown variables. The team might not have a clear roadmap or organizational structure for a while, but you can grow further as a specialist by solving these problems. This is a double-edged sword, you could possibly fail and be successful, but the main rule is that you have to try! Let’s see how my adventure ends.

Key parameters focus points for L5

Note to chart above: when you join a newborn project, you can’t evaluate Team parameter, because building a team is your priority as a senior engineer

In conclusion

Many parameters influence your career, but choosing the right project is one of the most important ones. By choosing it wisely, you can enhance your career, connect with the industry’s best engineers, and get the most valuable experience. Always stay challenged, don’t waste your time on the things that don’t matter. Invest your working time in a product used by people and give you exposure to the end-user. Remember, only you are the person who is responsible for your career. So value your time and yourself.

Thank you for reading this article, feel free to share your thoughts in the comments 🙏

My Telegram channel: https://t.me/frontend_engineer_blog

--

--

Evgenii Ray

Front-end Engineer at Meta | Photographer | Never Settle