5 mindset traits that will help propel your career in software engineering

April 18, 2022
post content appropriate preview

What is a mindset?

That's a reasonable question! Let's get some definitions out of the way: mindset is a thinking pattern or a frame of mind which governs the way you make sense of the world, including yourself (considering you are part of this world). In other words, a mindset is a set of beliefs and thoughts which influence the way you handle any given situation. Before we go any further, you may feel this is more of a philosophical question. I assure you, it is not.

Since we won't talk about the next best framework or programming language or system architectural paradigm, you may wonder, "how does this topic relate to me as a person and to my career as a software engineer, developer or programmer?". It's easy. We are going to take a step back and analyse the foundation our thinking system is based on; we will attempt to "program" ourselves and adapt to our environment in a certain way; we will glimpse at a new window of potential.

Before you read further, be sure to check out my video presentation on YouTube as well:

Trait 1: Care for your craft and be consistent

Perhaps we can get slightly philosophical to better encapsulate the meaning of this first mindset trait. For this, I am going to borrow a Japanese cultural aspect which is known to some already. It goes by the name "Kaizen" and, no, it has nothing to do with anime! Part of its definition includes the idea of gradual self-improvement, for example working consistently for a couple or more hours every day to sharpen your skills. This is strongly tied to how you view yourself in society and at work. In most cases, you are practicing a creative profession where you are figuring out a solution to a specific problem that has a direct impact on a business. This means that your creations are as effective as the sharpness of your skills and your experiences allow you to distinguish and assess.

Further on the topic of skills and tools, make sure your tools and skills are "up-to-date" considering how the fast pace of technological progress. Keeping yourself informed and at the forefront of your field will facilitate your decision making and steer you away from "reinventing the wheel". After all, I am sure you've heard of the saying "modern problems require modern solutions".

Now, how do we go about "caring for our craft"? Let's look into a few ideas here:

  • Put your skills in practice by finding an open source project to contribute to.
  • Start your own hobby project. You could take the opportunity to experiment with a new library or framework you've always wanted to try.
  • Participate in conferences and meet ups about your field in tech.
  • Help communities, such as the one from stack overflow, or share your experiences by publishing articles.
  • Make use of the "good side" of social media. For example, you could follow your tech topics on twitter and stay up-to-date with topics that interest you the most.
  • Read research papers. As Ryan Donovan argues in a recent blog post from stackoverflow, "if you are trying to solve the unique problems of your industry, then some of the research in those problem spaces may help you overcome them".

More importantly, remember to be consistent with honing your skills and learning habits! Take the time and block your calendar where appropriate. This is key to gradually developing little by little on the daily.

Trait 2: Be a great team player and try to act as a catalyst

Long gone are the days of office cubicles and silos. More often than not, you will be working with others, and, make no mistake, communication and cooperation is usually the bulk of the work when building great things. I am going to borrow a perhaps cliché phrase to further enhance my point: "If you want to go fast, go alone. If you want to go far, go together".

A quality that can make you "stand out", is to not only be a great team player yourself, but to bring your teammates together as well; unite them under a common goal and enable them to do their best. That's the part about you being a catalyst, since a synergistic result will get you much farther than an individual and desynchronised effort.

Here's how you can try navigating an environment together with a team:

  • Always assume good intentions.
  • Make sure all opinions are heard and respected; a productive dialogue goes a long way. Deescalate when necessary.
  • Enable people's strengths and supplement their weaknesses. Nobody is perfect, we therefore want to emphasize on what we do best and let others help us on what we cannot do so well. Don't hesitate to ask for help!
  • Learn how to delegate. You cannot do everything.
  • Give feedback; learn how to receive feedback. I don't only mean code reviews, rather

Trait 3: Underpromise and overdeliver, not vice versa

Earlier, we talked about how communication is key when making a team effort and delivering synergistic results. A key aspect in communication is estimating the cost of your efforts and preparing a roadmap. Making a "guesstimate", is how I like to call it; a calculated guess. In an ideal world, you take as much time as your task requires. In the real world, you have to take into consideration customer commitments, quarterly goals, blockers, holidays, and a myriad other factors that may influence your pace and timeframe for executing and delivering your task.

Truth be told, this topic is quite scary for many of us who deliver code in a professional setting. In some cases, we avoid giving a concrete number for the hours or days we will spend on a task altogether and resort to using fibonacci numbers, t-shirt sizes or complexity adjectives (e.g. "simple", "moderate", ..., etc.). Whether you give a concrete date or a t-shirt size, we have a rough expectation on when something is "done".

  • Define "done". When's something done? How does a deliverable qualify as "finished"?
  • Clarify the requirements of your task.
  • Clarify blockers and team availability.
  • Talk openly about quality and optimization.

Based on my experience, "quality" and "optimization" takes the cake when it comes to failing to meet roadmap commitments. Some view them as features, and that's not too radical of a mindset. From a purely mathematical perspective, optimization can go on for ever. You need to know the scope and extend of the quality and to be aware of the trade-offs. In most cases, users would rather have some “good-enough” software now rather than wait a year for the “perfect” product. By that time it may also have missed its timing opportunity in the market.

Trait 4: Stay curious and open-minded

I am aware that the way this trait is formulated, it can mean everything and nothing. Perhaps, I could paint a clearer picture by talking about the opposite: how, as we grow, we become indifferent and closed-minded.

Imagine you've been working on your field for a decade or more already, and a colleague of yours - junior in seniority compared to you - approaches you with a radical idea. You are a busy person, and you might dismiss it right from the get-go, knowing it's probably something new that hasn't been tested or tried much yet. Sometimes, solutions come where we least expect them from. Because of this, I have the following points as a guide:

  • Be explorative and remain thirsty for knowledge. Don't give up your learning efforts and do not believe that you've learned anything there is to learn out there. As the Greek philosopher, Socrates, once said "I know that I know nothing".
  • What is unconventional today could become conventional tomorrow. Keep your mind open to new ideas.

In practice, this is a difficult one to manage, because this is actively practiced: it requires time and attention. Inevitably, you'll encounter many situations where you have to let go of any fixed mental structures, ideas or concepts you are very familiar with and assess new things. After all, that's how we make progress.

Trait 5: Get in the habit of networking

Last but not least, connecting with people - especially ones in your field - can be a determining factor in your professional evolution. I cannot stress this enough: networking is a direct contributor to your career prospects and your social well-being. It constitutes the bedrock of some of the traits we talked about earlier, and enables you to get to know yourself better, because we get to know ourselves through others. A few pointers I'd like to raise here:

  • Don't settle for contacts only inside your own team, seek to grow your professional network outside of it as well.
  • Put yourself in places where there's lots of other professionals like you: conferences, talks, meet ups, ..., etc.
  • Connect with people and teams that interest you on social and professional networking sites: LinkedIn, Twitter, Github, ..., etc.

You can be a helping hand to others, thus putting your skills in practice and making a good impression. Similarly, others can be of service to you. You can explore your shared interests together and even land a new opportunity that appeared through your network.

Conclusions

We have just analysed 5 mindset traits that, in my opinion, will help take your career as a professional to the next level. Unfortunately, there's no "one-size-fits-all". In other words, we cannot effectively "program ourselves", just like we do with our software, so that we behave perfectly in every situation. Therefore, remember that applying your learnings from here is circumstantial and there's a negative side to most of them as well.

Perhaps, for example, caring too much for your craft could turn you into a perfectionist and that can compromise your roadmap guesstimates and mess with the sense of fulfilment you get when you create and build. On the other hand, giving feedback to a colleague of yours at an inappropriate time (e.g. if they are emotionally charged) could trigger an adverse reaction that's hard to deescalate. Furthermore, over-communicating project requirements, goals and deadlines can saturate any project timeline and confuse stakeholders, especially when there's too many technical details.

Be curious, stay vigilant and get out there!

Imprint
Copyright © 2023 Threefields Media