The Difference Between A Good Software Engineer And A Great Software Engineer (#7)

Nir Peled
5 min readMar 19, 2018

--

Software Engineers are expensive. Hiring a new Software Engineer is a big decision for a company. Managers, Team Leaders, R&D Managers, CTOs, and CEOs all have high expectations for this pricey new hire.

Yet, no matter how fancy the title, these company leaders often fail to understand that these expectations are actually mutual.

Many Software Engineers are not aware of the simple fact that their own success is very much based on the set of tools provided by the company and the managers they work for.

I hear about this all the time, and have seen it myself a few times in previous companies. Very talented Software Engineers are not provided with the basics they expect from the companies they work for, which results in them leaving the company — leaving a huge void and confusion for both sides.

If you’re a Software Engineer then this post will give you the tools to assess your managers to ensure that you’re in the most conducive environment to grow to your full potential.

If you’re a manager then this post will give you the tools to develop your team of Software Engineers to the best R&D team you could imagine.

Transparency Is Key

This is the first thing someone should ask and evaluate before joining a company. I believe that when companies choose to have full transparency as a general policy with their employees — everyone wins.

In other words, not enough transparency is a deal breaker.

Let’s do a quick exercise — here’s a short list of questions:

  • How much money is the company making?
  • What are the KPIs to measure the company’s success?
  • What is the annual roadmap or are the company’s goals?
  • Are those goals or KPIs being met?
  • What’s the business model?

If you can’t answer these questions about the company you work for, I’m sure that there are many other things going on within your company that you’re not aware of — and that’s too bad, for both of you.

Software Engineering is complicated. When you build a new feature or a new product, you’ll take some time to think it over before you actually start writing code. You think about the technology you want to use, what matters most and what you need to prioritize. This is because the product that you’re building is constantly changing and evolving and you must work fluidly to keep up.

Therefore, it’s super important to know what’s going on within your company. It’s actually pretty simple: the more you know about the company’s status and goals, the better Software Engineer you’ll become, simply because you’ll know to what focus on and when.

Communication Is A Two Way Street

As in every relationship, whether it’s romantic or professional, a relationship can only be healthy when the communication is good. I strongly recommend having a one-on-one meeting at least once every two or three months.

These frequent meetings are exactly the time and place to get feedback, talk about the things that work, and also about the things that don’t work and specifically how to improve.

It’s the time and place to talk about ideas, suggestions, problems, company goals, personal goals — you get the idea. If you don’t do it already, put something on your calendar today — you’ll thank me later.

Millennials Work For A Purpose, Not A Paycheck

Although this is said quite often about Millennials, I believe this is true for Software Engineers in general. We need a purpose, one that will make us feel good about what we do.

“Fulfillment at work, fulfillment at home… Millennials want it all and they want it fast…They’re constantly questioning where they are going next and why. That is, which position they will hold next. If your organization can’t tell them that, they’ll seek out another firm that will.”
Forbes

Therefore, a good manager should avoid micro-management and learn to delegate work in a way that the Software Engineer will take full responsibility for what they’re working on. By this I mean that the Software Engineer should become the owner of that feature or product, from A to Z.

I believe that in a good R&D culture, Software Engineers are integrated early on in the product process, making them active participants in the decision making process. This allows them to understand the Why and the When of their work, not just the How.

When Everything Goes Wrong

A few years back I was working for a company and I wasn’t happy — I wasn’t happy because of the lack of transparency, the lack of involvement in the product process and the overall bad R&D culture.

I then met with a friend and told him all about it — and he said something that I would like to share with you. He told me that instead of working for a company with a broken R&D culture that is not interested in improving, leave and find a company with a culture that fits my needs, and so I did.

In other words: if it’s fixable, stay and help fix it, if it’s not fixable, move on.

In conclusion, when nothing works and you feel like you’re stuck, it might be time to find a new position with a new company with a fresh outlook — and if you’re planning to do so, check out Gloat, you’ll thank me later.

Any questions? Ping me on Twitter or comment below. If you liked this post, please give it a clap! If you really liked this post, please give it 10 claps!

Nir Peled is a Senior Software Engineer @ Gloat

Gloat is the revolutionary AI helping to guide the careers of a connected generation. We use real time data to uncover new paths and opportunities to develop your career to its full potential. Anonymously.

--

--

Nir Peled
Nir Peled

Written by Nir Peled

Front End Tech Lead @ Just Eat Takeaway, ex-Fiverr / Gloat / Zeitgold

Responses (3)