Building and Nurturing a “High-Performing” Engineering Team: A Year-Long Journey as an Engineering Manager

winckell benjamin
11 min readJan 24, 2024

--

Introduction:

I have been an Engineering Manager at Hublo for 2 years. Over the past five years, I have led various software engineering teams across different companies. Here’s a glimpse into my approach and beliefs after testing many things. I hope my experiences might resonate or help someone out there.

I like to analyze and understand intricacies, and guide people to their greatest achievements. Over time, I have employed numerous tools and strategies to lead my teams, and I am excited to share some of these with you.

Spoiler alert, yes the title is a click bait 😛

This article will not cover the “efficiency” of delivery processes and velocity, which is something always related to a company’s internal state. The intent is purely to share what I do and explain why to create a nice environment where everyone is happy, aligned, and striving to match the company’s needs!

1. At the beginning, joining the Team

Discovery Time

When joining a new team as an Engineering Manager,
my initial tasks are:

  1. I believe it is important to have open and honest conversations with the team. I start by introducing myself and sharing my thoughts, expectations, and intentions. This sets the tone and helps establish a clear understanding of what I bring to the team and what they can expect from me. Communication is key in building trust and creating a positive working environment.
  2. I meet each individual to introduce myself, explain my background, and discuss how and why I ended up here. I also inquire about their experiences and reasons for being here and what are they expecting from their job
  3. I learn the business/product context
  • From the team’s point of view
  • From the Product team’s point of view
  • Discover technical domains in the team scope.

4. I Immerse myself and discover the team’s way of working, the team’s point of view regarding the actual process, the wish of change, and alignment with product and company needs, and their actual happiness levels.

5. I Get to know the team and what they want/like to do.

6. Caring for and getting to know the team is the key to building trust, which will become the cement of my team’s future way of working.

Iteration Time

What I value most from the people I work with is taking ownership, being accountable, and trust. I want everyone to take ownership and understand how to work on something they are responsible for. This means that it is their duty to resolve any issues that arise, but it does not imply they have to handle it alone. Ownership involves proactively searching for solutions within our scope and, if necessary, reaching out to someone who can help address the issue. We need to ensure that matters are not overlooked without being handled.

Ownership can only be achieved if my team has a good grasp of the scope they are responsible for. To comprehend this better, I use a Google Form, similar to the one below and couple it with talks during one one sessions so we can use those data as a conversation support to build.

My form comprises three sections:

  • Technical stack and tools we use in the tech team (from Git to Next.js to front-end and BDD bash, etc.)
  • Team’s backend domains codebases.
  • Team’s frontend domains codebases.

This form is highly practical because I can send the link to team members once a month, and they only need to spend less than 10 minutes completing it. I can then evaluate their knowledge and track their progress over time. This helps me identify areas that require more focus to ensure our scope is healthy and owned. It is also beneficial because I can recognize team members who feel less knowledgeable in certain areas, and I can provide them with the necessary support and training to improve.

Form description first part

Tools for Developing Trust

  1. One and one session where i ask them about how they feel

At hublo we use notion so i created a template that i use to drive one one.

I ask my team members to always prepare and fill this document before we have the one one so they can reflect on their week and they take a step back. (this prevent a common answer which is: I don’t know what to say).

  • Today, topics can be suggested by me or by each individual. They can be about anything that comes to mind.
  • Global subjects devs are the topics I need to discuss with each of them (with a tracking that makes it disappear when I add their name in the field discussed with).
  • Adjectives to qualify their week force them to create a summary of how they felt during those days. If they have no inspiration i switch to blob mood tree
  • Feedback to Benjamin (which is me 😛) is used not for reporting but to provide me honest feedback (always based on facts 😊)
  • Actions this week and next week are used for them and i to keep track of the things we commit to do
one on one session document support for the meeting

2. Personal Readme: a tool to give insights about me. How I work, and how to interact with me. It can be helpful as it allows others to understand me on a personal level, beyond just our professional interactions. This can help create stronger bonds within the team.

3. Active Listening: Listen attentively to the needs and concerns of my team members.

4. Consistency: Always follow through on what I say I will do. This simple act communicates reliability.

5. Feedback Solicitation: I Regularly ask for feedback and incorporate it during retrospectives and workshops, working together to find solutions.

6. Transparency in Challenges: If objectives aren’t met, address the issue openly, giving everyone a chance to adapt and rectify.

2. Welcoming new team members

Now that I have a better understanding of my team, I may need to hire new members to fill any skill gaps. Hiring is a way to fill these gaps, so let’s discuss how i try to shape the onboarding process for new hires.

A smooth onboarding process is crucial for operational efficiency and ensuring new hires feel a sense of belonging from day one. Every newcomer joins us at the beginning of each month and is grouped into a cohort. They undergo onsite onboarding and participate in a full week of discovery, presentations, and setup. Then, they have immersions in different services.

After completing these initial steps, we move towards more team-related onboarding, and here are the things I always do for every newcomer:

  1. Share the team’s roadmap and establish expectations.
  2. Request that each member takes the initiative to create their own personal readme and share it with the rest of the team. This fosters a collaborative environment and encourages open communication among team members.
  3. Equip them with comprehensive onboarding documentation, including software architecture overviews, process guidelines, and tech-specific instructions.
  4. I have created a documentation page that I share with every newcomer, which serves as a centralized resource for any information they may need.
  • Facilitate introductions between technical and non-technical colleagues, helping them understand the company’s broader landscape.
  • Ensure that each new hire has a more senior and knowledgeable developer as a buddy, who can dedicate time to answer questions, and I make myself available for any questions while setting the tone for important values such as transparency and trust.
  • After the first initial month and during the probation period with new hires, work together to craft personal objectives that align with the company’s vision and their professional aspirations. This collaborative goal-setting process ensures alignment and provides a clear roadmap for future growth.
  • Schedule monthly meetings to specifically discuss the ongoing probation period.
    The purpose of these meetings is to ensure clarity, trust, and clear expectations, as well as to address any issues as soon as possible and work on correcting them to make the probation period a success for both the company and the new hires.
  • Additionally, emphasize the importance of work-life balance. Make it clear that while commitment is expected, it should never come at the expense of personal well-being.

By providing a ramp-up period and a structured onboarding process, i’m not only training new hires for the job but also integrating them into the company and their new team culture.

3. Nurturing existing team members

Continuous professional development is vital. Weekly one-on-one meetings provide an opportunity for personalized feedback and growth planning. By emphasizing personal growth rather than just job performance, I create an environment where individuals feel valued beyond their immediate contributions.

Personal objectives are a wonderful tool when used properly through a collaborative process between the manager and developer, which helps in setting clear goals. If I construct a view of all the issues in the team domains, I can then decide which ones to prioritize. Use personal objectives and previously gained understanding of the developers’ wishes, seniority, and domain knowledge as a focus during quarters aside from the day-to-day team life.

Follow up about personal objectives at least once a month during one-on-one sessions to talk about progress or lack thereof, and adapt as necessary. I Ensure i’m helping them organize and provide any assistance they need. This piece of conversation will ensure that they don’t feel alone in organizing and completing these objectives and to assert progression and necessity over time to keep working on them.

At Hublo, we work in quarters, and I strive to set personal objectives based on the company’s quarterly objectives and aligned for each person’s job. This ensures that each person, according to their seniority level, has a clear understanding of why they need to do X or Y, when it needs to be done, and who is responsible for it. Having meaningless objectives is a waste of time and can be very frustrating for people so i use S.M.A.R.T method (Specific, Measurable, Achievable, Relevant and Timely bound).

4. It’s now time for Delegation

An empowered team is one that can operate efficiently even in the manager’s absence. By fostering a culture where every individual takes ownership, I believe I enable the team to function autonomously, even during emergencies. Knowing my team members allow me to know who can possibly handle arising issues or urgent needs based on their seniority / tech / domain knowledge.

When putting people in charge and delegating, i always ensure it’s something that I propose but not force onto someone. If it’s a burden for the person that is put in charge it will be stressful and a bad experience for them which will lead them to feel so uncomfortable they could start having resentment and fail to success in their tasks.

To go from doing everything myself to have thing being handled by my teammates, I apply those rules:

  • Express openly that I need help regarding a topic and I would like to delegate it
  • Identify people willing to help
  • Talk to them and ensure they feel confident and understand if not what could be the issue and explain how I can help them work this up.
  • Never drop a full topic without helping for the end over or I will never have things done in the way I expect it.
  • Align myself with the person and propose a step by step handover plan so I make everything clear about expectations, deadlines and purpose of the things to do.
  • Be open about improvement or feedback provided by the future owner and let them test things so they really own and understand the intricacy of this delegated topic.

Once I gained the trust of my team members and identified those with a desire for professional growth, I can rely on them to take charge of new responsibilities and grow alongside them. By not micromanaging and trusting my colleagues to do their best, and by ensuring that I help them grow with new responsibilities (that they agreed to take on), I can create a healthy environment where I learn to delegate without worrying and where my team members can contribute and feel even more empowered.

5. Alignment and Improvement

Developers are often immersed in their daily work and may not have the opportunity to step back and consider the long-term implications of what they are currently doing or will soon be doing.

As an engineering manager, I ensure alignment by sharing the company’s objectives with the team. Working hand in hand with the product manager, we share future initiatives we plan to tackle and how they will impact the company’s objectives. This allows the team to anticipate what is coming, ask questions, and take ownership of the subject, even contributing to its definition and shaping, before we begin.

Tools to construct alignment and Improvement

  • Conduct retrospectives with clear owners, identifying up to three points for improvement in the categories of good, bad, and actions to take, with deadlines.
    Always review past retrospective action items and ensure they have been addressed.
  • Set quarterly goals for technical subjects independent of product requirements, and share a high-level view of our progress during the quarter.
  • Review the current quarter’s and the next quarter’s roadmap to stay informed about upcoming developments as early as possible.
  • Provide feedback on the features already delivered in the current quarter to the team as often as possible. It’s always rewarding to know how the work they delivered is impacting the company and its real users!
  • One session each month of reviewing team-monitored domains helps a lot in understanding our service’s performance and deciding together where to focus our efforts next to improve the code base.

It’s a holistic approach to build a team

The culmination of this year-long journey as an Engineering Manager isn’t just about efficient operations, but about nurturing an environment where collaboration, trust, understanding, self-improvement, and team spirit thrive organically.

  • Collaboration: Encourage an environment where team members actively seek each other’s expertise and insights and I as engineering manager try to be a facilitator and not a bottleneck.
  • Trust: Uphold commitments, maintain transparency, and create open channels for communication .
  • Understanding: Value the diversity within the team, promoting active listening and empathy.
  • Self-improvement: Encourage continuous refinement of skills and receptiveness to feedback.
  • Team Spirit: Promote activities and interactions that enhance camaraderie.

By integrating these principles, the role of an Engineering Manager transcends beyond operational management. They craft an environment that is resilient, adaptive, and harmonious, where people are happy to work together and are efficient in achieving great things for the company.

In conclusion, the role of an Engineering Manager is challenging from a human point of view. They must care for both the company and the people they work with to bring out the best in everyone while ensuring their happiness and this how i try myself to do it 😊.

--

--