Do you have a terrible software development manager or a great one?

At Amazon and other tech companies, interview candidates get a lunch break in between their on-site interviews, and a lunch buddy gets assigned to accompany them. This way they can ask any questions they have about the team, the position they are applying to, or anything else that might help them relax. I love acting as lunch buddy because I feel energized interacting with candidates in such an informal setting. This past week, one candidate asked me a very interesting question during our lunch: what do you think makes a good engineering manager?

I used the same answer I usually give each of the engineers who report to me during our very first face-to-face meeting: I explain what my job as a manager consists of. A manager’s job is not to deliver a product or features, it’s not about delivering on any metric or increasing revenue. A manager’s main job is to ensure that their engineers grow in their careers, that they learn and develop their professional expertise. The second part of a job’s manager is to ensure that their team is happy while going through this growth experience, that they are excited, as often as possible, about coming to work. As long as there is a good planning and prioritization exercise behind all that, features, products, metrics and revenue should come naturally.

If we dive deep into the most important areas that a good manager should master, I’d summarize them as follows:

Lead by inspiration

Every organization needs a North Star, a bold vision. This helps engineers remain focused on what matters from a business perspective. Managers should help their teams define a bold direction, not impose it. Engineers of any level or seniority should be empowered to propose ideas that can move the team forward, and that means managers should always be ready to listen; if an engineer’s ideas get ignored systematically, they will simply stop offering them and will eventually disengage. Ensuring everyone inside the team has a voice is necessary to guarantee a healthy organization.

Serve, don’t command

Many people, especially students or even junior engineers, often think that managers are supposed to give orders. However, managers should support their teams by providing the right growth opportunities and challenges, as well as a bold vision and guidance. They should focus on serving their employees, not the other way around. Managers should provide a safety net that empowers engineers to do their best, while helping them recover and learn from their experiences if they fall out of track.

Managers that allow a culture based on fear, end up with teams full of fearful and resented engineers. A common way of inducing subtle fear is by blindly focusing on metrics, making engineers accountable for them, while disregarding actual customer value and employee’s health; in this type of environment, engineers end up fearing making decisions that can result in a metric drop. Independent decision-making is a core aspect of becoming a senior engineer, but it’s virtually impossible to coach engineers on this quality when they see a culture where taking risks can become a career-limiting decision. Engineers should have a safe environment where their successes are celebrated, and their failures are used as growth opportunities.

Humility and transparency

There is nothing more effective for losing a whole team’s trust on their manager than having hidden agendas or acting with entitlement. When a manager doesn’t trust their engineers, actions speak louder than words, and the team will notice.

Building a relationship based on trust between engineer and manager is absolutely essential for the team’s strength and long-term survival. Problems will always appear, mistakes will always be made, bugs will always exist. What makes a true difference is how the team approaches these issues; having a strong engineer-manager bond means that the manager is likely to detect any issue earlier because the team will know that bringing the problem to light, as soon as it happens, is the best way of finding a good solution.

A good manager leads by example, admits problems immediately and takes responsibility, doesn’t blame others and never talks about an issue without simultaneously proposing a constructive solution or a path forward.

Trust, verify, never micromanage

Micromanagement is one of the most enervating approaches a manager can use with their engineers. It breaks trust little by little, and sends the message that the engineer is not trustworthy or capable enough. Even when an employee is struggling to deliver as expected, micromanagement is rarely a healthy way of addressing the problem.

The trust bond that I mentioned earlier is challenged when a manager questions every single move made by the engineer. Trust doesn’t have to be blind, of course, but checking on a project’s status should not mean micromanaging those involved.

Managers that provide space for engineers to figure things out without letting them drown, are more likely to see these employees come out of the experience with valuable insights that can be used for their continued improvement.

People over product

I worked on Windows Phone for over a year, made mistakes, learned, improved, and grew by working alongside brilliant engineers and incomparable managers. Today Windows Phone is officially discontinued.

If a product fails, does it mean the team involved wasted their time? Absolutely not. Thousands of people advanced their careers and became senior engineers while developing Windows Phone. That growth experience cannot be discounted just because the product they created doesn’t exist anymore.

Products come and go, some continue being relevant after many years but many others disappear into oblivion. People’s professional growth, however, is never irrelevant. Managers should promote a culture where people are prioritized over products.


When we discussed how to find a dream job in the tech industry, we talked about how managers play a crucial role in an engineer’s career. Having a bad manager can have catastrophic consequences, especially in companies where engineers’ growth directly depends on their manager’s actions. Measure your manager using the areas above, and if possible, look for a manager that is clearly invested in people, that takes pride in helping their team grow. A successful career will be around the corner.


Did you like this article? Subscribe to get new posts by email.

Enter your email address to follow this blog and receive notifications of new posts by email.


Photo by Austin Distel on Unsplash

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s