How to be the Engineering Manager Your Company Needs

Published Jun 08, 2017Last updated Aug 17, 2017
How to be the Engineering Manager Your Company Needs

The biggest challenges for engineering managers aren’t technical, but personal.

As an individual contributor, your responsibilities are rather clearly defined. You get to work on time, you’re assigned certain tasks, and you’re expected to deliver them efficiently and effectively.

When you become an engineering manager, that’ll change — your responsibilities will no longer be as defined and independent. Your day-to-day life will look different and your responsibilities will increase a whole lot more. With that said, you’ll also get a greater chance to make an impact on your team’s culture and collaborate with other teams to reach important business goals.

Not only will your work responsibilities change, but your entire mindset should change as well. We’ve interviewed a handful of engineering managers from startups like Airbnb, Typeform, InVision, Zapier, and more, with only one goal in mind — to help you become a better engineering manager.

To do that, we will address these common questions in the rest of the post:

  • What is engineering management?
  • What makes a good engineering manager?
  • How do I successfully lead my team?
  • How can I effectively collaborate with other teams?
  • How do I hire the best talent?
  • What tools can I use to manage my team more effectively?

What is engineering management?

Excellent Question

Many engineers aspire to become engineering managers. Why? So they don’t have to code anymore? So they can influence people more? Before we dive into how you can be a good engineering manager, let’s take a look at what being an engineering manager actually means.

Technical vs. management track

Engineering Manager can be a confusing and arbitrary title because it means different things to different people in different companies. When engineers are asked why they want to become engineering managers, a common answer is “I want to code less and work with people more.”

Though this is not necessarily a wrong idea, it is not a complete understanding of what engineering management is. Depending on the company you work for, engineering managers may be promoted through the technical track or management track.

If you’re working for a small startup, these “tracks” most likely won’t exist. With that said, there will still be “engineering managers,” whether they actually have that title or not, who can take care of both the technical and the personal side of things.

Here are some of the common things, including both the technical side or people-management side, that engineering managers are expected to do:

  • Lead and align engineering team with the company’s vision
  • Prioritize and delegate tasks to the team
  • Develop, inspire, mentor, and evaluate the engineering team
  • Create positive team culture (e.g. curious, mutually challenging, collaborative)
  • Collaborate with cross-functional peers and leaders to deliver projects
  • Improve engineering quality and efficiency (e.g. improve workflow, code review, etc.)
  • Hire qualified candidates to strengthen company and team

If you’re more on the technical side of things, here are some additional responsibilities:

  • Implement best practices in architecture for development and design
  • Drive technical roadmap and direction
  • Provide technical guidance and coaching
  • Prepare technical requirements and software design specifications

In short, being an engineering manager doesn’t necessarily mean you’ll no longer be coding, and neither does it mean you’ll only be doing people-related work. Depending on your company’s culture, you’ll most likely be doing a bit of both. With that said, your new people-management tasks should be your main focuses.

Pros

As an engineering manager, you can make a greater impact on various aspects of your company. Let’s take a look at what kind of effects you can have:

Meaningful impact on team members

One of the most exciting things about being an engineering manager is the chance to touch the lives of others. As a manager, you’ll have plenty of opportunities to develop, inspire, and mentor your team members. Whether it’s through regular one-on-ones or through your own attitude, communication style, and work ethic, you can encourage engineers to become better professionals and perhaps leaders one day.

Substantial influence on team & company culture

Whether it’s influencing their teams to care more about code quality, boosting team productivity, or creating an atmosphere of curiosity, engineering managers can do a lot for the team when they lead by example. Furthermore, engineering managers can improve the overall company culture by building strong cross-team relationships.

Direct involvement in product development decisions

As an engineering manager, you’ll get a chance to investigate, propose, and manage new product development efforts or product updates. You will be able to work with different teams (e.g. product, marketing, sales team) to drive product directions design, and development. You may no longer simply be assigned tasks in a certain product, but you will be able to take part in all aspects of a product.

Cons

Though being promoted into management often means a bigger pay, a “louder” say, and a wider scope of responsibilities, there are also some potential downsides.

Mistakes can be costly

Expensive

When we asked Thomas, VP of Engineering at Typeform, for one of the main things that deter people away from management, he said

“As a manager, making mistakes are expensive and harder.”
With more freedom to utilize company resources come more responsibilities and possibilities of screwing up. Even if your company is open-minded and does not necessarily penalize you for making mistakes, the prospect of making costly mistakes can be daunting.

Potentially become less technical

Though some engineering managers remain pretty hands-on, many do not continue to code. Even if you continue to code, you’ll most likely be expected to spend a lot more time conducting one-on-ones with your team members, holding meetings with product managers, and interviewing potential engineering candidates. Your responsibilities will diversify and your core responsibilities may no longer be related to coding. Engineers who pride themselves on the depth of their technical expertise may find this especially challenging.

May lack a sense of accomplishment

If you get excited from refactoring a particularly difficult piece of code or helping a customer by fixing a bug, this might be the biggest challenge for you. As Jeremy, an engineering manager at InVision, said, “You’re no longer judged on your personal output — you’re judged on your team’s output and what your team can deliver.”

Some engineering managers may have a hard time celebrating the successes of their teams rather than their own personal accomplishments.

Before we talk about how you can be a good manager through effective time management, leadership, and cross-team collaboration, let’s take a look at what make a good engineering manager.

What makes a good engineering manager?

Best Boss

This is one of the hardest questions to answer because engineering managers play different roles to different people. To answer this question more holistically, we interviewed CEOs, engineering managers, and engineers from a handful of startups. Here are some of the common qualities that they highlighted:

  1. Aligned with the company’s overall direction and business goals

    Your biggest responsibility as an engineering manager is to drive the company’s business and you’re hired to do that by leading a team of engineers. In the process of doing so, you get to build a unique team, inspire your team members, and work with other teams. With that said, every decision you make should directly align with the company’s business goals.

  2. Long term vision for company’s product

    A good engineering manager should be able to make plans based on a product’s long term wellbeing. For instance, he or she must be able to design architectures that are maintainable, instead of making sacrifices for short-term needs.

  3. Delegates based on strategic priorities and engineers’ strengths

    Understand the companies’ and products’ priorities, and play the role of a “scrum master” in delegating tasks and designing schedules to help engineers prioritize tasks. Since every engineer will have different strengths, these tasks should be assigned to capitalize on each engineer’s abilities and passions.

  4. Ability to inspire, guide, persuade, but not micromanage

    Trying to convince people to listen to you simply because you have the title doesn’t (and shouldn’t) work. Many CEOs, engineering managers, and engineers mentioned that it’s extremely important for engineering managers to have great communication skills. What that means is they must be able to logically persuade, inspire, and guide both their own team members as well as other team members, rather than just issue commands.

  5. Ability to speak two “languages”

    Engineering managers are expected to act as liaisons between the engineering team and other teams within the company. This means that they must be able to not only communicate in engineering jargon and non-technical language, but also to translate between the two.

  6. Detailed understanding of engineers’ workload

    As previously mentioned, one of your main jobs as a leader is to delegate. Delegation doesn’t mean blindly assigning tasks to your cohort, it means observing each engineer’s strengths and workload, and making necessary adjustments. For instance, if one of his or her team members is suffocating under the workload, an engineering manager should reallocate it so it’s more manageable.

  7. Represents the engineering team well

    In order for engineers to trust their manager, they need to feel like their manager represents them well. What that means is that if anyone belittles the engineers or asks them to work on tasks with unreasonable schedules, the manager will stand up for his or her team members. A good engineering manager is one that can manage up as well as manage down — he or she should always have the team’s best interest in mind, without compromising business priorities.

  8. Familiarity with common technologies

    Many software developers expressed the importance of having a manager who understands how to code. They don’t necessarily have to code as managers, but they should be familiar with coding enough to have technical discussions and make informed decisions. For instance, the manager should be technical enough to be able to make decisions about what technical stacks the team should use.

  9. Genuine desire to see others succeed

    If you’re a people manager, your focus should be on other people’s success. It should never be about how much money, fame, or power you can get, but how much you can help, guide, and inspire someone to become a better engineer or even future engineering manager. This is why leaders like Steve Jobs hire people who are smart — perhaps even smarter than they are.

A good engineering manager is someone who understands the various expectations, from above and below, that he or she must fulfill. In 2002, Google eliminated all managers in order to become a flatter organization. The experiment ended within a few months, when Google realized how important it is to have managers relay information between company leaders and engineers.

The secret to being a good engineering manager is this: the ability to understand the priorities of different parties and communicate effectively between them to help everyone meet their goals.

How can I manage my time effectively?

Best Boss

At the beginning of our interview, Thomas Döhler, VP of Engineering at Typeform, said

“As a manager, you have to become very good at deciding how you spend your time.”
In order to fulfill all your responsibilities in a timely manner, it is important to know when and how things should be done.

Let’s take a look at what engineering managers’ schedules look like on a daily and weekly basis before we get into some time management best practices.

Engineer vs. Engineering Manager Calendar

Deepank Gupta, an engineering manager at Airbnb and former employee at LinkedIn and Google, pointed out that there are fundamental differences between an individual contributor’s and engineering manager’s calendar:

Engineer and engineering manager schedule

Developers usually work best when they’re given 2-3 hours (or even half a day) to code uninterruptedly. As a result, their days tend to be divided up into 2-3 hours blocks. On the contrary, engineering managers usually work in 30-60 minute blocks.

Additionally, developers may see meetings and context or task switching as distractions, while engineering managers see meetings as their main work and context switching as normal. Meetings are so important, sometimes even lunches can be meetings!

Here are some of the main meeting types engineer managers will have:

  • Team Meetings
  • Meetings with direct reports (one-on-one meetings)
  • Meetings with cross functional partners
  • Meetings with other teams
  • Recruiting & Interviews

To give you a better idea of how you can fit everything you have to do in a week, here’s what Thomas’s weekly schedule looks like:

Weekly schedule

Since Thomas doesn’t code anymore, your schedule might look different from his. A very important thing Thomas repeatedly mentioned was do not reschedule one-on-ones. Rescheduling one-on-ones could make your team members feel like they’re not valued enough to be a part of your schedule. We will discuss the purpose of one-on-ones and how to effectively conduct them in the next section.

The main take away is you should have a clear structure for your week to stay organized and on top of things.

Task prioritization: Urgency vs. importance

As a developer, you’re probably very familiar with scheduling. With that said, there are effective and ineffective ways to schedule your tasks. Urgency and importance are two concrete ways to help you prioritize tasks:

Time management matrix stephen covey

Deepank at Airbnb explained: “Spending time in the red box is like being in a fire-fighting mode — that can work for a short period of time, but if you do that too often, you’ll quickly burn out.” Crises and emergencies must be attended to immediately, but it is not ideal to have too many tasks in this category.

Ideally, both individual contributors and engineering managers should spend most of their time in the green quadrant. Why is that? If you leave important tasks unattended, they will eventually creep into the red quadrant.

Here’s an example some of you might relate to: remember when you pulled an all nighter because you waited to start your final paper the night before it was due? Whether you poured 10 cups of coffee down your throat or pinched your thighs to keep yourself awake, you had to get it done — after all, your grades depended on it.

Deepank used this example to make one point: start the important tasks while you still have plenty of time to complete them so you don’t find yourself in dire situations.

How can you avoid getting into the red zone? As an engineering manager, when you’re developing a new project, make sure you do all the planning upfront so you and your team can tackle the most important things first. In regards to your personal responsibilities, make sure you know your priorities and don’t procrastinate on finishing important tasks.

If you’re ever asked to work on urgent but not important tasks, the best thing to do may be to delegate the job to someone else, communicate your current workload and ask them to prioritize accordingly, or simply say no. The magic ratio Deepank proposed is: for every 2 yes’s you say to such tasks, you should give out 5 no’s.

Time management best practices

Apart from having a structured calendar and good task prioritization skills, here’s a summary of the best practices that can improve your time management skills:

  1. Cut unnecessary workload: Know your priorities and learn to say no to things that are not as important or can be accomplished by someone else.
  2. Delegate more effectively: Communicate your priorities to your team and your colleagues so you can delegate tasks to the right people.
  3. Ask for resources: If you can’t cut down your workload and can’t change the timeline, think about what resources you can gain from other teams.
  4. Plan for interruptions: On average, workers lose 2 hours per day to interruptions. As managers, you will likely be interrupted several times throughout the day. Plan to accomplish 6 hours of work.
  5. Set a clear agenda for meetings: A big part of your job is conducting and attending meetings. Poorly planned meetings are time wasters, so make sure all your meetings are well-structured.

How do I successfully lead my team?

Donald duck leading ducks

Let’s move on from managing your own schedule and priorities to managing your team. We intentionally used the word “lead” instead of “manage” in our title because a leader is exactly what your engineers are expecting. If you want to be able to manage your engineers, you’re going to have to earn their respect by being a leader first. Here are three ways to demonstrate your leadership.

Understand your team’s existing culture

Creating a unique team culture is one of the most exciting things about being an engineering manager.

Whether it’s establishing weekly sharings, peer code reviews, or simply afternoon drinks on Fridays, you can deeply influence your team’s culture. With that said, before you try to change your team’s culture, it’s important for you to understand how the existing team functions.

For instance, when asked what the engineering team at Codementor cares about the most, each member of the team answered,

“To be able to implement software quickly, correctly, and ‘unbreakably’.”
In other words, the most important thing to our developers is code quality. Our product director (who plays the role of engineering manager as well) is well aware of that, and focuses on improving the software development process and conducting weekly sharing sessions to discuss and identify tools that can maximize our team’s code quality.

Each team’s desires and expectations are slightly different — detailed observation and understanding are the first steps to success.

Create a strong(er) team culture

Stronger team culture

Now that you have an idea what your engineers are like, it’s time to weed out some bad habits and introduce some good practices.

Lots of companies see their engineers as mere tools. Sounds awful? That’s because it is. Not only because it’s dehumanizing, but also because toxic cultures harm a company’s creativity and overall productivity.

Here are four steps you can follow to determine what kinds of values and practices you should introduce to the team:

  1. Define a set of values that reflect the company’s vision and culture
  2. Evaluate your own personal preferences to see if they match with the company’s vision and values
  3. Identify behaviors that correspond with these values
  4. Encourage and incentivize these behaviors

Before you start introducing concrete practices like code reviews, hack days, or weekly development sharing, make sure you lay the foundation of your team with robust values. Here are some of the things that engineering managers and their teams may value:

  • Code quality
  • Open discussions
  • User empathy
  • Mutual challenges
  • Curiosity and passion for coding
  • Efficient and effective execution
  • Ownership and accountability

Jeremy at Invision emphasized that

The best culture is when vision, values, and practices are aligned.

Another crucial part of building a strong team is hiring people who already believe in the same values. We will discuss hiring later.

Hold one-on-one meetings

Teamwork makes the dream work

To effectively lead a team, you need to first establish trust. According to the leader-member exchange theory, leaders must establish relationships with their team members before they can influence others’ responsibilities, decisions, access to resources, and performance. These are often emotional relationships based on trust and respect.

As an engineering manager, your number one tool is the one-on-one meeting with your team members.

With that said, one-on-ones are not easy to execute. Why can one-on-ones be hard for engineering managers to master? And what is the right way to go about them? Let’s hear from experienced engineering managers.

Why one-on-one meetings can be hard

One-on-one meetings are times for you to connect with your team members. However, communication can be extremely difficult initially.

As an independent contributor, your daily job consists of communicating with computers — you ask the computer to do something, it interprets what needs to be done, and you get the result. You even have tools like compilers, interpreters, and linters to help structure your “conversation” with computers. If the computer doesn’t understand your command, it’ll respond directly with some sort of error message, which you can use to locate and fix the problem. Humans are not so simple.

“Communication is what the receiver does.” — Thomas, Typeform.

What you’re saying is not the most important part of the communication process — how your words are being received and interpreted are the keys. Since everyone sees the world through different “filters” (culture, language, experience, values, beliefs, mood, etc.), learning who they are, how they think, and, as a result, how they communicate, is the hardest part of one-on-one meetings.

How to master one-on-one meetings

The key to mastering one-on-one meetings is understanding your main goal: building personal relationships with your team. Here are some helpful tips on how to do that:

  • Prioritize one-on-one meetings and avoid rescheduling (as it sends the message that something is more important than these relationships)
  • Schedule a weekly 30-minute “quality time” slot with your team member
  • DO NOT treat these meetings as merely status updates — you should be able to talk about everything and anything
  • Tailor your meeting based on the your relationship with your member — if you don’t know each other well, start off by discussing your team member's personal background, situation, drive, passion, etc.
  • Use meetings as vehicles to discuss goal-setting, career goals, and general feedback
  • Offer to help engineers achieve their goals and develop their career
  • Have an agenda for meetings — though personal, avoid having meetings that are too casual
  • Get creative with one-on-ones — if your topic of discussion is more serious, or very personal, you can have a walking meeting

Remember, the purpose of these meetings is to build genuine relationships with your direct reports. The one-on-one will help you understand what the engineers really desire and how you can help them succeed in their goals.

How can I effectively collaborate with other teams?

Teamwork makes the dream work

Cross-team collaboration is difficult because each team has different priorities, different KPIs, and a different allocation of resources. It’s not rare to see departments within companies fighting for resources and recognition. However, each team plays an important and unique role in the company, and each team’s success hinges on another team’s success. Here are some tips for you to collaborate with other teams successfully.

Focus on a common goal

The main reason why different teams fail to work together is because their goals are not aligned, so it’s imperative to unite all teams with a common goal.

“It is important to realize that at the end of the day, you are all working on the same goal, but you might be looking at different angles of how to achieve that goal” — Thomas, Typeform

A tangible way to define goals is to help all stakeholders think about the value your company offers its users.Regularly communicate and emphasize the impact your products have on users to foster user empathy.

Align expectations and communicate trade-offs

Imagine an engineering team working with both the design team and the product team. How might their priorities and expectations differ?

Most engineering teams are either fixated on code quality or implementation speed, while most designers focus on the aesthetics. On the other hand, product teams mostly concentrate on delivering projects on time and on budget.

Though each team and its priorities are important, following these priorities religiously is impractical. Not only is it impractical to think that all objectives will be met 100% of the time, it may also damaging to think your team’s goal should come before other teams’ goals.

“A lot of the times, issues that happen in cross team collaboration are results of misaligned expectations” - Jeremy, Invision

When you’re leading a team of engineers, it is important to manage your own team’s expectations. The team should care about code quality and implementation speed, but should also expect situations where compromise is needed when working with other teams.

Support and challenge one another

Challenge Accepted

When you’re the engineering manager, you’ll have the opportunity to be more involved with product direction and implementation. In some ways, you’ll feel more like a shared product owner with the product manager. With that said, there’s a fine line between having a sense of ownership and being overpowering. As Jeremy at Invision said,

Ultimately, my product manager has the final say, but I really push him if I feel like there’s something wrong with the decision that’s being made.

What Jeremy demonstrated is a healthy cross-team relationship — he respects his colleague’s expertise, supports him and his decisions, but challenges him when the decisions don’t seem to align with the company’s goal.

Ultimately, every manager’s responsibility is to make sure that company goals are prioritized. Since every member of the company has his or her expertise, it is important to respect and learn from their domain knowledge. All constructive criticism should be built on a the basis of mutually respectful relationships.

Take responsibility (admit it when you’re wrong)

You’re inevitably going to make mistakes. Senior developer Jace Ju from KKBox said this about an ideal senior engineer:

They understand that admitting mistakes is not shameful; instead, it's a chance for growth. That’s why they’d go back and review their mistakes after the problem has been solved. That’s not to say that senior engineers take all the blame; the point is to allow the team to see the issues and solve them as soon as possible.

Contrary, Some engineers would rather point fingers than take the fall. They might avoid blame by saying it's not part of their job, or just cowardly throw a junior coworker under the bus.

If senior engineers are held to such standards, how can engineering managers not be? In addition to taking personal responsibility, engineering managers should also take responsibility for their team. If they made decisions that negatively impacted a project, another team, or the company as a whole, they should own up to their mistake instead of pointing fingers.

How do I hire the right talent?

Pick me!

If you’ve been an engineer for a while now, code review and project management are probably quite familiar to you. If you’ve been a leader-without-a-title in your team for a while, even one-on-ones may be pretty familiar. Hiring, on the other hand, may be something new to you.

Before we dive into the xyz’s of hiring, it’s important to remember that hiring the right talent is more important than hiring the “best” talent. In the previous sections, we’ve discussed the importance of creating and curating a healthy team culture.

Imagine that you’re trying to build a lego house — you probably wouldn’t and shouldn’t try to force Jenga pieces into your lego house. Though the lego pieces come in all sorts of colors, they must be able to fit together. If building a team is like building a lego house, you want to make sure you get the building blocks right — your members can have different strengths, cultural backgrounds, communication styles, and more, but they should naturally exhibit behaviors that are aligned with your company culture.

Qualities to look for

Depending on your company’s culture, the qualities you look for might differ. With that said, when we interviewed different engineering managers, some qualities were repeatedly mentioned. Here are some of them:

  • Collaboration skills: He or she doesn’t necessarily need to be extroverted, but should be a team player
  • Easy going, but driven: Find someone who’s driven, but not cut-throat, because someone who’s overly ambitious or aggressive could ruin your team culture.
  • Strong understanding and communication skills: The ability to think, listen, and speak clearly, logically, and articulately is very important.
  • Loves and believes in the product: If you want to build a team with a high level of ownership, every team member must believe in the product. They don’t necessarily have to agree with every part of the product, but they should be invested enough to want to make it better.
  • Enjoys being challenged and challenging others: This should be rooted in humility and a love for learning. If you want to create an environment where healthy friction between engineers is the norm, you should hire people who do not get defensive when they’re challenged and not overly aggressive or passive-aggressive when challenging others.

Red flags to watch out for

  • Defensive and irresponsible: Ask questions to find out about how he or she deals with situations where someone in the team made a mistake — did he or she point fingers at other teammates or did the whole team take the blame and deal with it accordingly?
  • Dishonesty and inconsistency: These are two of the most mentioned traits to avoid. With that said, they also happen to be the hardest traits to detect. This is where multiple rounds of interviews (perhaps even inviting the candidate to join a group discussion, hack day, knowledge sharing, etc.) and references can be helpful. If the candidate exhibited contradicting behaviors from one interview to the other, watch out!
  • Arrogant and argumentative: Most candidates will try to impress their interviewers — there’s nothing wrong with that. With that said, there is a fine line between confidence and arrogance. The truth is, when it comes to arrogance, you’ll know it when you see it. But some tangible examples include being overly argumentative, taking over the interview too much, brushing certain technical skills off as “super easy,” or cutting you off during an interview.
  • Trash-talks previous company: One of the main reasons why people quit their job is because of toxic company culture. It’s understandable why people would leave jobs because of that, but if they seem extremely bitter about it and blames everything on the company, that may be sign of irresponsibility.
  • Overly focused on company perks: Companies like InVision and Zapier often attract people who want to work remotely. There’s nothing wrong with wanting to work remotely, but if that’s their main motivation, watch out!

Interview questions to ask a developer

I have several questions

The types of questions you ask usually depend on the type of developer you are trying to hire. With that said, the types of interview questions can be broken down into three parts. Since we’ve written a comprehensive interview guide on how to hire a web developer the right way, instead of repeating the questions, we’ll outline the three types of questions here:

Developer’s experience

Most interview start off with understanding the candidate’s previous work experience. To understand them better, get them to talk to you about the projects they’ve done in the past (what they’re proud of, what they would’ve changed, etc.). The idea is to try to understand their involvement and sense of ownership over different projects. What you also want to get a hang of is their general attitude towards coding, learning new technologies, and preferred development environment. Questions about their coding journey, their thoughts on testing, and ways to improve themselves will all help you understand them better.

Developer’s communication and management skills

Communication and management skills are vital for developers to succeed at their job. With that said, claiming that one has these skills doesn’t mean he or she actually does. You can start off by asking your candidates about some of their best soft skills. When they’ve listed some of them, ask them for specifically challenging instances where they were able to demonstrate their soft skills. To test out their work ethics, you can try to find out how they go about a coding problem when they can’t work it out. For those who have worked directly with clients or have been in a customer-facing role, asking them about these experiences will tell you a lot about their communication and management skills.

Developer’s technical skills/practices

Last but not least, try to find out as much about the candidate's’ technical skills and practices as possible. Even though you can always find out about their skills through technical tests, it’s much more probable to get to know their practices during face-to-face interviews. You can find out about your candidates’ development workflow, how they find and handle performance bugs, and their general attitude towards things like unit testing and continuous integration. How they answer these questions will give you an idea of how they work and whether their technical practices match with your team’s. You can also try to pick their brains about OOP analysis and design, ORM, and much more.

As previously mentioned, your interview questions should be tailored to the kind of developer you’re looking to hire. Click on the specific language/frameworks to check out relevant interview questions: JavaScript, React.js, Android, Python, and PHP.

What tools can I use to manage my team more effectively?

If you have the right attitude and practices for time management, team leadership, cross-functional team collaboration, and hiring, you’re well on your way to being the engineering manager your company needs. With that said, we can all use a little help from some tools and books like these:

Organization and project management

  • Clean Google calendar: Organizes and prioritizes your calendar events
  • Plan: Organizes projects and tasks from calendar, email, JIRA, Zendesk, Salesforce, and GitHub
  • Pivotal Tracker: Agile project management tool
  • Asana: Manage, track, and assign tasks

Communications

  • Slack: Real-time messaging, archiving, and search
  • Sortd: Trello for Gmail — Transform your email into organized lists
  • Polymail: Improve your email productivity with templates, read later, send later, etc.
  • Internal chatbot: Build a chatbot for whatever purpose you need!

Code management and collaboration

  • GitHub: Create repos, start a branch, write comments, and open pull requests.
  • Docker: Code and local development storage
  • Bitrise: Mobile continuous integration and delivery — Automate unit test and deployment process
  • Vagrant: Create and configure lightweight, reproducible, and portable development environments.
  • Gera: Builds integration and makes build number explicit through tickets
  • Codeship: Tool for continuous integration and deployment

Helpful books & resource

By no means is this list comprehensive and exhaustive — there are always people working on and releasing new tools and new books on engineering management. No matter how experienced of an engineering manager you are, there will always be new things to learn.

Be an Awesome Engineering Manager! 🎊

Being an engineering manager is exciting as well as slightly daunting. You’re given more opportunities as well as more responsibilities. Without the correct mindset, beliefs, and practices, managing a team can go terribly wrong. With this guide and all the resources out there, though there may be some growing pains, you will surely become an awesome engineering manager!

Just like everything else that we do, practice makes perfect. Don’t worry or feel defeated if you run into obstacles — the more experience you have, the easier it’ll get.

Hire top freelance developers on CodementorX