Traits of successful software engineers

Sayedumairali
Bazaar Engineering
Published in
4 min readOct 11, 2021

The reason for writing this article is to spread the learning which I gain after investing my time and energy. It is very important for everyone to keep learning, upgrade themselves, and practice industry standards.

I’ve worked with many professional and mind-blowing product designers and software engineers, some of them are from Bazaar Technologies, Careem Technologies, and some from other remarkable companies in a region.

This article lists some of the traits these people seem to have in common and I learned the following skills/techniques from them.

  1. Keep your code simple.
  2. Write unit tests.
  3. Write clear or clean code instead of clever code.
  4. Keep learning attitude.
  5. Always be humble and help others.

Keep your code simple

Simplicity is a prerequisite for reliability

The above mantra for coding and software development is not only just used in software development, it is also used in our daily life and day-to-day tasks. The idea behind it is to try to think of the simplest solution possible and don’t overcomplicate things.

Edsger W. Dijkstra is one of the pioneers of computer science, once said: “Simplicity is a prerequisite for reliability.” or you can say the simpler your solution is, the harder it is to introduce bugs.

Write unit tests

Many software engineers overlooked the unit tests, and even I was used to skip test cases and I am guilty of this too.

I was often used to writing unit tests after completing the functionality, but even if I was adding them after completing my code, it’s still better than not adding them at all.

With unit testing, you can achieve the following benefits

  • Increase the quality of code.
  • You or others can change the code with much more confidence.
  • Fewer bugs.
  • Adapt your code with more confidence.
  • Force you to create smaller functions that do one thing.

We used to do XP (extreme programming), where we apply a practice called test-driven development (TDD). With TDD, we first create a unit test, fail that test, and then implement the logic to pass it. This forces us to think carefully about what that function should do and the expected output/behavior.

Write clear or clean code instead of clever code

What will you choose, Bad clever code OR good clean code?

I don’t know about you but I prefer clarity over cleverness. So many times we tried some super cool one-liner tricks that might be nice for showing off but are a pain for those who review your code.

I would recommend that you make your code as easy to understand as you possibly can. Let’s assume your code needs to be understood by another programmer who’s in a hurry to fix your bugs a year from now or let’s assume that another programmer might be you because a year from now, you’ve forgotten about that neat trick as well.

Van Rossum said: “Maintainable code is more important than clever code.”

To write clean code, there are few tips I can give you for the sake of code maintainability and I would recommend you all to read the below-mentioned tips very carefully.

  • Use Self-Explanatory Names All The Time.
  • Comment When Needed but Not Always.
  • Avoid Repetition, but Don’t Over Engineer.
  • Use a Consistent Formatting Rule Set.
  • Use a Well-Understandable Project Structure.

Keep learning attitude

A software engineer has to keep learning for the duration of his/her career. There is only one constant in the world of IT, and that constant is change.

New languages are introduced each year. New frameworks seem to be introduced each day. Don’t master yourself in those languages or frameworks. You just have to keep learning to keep your knowledge relevant, up-to-date and it will help you stay in the game.

Always be humble and help others

I’ve used the below-mentioned steps personally to stay humble and help others.

  • Keep smiling
  • Don’t be someone who is hard to reach
  • Express gratitude, Saying “thank you” means that we recognize the gifts that come into our lives
  • Help people around you, be a helping hand to lift your colleagues up, arrange knowledge-sharing sessions to spread the knowledge you possess.
  • Try to lighten the work environment so that your workplace is as productive as it can.
  • Be a couch for your juniors and look towards your seniors with an eye for inspiration.
  • Apologize after making a mistake.

Give constructive feedback alone and appreciate them in front of everyone if they do something well and ask your colleagues to give feedback to each other. This will create a culture where you encourage your colleagues to celebrate their success and failure as well.

Thanks for reading, and please feel free to share your experiences as well and suggestions in the comments.

--

--