Context
After more than seven years as a software engineer in large organizations, I have learned that career growth rarely happens by accident. Technology changes quickly, companies reorganize, and the market keeps raising its expectations. The skills that helped you get your current role may not be enough for your next one.
Looking back, some habits helped me grow faster, stay aware of the market, and make better career decisions. I also saw engineers slow down either because they waited for their company to manage their career progression or because they repeated behaviors that quietly damaged their opportunities.
This article is divided into two sections. The first section covers five habits that can support your growth. The second section covers five behaviors that can slow you down or create unnecessary friction.
Section 1: 5 Things to Do
Interview
Stay close to the market and understand your value.
Learn
Build skills beyond your current project and company stack.
Build
Create small projects that expose you to product thinking.
Review pay
Talk about compensation with evidence and clarity.
Challenge
Seek stronger responsibilities before you feel fully ready.
Career growth starts with ownership. Your company can give you opportunities, feedback, and support, but it cannot manage your long-term direction better than you can. These five habits help you stay active instead of waiting for progression to happen by itself.
A. Interview Regularly
Even if you are happy in your current role, interview regularly. You do not need to change jobs every year, and the goal is not always to leave. The goal is to stay connected to the market and understand where you stand.
Ideally, go through a recruitment process every six months. If that feels too frequent, do it at least once a year. Interviewing helps you:
- understand your market value
- identify your strengths and weaknesses
- discover what companies are currently looking for
- practice explaining your experience clearly
- keep your CV up to date
- notice new technologies, tools, and expectations
Sometimes an interview will lead to an opportunity that changes your career. Sometimes it will simply show you what to improve next. Both outcomes are valuable because they give you information you cannot get by staying only inside your current company.
B. Keep Learning Beyond Your Company’s Needs
Do not rely entirely on your employer for your professional development. Your company’s technology choices are made to solve its business problems. They are not always made to optimize your career, so you need to create your own learning path.
Invest time in areas that prepare you for the role you want next:
- learning new technologies
- exploring different programming languages
- understanding cloud and infrastructure topics
- reading technical books and articles
- earning certifications when they are relevant
- following how the industry is changing
Some of the most valuable skills may not be the ones you use every day at work. For example, your job may keep you focused on one backend stack, while the market starts asking for cloud knowledge, observability, security, or AI-assisted development. If you only learn what your current project needs, you may become too dependent on that environment.
The broader your knowledge becomes, the easier it is to adapt to new teams, new projects, and new opportunities. Your career belongs to you, not to your employer.
C. Build Side Projects
A side project does not need to become a successful startup. It can be simple, small, and useful only to a limited audience at first:
- a personal blog
- an open-source contribution
- a small mobile application
- a SaaS idea
- technical content creation
- coaching or mentoring
The objective is not immediate financial success. The objective is to expose yourself to experiences you may never get in your daily job. Many engineers spend years writing code without deeply thinking about:
- product design
- marketing
- SEO
- user experience
- business strategy
- customer feedback
- pricing and distribution
Side projects help you understand the full journey from idea to user. They also force you to make decisions that are usually handled by other people inside a company. That broader perspective can make you a better engineer because you start thinking less like someone who only writes code and more like someone who builds useful products.
D. Ask for Salary Reviews Regularly
Do not assume your company will automatically recognize your growth. This is especially important during the first years of your career, when your skills, responsibilities, and impact can grow quickly. If you never ask, the answer is often no by default.
Regular salary discussions help you understand:
- how your company values your contribution
- whether your compensation matches your responsibilities
- whether your progress is visible to management
- whether the company has a real growth path for you
Salary is not the only sign of recognition, but it is one of the clearest. Before asking for a review, prepare concrete evidence:
- projects you delivered
- problems you solved
- responsibilities you took on
- impact on the team, product, or business
- skills you developed since the last review
If your company consistently refuses to adjust your compensation despite clear growth and contribution, try to understand why. Maybe there are valid reasons, and maybe there are not. Either way, the conversation gives you important information about where you stand and what you should do next.
E. Seek Challenges and Take Initiative
Growth rarely happens inside your comfort zone, and the perfect opportunity may not arrive by itself. Be proactive and volunteer for work that gives you stronger judgment, wider experience, and more confidence:
- new projects
- difficult tasks
- technical leadership opportunities
- architecture discussions
- mentoring responsibilities
- production and operational topics
The engineers who grow fastest are often the ones who actively seek challenges instead of waiting for permission. This does not mean saying yes to everything. It means choosing challenges that stretch you in a useful direction instead of simply adding pressure.
If your environment consistently prevents you from learning, taking ownership, or growing, that is useful information too. It may be a sign that you need a different team, a different project, or a new opportunity.
Section 2: 5 Things to Avoid
Complain
Raise concerns with people who can help, not with everyone around you.
Bluff
Do not announce that you may leave before you are actually ready.
Criticize
Understand the system before criticizing every decision around it.
Overwork
Keep exceptional overtime exceptional, not part of your normal rhythm.
Overreach
Improve what matters most instead of trying to change everything at once.
Career growth is not only about adding better habits. Sometimes, avoiding the wrong behaviors is just as important. A few repeated mistakes can create unnecessary stress, damage trust, or make a good opportunity harder to reach.
A. Do Not Constantly Complain
It is normal to feel frustrated from time to time. Every job has difficult moments: unclear decisions, technical debt, pressure, reorganization, poor communication, or unfair situations. But constantly projecting dissatisfaction rarely helps.
People and companies tend to invest more in individuals who are motivated, constructive, and engaged. If every discussion becomes negative, people may slowly stop involving you in important topics, even when some of your concerns are valid.
That does not mean you should keep everything to yourself. Share your concerns with people who can actually help:
- your manager
- a mentor
- trusted colleagues
- a team lead
- someone genuinely interested in supporting you
Complaining to people who cannot change the situation usually creates negativity without solving the problem. Before raising a concern, ask yourself:
- What exactly is the problem?
- Who can influence it?
- What solution or improvement can I suggest?
- Is this the right moment and the right audience?
A constructive concern is useful. Constant complaining is noise. Focus more on solutions than complaints.
B. Do Not Announce Your Departure Before You Are Ready
Many people think that saying “I am thinking about leaving” will create pressure and improve their negotiating position. In reality, it often does the opposite. Once your company believes you are leaving, it may start preparing for that possibility:
- reducing your responsibilities
- making sure you are not indispensable
- limiting your access to strategic work
- planning your replacement
Even if your intention was only to start a discussion, the trust dynamic can change. If you truly decide to leave, do it when you are ready and when you have a concrete opportunity. That is also when counter-offers become meaningful, because you actually have alternatives.
Without a real option, the conversation becomes a bluff, and bluffing with your career is risky. There are better ways to discuss growth before reaching that point:
- ask for feedback
- clarify promotion expectations
- discuss compensation with evidence
- explain what responsibilities you want next
- ask what needs to change for you to keep growing
These conversations are professional. Announcing that you may leave before you are ready can create pressure in the wrong direction.
C. Do Not Over-Criticize Everything
Joining an existing project with fresh eyes is valuable. Healthy criticism helps teams improve, and new people often notice problems that the team has accepted as normal: slow processes, weak tests, unclear ownership, outdated architecture, or painful tooling.
But it is important to remember that other people have invested years building and maintaining what you are seeing today. If every conversation becomes “this should be rewritten” or “this process is terrible,” people may feel attacked instead of supported. You may be right about the problem and still wrong in the way you communicate it.
Be curious before being critical. Ask questions like:
- Why was this decision made?
- What constraints existed at the time?
- What already failed in the past?
- Which risks are still relevant today?
- What small improvement would help most?
Understanding context does not mean accepting everything. It means your suggestions will be stronger because they will respect reality. The goal is to improve the system, not to prove that you are right.
D. Do Not Make Free Overtime a Habit
As employees, we are ultimately paid for our time and expertise. Working extra hours occasionally can make sense during a major incident, an important deadline, a production problem, or a probation period. But exceptions should remain exceptions.
If free overtime becomes a habit, people may eventually treat it as normal. What started as a temporary effort can become an invisible expectation. Over time, this can damage:
- your motivation
- your physical and mental health
- your personal life
- your ability to think clearly
- your long-term relationship with work
Sustainable pace matters because software engineering is not only about typing more code. It requires judgment, focus, communication, and problem solving. Those qualities become weaker when you are always tired, so protect your energy and keep extra effort temporary.
E. Do Not Try to Change Everything
When you are ambitious and motivated, it is natural to want to improve everything: processes, technologies, architecture, tooling, code quality, documentation, and ways of working. That energy is valuable, but trying to change everything at once is dangerous.
It can:
- create unnecessary conflicts
- overload you with responsibilities
- make people defensive
- spread your effort too thin
- lead to frustration and burnout
Understand your role and respect its boundaries. You do not need to fix the entire company to have impact. Improve things progressively and focus on problems that are:
- important for the team
- realistic to influence
- visible enough to create trust
- small enough to deliver
- connected to business or user impact
Sometimes, despite your best efforts, the environment itself is the problem. Here is a rule I have learned over the years:
If you cannot change the environment, change your place in it.
Sometimes, changing jobs is easier and more effective than trying to change an entire culture.
Final Thoughts
Build momentum
Interview, learn, build, discuss compensation, and seek challenges intentionally.
Reduce friction
Avoid constant complaining, bluffing about leaving, excessive criticism, unpaid overwork, and unfocused change.
Many engineers focus only on their current job. Doing good work is important, but your career is bigger than your current employer. Growth comes from what you repeat, what you avoid, and how intentionally you choose your next move.
Your company manages its business. You should manage your career.