Improving Your Mindset as a Software Engineer
Software engineering is more than just technical skills—it’s a mindset. By building the habit of reflecting on your actions and attitudes, you can develop the mindset needed to excel and grow.
In my experience as a software engineer and team lead, I’ve seen certain behaviours and attitudes that can limit both personal growth and team success. If you find yourself in any of the situations below, take a moment to reflect and adjust your mindset. This will not only help you grow but also create a better working environment for your team.
Dismissing Ideas
When I was a team lead, I often rejected others' ideas without giving them much thought. Being the most experienced person on the team can boost your confidence, sometimes to the point where you stop listening to others. This behaviour discourages your teammates from sharing ideas and taking risks. It can also make the team too dependent on you, which is unhealthy.
What you can do
Let your teammates share their ideas first. Speak last during discussions.
Allow the team to solve disagreements on their own, if possible.
If you need to guide them, use logic and data to explain your suggestions.
This way, you promote teamwork and creativity, rather than making everyone feel they must always follow your lead.
Making Solutions Too Complicated
Some engineers feel proud when they create complex solutions. They think it makes them look smart. But overly complicated code is hard for others to understand and maintain.
Why it’s a problem
New or junior team members will struggle to work with your code.
It slows down future development and creates dependency on you.
What you can do
Focus on simplicity. A good engineer writes code that anyone can understand.
Think about how others will work with your code, especially those who are less experienced.
True expertise is about creating clear, easy-to-follow solutions. It’s not about making things harder.
Not Asking for Help
Early in my career, I thought asking for help made me look weak. I believed I had to figure out everything on my own. Over time, I realised that no one can know everything in software development—it’s too broad.
Why asking for help matters
Everyone in your team knows something you don’t. You can learn from them.
Collaboration makes problem-solving faster and more effective.
What you can do
Be open to asking questions and learning from others.
Create a team culture where everyone feels safe to ask for help.
Remember, asking for help doesn’t make you less skilled; it shows you’re humble and willing to learn.
Taking Criticism Personally
When I was younger, I used to feel upset when someone gave me feedback on my code. I thought they were attacking me personally. This attitude made me defensive, and I often ignored good advice.
What you can do
See feedback as a way to improve, not as criticism.
Try to understand others perspectives before responding.
Accept that everyone, even experienced engineers, makes mistakes.
Mistakes are a part of learning. The key is to learn from them and grow.
Avoiding Documentation
I used to think my code was so clear that it didn’t need documentation. But as I advanced in my career, I saw how important documentation is.
Why documentation is important
It helps others understand your work, especially new team members.
It ensures smooth teamwork, even when you’re not available.
What you can do
Document your code and processes in a way that’s easy for others to follow.
Think of documentation as a tool to help your team work better without you.
Good documentation creates a stronger, more independent team.
Taking All the Credit
I’ve seen people take credit for work they didn’t do or avoid mentioning the help they received from others. This behaviour damages trust and teamwork.
What you can do
Give credit to your teammates when they help you or achieve something.
Celebrate team success instead of focusing only on your own.
Being open about contributions builds trust and shows you’re a team player.
Resisting Change
Change can be uncomfortable, but resisting it often comes from fear or ego. I’ve seen teammates reject new tools or processes just because they didn’t like one small feature.
What you can do
Give yourself time to adjust to changes before making a judgment.
Evaluate the pros and cons of any change objectively.
Being open to change shows flexibility, which is a valuable skill in software development.
Focusing Too Much on Personal Achievements
If you always talk about your own accomplishments and ignore the team’s success, it creates a negative environment.
What you can do
Value team achievements more than your individual success.
Understand that anyone can achieve what you’ve done with time and effort.
Celebrate the team’s success. This will make you a better leader and teammate.
Improving as a software engineer isn’t just about learning new technologies; it’s about developing the right mindset. Reflect on your behaviors, learn from your mistakes, and strive to create a positive and supportive team culture. When you grow, your team grows with you, and together, you can achieve remarkable things.
It’s important to acknowledge that we won’t always have a growth mindset in every area of life. However, we can work on identifying moments of fixed mindset, reflecting on them, and consciously investing energy to shift toward growth. This process is not a sprint but a marathon—it takes time and consistent effort to notice meaningful changes. Embrace the learning journey, even when it feels uncomfortable or challenging, because the rewards of growth and improvement are worth it in the end.