Youssef Ameachaq's Blog

Youssef Ameachaq

Summary of The Manager's Path book



Chapter 1: Management 101

Key Expectations from a Manager

One-on-One Meetings (1-1s)

Feedback and Workplace Guidance

Training and Career Growth

How to Be Managed

Choosing the Right Manager

Advice for Aspiring CTOs

Summary

Chapter 2: Mentoring

The Importance of Mentoring to Junior Team Members

Mentoring is often the first step in people management for engineers. Junior team members, such as new hires or interns, are typically assigned mentors to help them acclimate. Mentors can be either junior engineers who recently went through the onboarding process themselves or senior engineers who provide technical guidance. This relationship benefits both parties: the mentor gains experience in managing others, while the mentee receives focused attention and support.

Being a Mentor

Mentoring offers a safe way to learn management skills and understand the responsibility of guiding another person. While poor mentoring can lead to negative outcomes, such as a mentee leaving the organization, effective mentoring can foster growth and retention. Key skills for mentors include listening, communicating clearly, and adjusting to the mentee’s needs.

Mentoring an Intern

Mentoring interns requires preparation and clear expectations. Interns often lack real-world experience, so providing a well-defined project is crucial. The project should be manageable within the internship period and allow the intern to learn and contribute. Regular check-ins and guidance are essential to ensure the intern feels supported and valued. At the end of the internship, having the intern present their work helps them feel accomplished and provides insight into their potential for future roles.

Mentoring a New Hire

Mentoring new hires involves helping them navigate the company’s culture, processes, and technical environment. Effective onboarding documents and introductions to key networks can accelerate their integration. Mentoring new hires also offers mentors a fresh perspective on the organization and helps build stronger internal networks.

Technical or Career Mentoring

Technical mentoring often occurs naturally within teams, where senior engineers guide junior members to improve productivity and code quality. Career mentoring, whether formal or informal, should have clear goals and expectations. Both mentors and mentees should be prepared and committed to the relationship for it to be effective.

The Alpha Geek

The “alpha geek” is a highly skilled but often intimidating engineer who values technical prowess above all else. While they can be inspiring, their tendency to dominate and belittle others can harm team dynamics. Mentoring can help alpha geeks develop empathy and leadership skills, but they should be carefully managed to avoid negative impacts on the team.

Tips for the Manager of a Mentor

Managers should set clear goals for mentoring relationships and recognize the time and effort required. Mentoring should be treated as a valuable responsibility, not just emotional labor. Avoid assumptions that mentors and mentees must be similar in background, and use mentoring as an opportunity to develop future leaders.

Hiring Interns

Internship programs are a strategic way to identify and attract talent. Companies should focus on hiring interns who are close to graduation, as they are more likely to return as full-time employees. Internships should be seen as an investment in future talent rather than a source of short-term labor.

Key Takeaways for the Mentor

  1. Be Curious and Open-Minded: Mentoring offers a chance to see the organization through fresh eyes and question assumptions.
  2. Listen and Speak Their Language: Effective mentoring requires strong communication skills and the ability to adapt to the mentee’s level of understanding.
  3. Make Connections: Mentoring helps build professional networks that can benefit both the mentor and mentee in the long term.

Mentoring is a valuable experience that fosters growth for both mentors and mentees, contributing to a stronger, more cohesive team.

Chapter 3: Tech Lead

1. What is a Tech Lead?

2. Common Misconceptions

3. Key Responsibilities of a Tech Lead

4. Challenges of Being a Tech Lead

5. Skills Required for a Tech Lead

6. Transitioning to a Tech Lead Role

7. Advice for Aspiring Tech Leads

8. Realities of the Tech Lead Role

9. Balancing Technical and Leadership Work

10. Final Thoughts

Chapter 4: Managing People

  1. New Managers: It’s an Entry-Level Job

    • Becoming a manager isn’t a promotion; it’s a new role requiring different skills.
    • New managers should approach the role with humility, as they’re starting fresh in leadership.
  2. Managing Individuals

    • A team’s health depends on the well-being of its individuals.
    • Key tasks for managing people include:
      • Onboarding new team members.
      • Holding regular 1-on-1 meetings (1-1s).
      • Providing feedback (both positive and constructive).
      • Helping team members grow through learning opportunities.
  3. Starting a New Reporting Relationship

    • Build Trust and Rapport: Ask questions to understand your team member’s preferences, communication style, and goals. Examples:
      • How do they like to receive praise (public or private)?
      • What are their career goals?
      • What puts them in a bad mood?
    • Create a 30/60/90-Day Plan: Set clear goals for new hires to help them integrate and succeed.
    • Encourage Participation in Onboarding: Have new hires update onboarding docs to improve the process for future team members.
    • Communicate Your Style: Be clear about your expectations, meeting frequency, and how you’ll review their work.
    • Get Feedback: Use the new hire’s fresh perspective to identify areas for improvement in the team.
  4. Regular 1-on-1 Meetings

    • Why They Matter: Regular 1-1s are essential for communication and building trust. Skipping them can lead to bigger problems.
    • Scheduling: Weekly 1-1s are ideal. Avoid Mondays and Fridays; mornings work best for some.
    • Adjusting Frequency: Consider how often you interact with the person, their coaching needs, and the stability of the team.
    • Styles of 1-1s:
      • To-Do List: Focus on tasks and updates.
      • Catch-Up: Informal, driven by the team member’s concerns.
      • Feedback: Provide coaching and career development advice.
      • Progress Report: Focus on project updates (useful for managing managers).
    • Get to Know Your Team: Show genuine interest in their personal lives and career aspirations.
    • Mix It Up: Try walking meetings or coffee chats for variety.
    • Take Notes: Keep shared notes to track feedback and progress.
  5. Micromanagement vs. Effective Delegation

    • Micromanagement: Over-controlling can demotivate your team and undermine their autonomy.
    • Delegation: Trust your team, set clear goals, and provide support without taking over.
    • Practical Tips:
      • Use team goals to decide which details to focus on.
      • Gather information from systems (e.g., version control, ticketing systems) before asking the team.
      • Adjust your focus based on the project stage (e.g., more involvement during design or near deadlines).
      • Establish standards for code and systems to depersonalize feedback.
      • Encourage open communication and treat mistakes as learning opportunities.
  6. Continuous Feedback

    • Why It Matters: Regular feedback helps team members improve and feel valued.
    • How to Give Feedback:
      • Observe your team and identify strengths and areas for improvement.
      • Provide lightweight, regular feedback, starting with positive reinforcement.
      • Pair feedback with coaching to help team members grow.
    • Performance Reviews:
      • Use 360-degree feedback (from peers, managers, and self-reviews) to provide a comprehensive view.
      • Write reviews with concrete examples and focus on accomplishments.
      • Avoid surprises by setting expectations early.
      • Schedule enough time to discuss reviews and celebrate strengths.
  7. Identifying Potential and Cultivating Careers

    • Potential: Look for team members who go the extra mile, offer insights, and help the team in unique ways.
    • Promotions: Understand your company’s promotion process and help team members prepare by assigning stretch projects.
    • Coaching Out: If a team member isn’t growing, be honest about their fit and help them transition to a new role or company.
  8. Firing Underperformers

    • No Surprises: Give clear, early feedback when someone isn’t meeting expectations.
    • Performance Improvement Plans (PIPs): Use these to set clear goals and timelines for improvement.
    • Document Everything: Keep records of feedback and performance issues to ensure fairness and legal protection.
    • Coaching Out: If someone isn’t a good fit, help them find a new role elsewhere while maintaining goodwill.

Final Thoughts:

Chapter 5: Moving from Individual to Team Management

Managing a team is a big step up from managing just one or two people. It’s not just about handling individuals anymore—your job changes completely. You’re not only responsible for the people but also for the bigger picture, like making sure the team works well together and gets things done. This shift can feel surprising because it’s not just a natural next step from being a great engineer. It requires new skills, like guiding the team’s focus and solving problems that slow them down. As an engineering lead, you won’t write as much code anymore, but you’ll still do small tasks like fixing bugs or adding small features. Your main job is to spot roadblocks—like slow processes or unclear goals—and clear them so your team can succeed. You’ll also work closely with others, like the product lead, to keep projects on track and figure out if you need more people on the team.

Becoming a People Manager

When you start managing people, it’s not about being the smartest or most technical person anymore. It’s about helping your team do their best work. For example, if you’re managing engineers who know more than you technically, focus on supporting them instead of trying to outshine them. Listen to what they need to succeed and give them clear feedback often—not just during reviews. This builds trust. Sometimes, people might not like you being their manager at first, especially if you used to be their peer. That’s okay—it takes time. Be patient, talk openly with them, and show you’re there to help. Good management is about supporting people, not proving you’re the best.

Staying Technical as a Manager

Even as a manager, you need to stay connected to the technical side of things. This doesn’t mean writing tons of code, but doing small tasks—like fixing bugs—helps you understand the team’s challenges. If the build process is slow or deployments are a mess, you’ll feel it yourself and know what to fix. Staying technical also earns you respect from your team. They need to see you as someone who gets the tech, not just a “boss.” Plus, it helps you guide projects better—like figuring out if a feature is doable or how to make it simpler. Balance is key: don’t get lost in meetings and lose touch with the code. If your company doesn’t let managers code at all, try to stay technical as long as possible before fully switching to management, or you might struggle later.

Fixing Team Problems

Teams can stop working well for a few reasons, and it’s your job to spot and fix these issues. If your team isn’t finishing work—like missing deadlines—it might be because the process is slow, like releases happening only once a week. Push for faster, easier releases to keep things moving and boost morale. Another problem is drama—like someone being negative or rude. Act fast: talk to them, give clear examples of the issue, and say it needs to change. If they’re really toxic, help them leave kindly. Overwork is easier to fix—slow down new projects and focus on stability, like reducing system crashes. If it’s a big deadline, support the team by helping out, cheering them on, and planning a break after. For teams that don’t get along with others—like the product team—meet regularly with peers, share feedback, and stay positive to improve teamwork.

Managing a Former Peer

If you’re now managing someone who used to be your equal, it can feel weird for both of you. Be honest about that awkwardness and ask for their help to make it work. Don’t boss them around or override their ideas just because you can—let them keep some control over technical work you used to do. Give them room to grow and share your old tasks with the team. Show you’re there to help everyone succeed, not to take anything away. They might test you or disagree more at first, so stay calm and pick your fights wisely. Over time, being fair and mature will win them over.

Protecting Your Team

As a manager, you should shield your team from distractions—like company drama that doesn’t affect them—so they can focus on work. But don’t hide everything. Share enough context, like why a project matters or what happens if it fails, so they can make smart choices. If big changes—like layoffs elsewhere—happen, tell them simply and honestly to avoid rumors. You’re not their parent, so don’t treat them like kids who can’t handle tough stuff. Give them respect and the info they need, and they’ll handle it like adults.

Making Good Decisions

You’re not the only one making choices—your product manager sets the roadmap, and your tech lead handles tech details—but you’re responsible for how it all turns out. Use data, like how long tasks take or how many bugs pop up, to guide decisions. Understand your customers—whoever uses your team’s work—and help your engineers see why their projects matter. Look ahead: ask about future plans and think about tech that could help. After projects, check if they worked as planned—did that rewrite speed things up? Finally, hold regular team talks to see how they feel about the process and fix what’s bothering them.

Handling Conflict

Don’t avoid tough talks or let the team vote on everything—it can backfire and hurt feelings. Instead, set clear rules for decisions, like who’s in charge and what to consider. Face problems early—don’t wait for reviews to bring up big issues. Keep it calm and focused, not dramatic. Be kind, not just nice: tell people the truth, even if it’s hard, like saying they’re not ready for a promotion but can get there with work. Don’t fear conflict—ask yourself if you’re dodging it because it’s uncomfortable. Being thoughtful stops you from overreacting or hiding.

Building a Strong Team

A good team feels safe to take risks and make mistakes together. Get to know them as people—ask about their lives outside work to build trust. Watch out for toxic people, like the “brilliant jerk” who’s smart but mean. Don’t keep them just because they’re good—call out bad behavior firmly and fairly, even in public if it harms the team. A “noncommunicator” who hides their work needs a nudge to share—check if the team’s culture makes them scared to open up. Someone who doesn’t respect you or others can’t stay—talk to them plainly and move them out if needed. Quick action keeps the team strong.

Planning Projects Well

You’ll help set your team’s schedule, guessing how long projects take and if you have enough people. Plan for about 10 solid work weeks per person each quarter—holidays and meetings eat up time. Save 20% of that for fixing old code or handling surprises—it keeps things smooth. Near deadlines, say no to extra stuff and cut features to hit the goal. For quick guesses, double your first thought, but for big tasks, take time to plan properly. Don’t bug your team with constant estimate requests—handle the uncertainty yourself and keep them focused.

Starting with a Small Team

If you’re new to a small team, learn the tech fast. Get a walkthrough of the systems, try the onboarding process, and watch code reviews. Work on a feature or two in your first 60 days—pair with someone to get the hang of it. This builds your cred and shows you understand their world. Management stuff might slow down while you learn, but it’s worth it to lead well later.

Checking Your Progress

Think about what’s new in your role and what you’ve let go of to make time. Do you know the team’s daily struggles with code? How often do they finish tasks? When did you last code with them? Are a few people causing trouble—how will you fix it? Do they seem happy together—joking or grabbing coffee? How do you decide things—who’s in charge of what? Have you checked if a project met its goals lately? Do they get why they’re doing their work? When did you last trim a project—what guided you? These questions help you see how you’re doing.