Why AI Won’t Replace the Human Touch in Performance Reviews Performance reviews are a perennial headache in many organizations – often seen as bureaucratic, time‐consuming, and stressful for managers and employees alike. With the rise of AI tools, some argue we might automate or even eliminate traditional reviews. Is it realistic (or wise) to have AI do our performance reviews? I believe the…
A career development plan is a structured approach to professional growth. It’s a tool for both individuals and managers to align on expectations, identify opportunities, and measure progress. A well-crafted plan can be the difference between a reactive career and a proactive one. The “Why”: Aligning on a North Star The first step in creating a career development plan is to…
Onboarding Engineers with Mentorship Pods When you’re a small team, pairing each new hire 1:1 works great—but as you grow, that model becomes overwhelming. Mentorship pods solve this by pairing a single mentor with a small cohort of new engineers. They learn together, share questions, and ramp up faster than going it alone. Why Pods? Pods create a community feel. Mentees learn from each other’s…
A Pragmatic Framework for Technical Debt We’ve all faced the dilemma: should we rush a quick feature out the door, or spend extra time refactoring code? That choice often creates technical debt—shortcuts in code, architecture, or process that make future work harder. Left unaddressed, debt piles up and slows your entire team down. What Is Technical Debt? Think of technical debt like a credit card…
Blameless Postmortems: Turning Failures into Learning When something breaks in production—maybe a server crashes or a deployment goes sideways—it’s tempting to point fingers and hunt for the person “at fault.” But that only breeds fear and discourages honest discussion. A blameless postmortem flips the script: it treats every outage as a chance to learn how our systems and processes can improve,…
Structuring an On-Call Rotation: A Guide for Engineering Managers On-call rotations are more than “who picks up the phone”—they’re a critical way to balance incident response, customer support, and operational health without burning out your team. Below is a template you can adapt, illustrated with examples from my time leading a device-management on-call rotation at a fast-growing tech company.…
In the software development world, teams often face the dilemma of whether to build a tool in-house or purchase an existing solution. This “build vs. buy” debate can significantly impact a company’s efficiency, budget, and focus. A quintessential example of this debate is the implementation of feature flags. Understanding Feature Flags Feature flags, or toggles, are a powerful technique that…
Purpose The primary purpose of one-on-one meetings is to give your reports a chance to discuss issues and topics that they find important. It’s an opportunity for them to bring up concerns, challenges, and ideas that might not surface during regular team meetings. This is not a meeting to get status updates on projects! Schedule other time for that. Frequency and Duration These meetings should be…
Background In my current role, I inherited an older codebase where best practices were often overlooked. As I reviewed the code and the surrounding processes, I found numerous areas for improvement in both code quality and operational practices. Where to Start? When tackling a project like this, I find it best to break down the necessary changes into four categories: Immediate Changes Short-Term…
In the realm of incident management, accurate and swift communication is vital. Different organizations adopt various strategies to ensure efficient communication during emergencies. One such strategy that has been gaining traction is the utilization of CAN reports, a mnemonic that stands for “Conditions, Actions, Needs.” Let us delve deeper into the intricacies and origins of this unique…
Introduction Technical debt is a common challenge faced by engineering teams, requiring deliberate efforts to manage and pay it down. In this blog post, we will explore different approaches to tackling technical debt and building a long-term technical strategy. We will also highlight the importance of involving senior individual contributors (ICs) and engineering managers (EMs) in shaping the…
Crunch periods are a reality in many industries, and sometimes they are necessary to meet an immovable deadline. However, working under high-pressure situations for an extended period can lead to burnout, and it’s essential to provide support for the team after the crunch is over. In this blog post, we will discuss different approaches for formalized recovery time after a crunch period. Ask…
As a manager, you’re responsible for ensuring that the software your team creates is of the highest quality possible. This means reducing the number of bugs and improving code quality. But how do you measure these improvements? And what strategies can you implement to achieve them? Measuring Quality One traditional way of measuring quality is by the number of bugs that are found and fixed.…
When it comes to software engineering roles, experience in the tech stack you’re going to be working in is valuable but not specifically required. A good engineer can ramp up and learn new stacks. However, someone experienced in the tech stack can contribute quickly to key development initiatives, while also bringing outside experience using the stack. But which tech stacks are easier to…
I was speaking to a friend who works at a startup with a team of around 14 engineers. 80% of them are mid level engineers with 3-4 years of experience. They all work in product squads covering specific areas. These have lost momentum in the development and they are seeing 2 key problems: The teams lacks direction on where to focus their energy and prefer tackling small issues as they don’t…
Engineering Leadership Principles The article “Engineering Leadership Principles” by Hugo Dias outlines six principles that he believes are crucial for effective engineering leadership: Build trust through transparency and communication Foster a culture of learning and growth Prioritize quality and reliability Lead with empathy and emotional intelligence Build strong, diverse teams…
Note: This is a proposal I put together with one of the engineers in my organization for a peer-directed mentorship program. I’ve removed names and fudged numbers but I hope it will serve as a valuable template. All other numbers quoted here are from outside studies, with links to the studies provided. Peer Mentorship Proposal The most valuable asset of a company are its employees. Among top…
Note: This is a compliment to the previous article I wrote about the Technical state of a Team, and explains the concepts in depth. Technical State of the Team There’s a saying that people don’t leave companies, they leave managers. Management is a key part of any organization, yet the discipline is often self-taught and unstructured. Getting to the good solutions for complex management challenges…
All the previous project planning articles summarized into a checklist. Project Planning Checklist Pre-Planning Identity your stakeholders Identity the goal you’re trying to accomplish Get familiar with the code Set up a local environment to try things out Beginning to Plan Identify the rough scope of the work Identify the milestones of the project Project Kickoff High-Level Timelines Call out…
Note: This is a series of project planning talks I gave my team. Running your project Writing A Technical Design Document At this point, you’re ready to start designing your system. A good technical design document should contain: An overview of the problem A breakdown of the individual milestones and how they’re related High-level process / workflow diagrams / designs / etc Any other notes that…
Note: this is an expansion on a previous article I wrote around kickoff docs. Project Kickoff! At this point, you should have a good idea of what your overall goal is. You should have a rough sketch of what your milestones are for the project and what you want to include in each one. You should not have the specific details of the projects worked out yet. It’s time for a project kickoff.
Note: This is a series of project planning talks I gave my team. So you’ve got yourself a project A project (and a ticket) is a placeholder for a conversation. No matter if a ticket is super detailed or vague on what it wants, the best way to do good work is to figure out a few things about the work you’ve been given. Get Comfortable Pre-planning for any project should begin FAR before the actual…
Note: This is a series of project planning talks I gave my team. When to plan a project What is a project plan? Project planning is the process of defining your objectives and scope, your goals and milestones (deliverables), and assigning tasks and resources for each step. A good plan is easily shareable with everyone involved, and it’s most useful when it’s revisited regularly. Simply outlining a…
Note: This was a series of talks I gave to leadership in my organization, so some of the comments here might not make sense in the context of a blog post. This is not original work: I pulled heavilty from these four books to put together these talks: References: High Output Management The First 90 Days An Elegant Puzzle A Manager’s Path If I did not site some of these works here, or pulled quotes…
Note: This was a series of talks I gave to leadership in my organization, so some of the comments here might not make sense in the context of a blog post. This is not original work: I pulled heavilty from these four books to put together these talks: References: High Output Management The First 90 Days An Elegant Puzzle A Manager’s Path If I did not site some of these works here, or pulled quotes…
Note: This was a series of talks I gave to leadership in my organization, so some of the comments here might not make sense in the context of a blog post. This is not original work: I pulled heavilty from these four books to put together these talks: References: High Output Management The First 90 Days An Elegant Puzzle A Manager’s Path If I did not site some of these works here, or pulled quotes…
Note: This was a series of talks I gave to leadership in my organization, so some of the comments here might not make sense in the context of a blog post. This is not original work: I pulled heavilty from these four books to put together these talks: References: High Output Management The First 90 Days An Elegant Puzzle A Manager’s Path If I did not site some of these works here, or pulled quotes…
Setting Goals Two of the more popular methods for setting goals are SMART and CLEAR: SMART Goals This method helps ensure that the goals have been thoroughly vetted. It also provides a way to clearly understand the implications of the goal-setting process. Specific – To set specific goals, answer the following questions: who, what, where, when, which, and why. Measurable – Create criteria that you…
Overview In re-reading High Output Management recently, I was particularly interested in reading over Andy Grove’s schedule and seeing how he spent his time. I thought it might be interesting to post something similar to how I allocate my time throughout the year. Regular Occurring Events: Weekly 1:1’s with all direct reports Weekly 1:1’s with PM, Design, etc Weekly 1:1’s with my…
I was reviewing an old incident review doc where I wrote up some of the high level learnings from the incident. Thought it was worth sharing, with the details omitted to protect the innocent. Some backstory; we were trying to load test a component and ended up getting the load testing done at the last minute right before customer launch. The team had to work into the weekend to meet the customer…
Some thoughts on how you could evaluate the state of the systems your team owns. One way to use this: Put some of these criteria on the Y axis Put the name of the components you own on the X. Give everything a score from 1 to 0. Either average the scores or sum them to figure out which components need the most love. If all of these are the same for everything you own, it might make sense to skip…
Velocity is a commonly used metric in development teams to measure how much work they can fit into a sprint. However, using velocity for any other purpose can be problematic as it might not reflect the real progress of the project and can be a flawed planning mechanism. It’s crucial to understand that each team defines what a point means for them, making velocity not useful for comparing…
This is based off a talk I gave on improving communications. There is a lot of communication right now With everyone working remotely, the importance of communication has increased. We’re communicating more often without meeting, and making your message clear when everyone is deluged with correspondance is the only way to have impact in your organization. To succeed in any organization, you…
Back when we were all the office together, it was pretty easy as a manager to get a feel for how the team was doing. Are folks getting along? Are folks stressed? Does everyone have the right balance of work? With folks all around you, it was pretty easy to drop in on a conversation, take someone to lunch, or grab a coffee and talk. These small encounters gave you a chance to make sure your team…
What is a Project Kickoff? What is a project kick-off? A project kick-off meeting is the first meeting with the project team and the client of the project where applicable. This meeting is the time to establish common goals and the purpose of the project. Taken from the Atlassian Project Kickoff reference. Why a Project Kickoff? A project kickoff sets a clear outline of project goals and…
Backlog Grooming Some thoughts on how you could evaluate the state of your backlog. Small, well groomed backlog Are the tickets in the backlog going to be actioned in the near term? If you deleted the tickets that aren’t in your near-term roadmap, how long would it take you to recreate it? Is the Backlog consistently growing or shrinking? Are the tickets all in a state to be actioned…
I use SCQA all the time in my communications both up to leadership and down to my teams. This TED talk from Derek Sivers is a great example of someone using SCQA to communicating a problem and a suggested solution in a short amount of time. Worth watching if you’re looking to use SCQA in your own communications. Another example of an SCQA structured communication is something I received at…
Some further classes I recommend for potential new engineering managers. https://www.harrisonmetal.com/library/objectives-key-results So many companies want to set up goals in the OKR (Objective-Key Result) format. This shows some great examples how to format yours. https://www.harrisonmetal.com/library/storytelling-amp-presenting-1-thank-you-barbara-minto I use SCQA all the time in my…
More Shared Knowledge on Projects Include more people in code reviews even if they’re not actively picking up development tasks – this shares out knowledge of the changes and gets another set of eyes that can ask good questions Break team silos, share knowledge Do Team PR’s for big PR’s Ideally break work into small pieces though Do team share of projects for tech projects,…
A couple of EM conferences folks might find useful: SFELC Summit An annual celebration for engineering leaders. A wide range of topics. One day, multiple tracks. Great speaker lineup. A refresher on management fundamentals. Workshops and Breakouts. Calibrate You’re a great engineer. Become a great leader. Calibrate is aimed at practicing engineering managers, responsible for the people on their…
Wanted to share the results of the work we’ve been doing to improve performance and stabilize our ES cluster. Short Version: Changing sharding and “highlighting” strategies when doing FreeText searches dramatically impacts performance. Long Version: We’ve been load testing various aspects of search to pinpoint features we use that create large amounts of load on the system.…
A friend recently introduced me to the ideas of creating a Manager README. The idea is that for coworkers and new team members, you give a rundown of how you like to work and what they can expect. Some of the canonical READMEs that are frequently used as templates can be found here. A list of the current READMEs out in the wild (including mine), as well as some links to guides to help write them,…
Wanted to share some insights my team has found with changing sharding strategies for ElasticSearch (ES). Today we moved 100% of my work’s search and autocomplete queries from a mutli-sharded index to a single-sharded index. Short version: Reducing shard count reduces system load, CPU usage, mostly positive results on performance. Medium version: In moving 100% of our searches and…
Two classes I recommend for potential new engineering managers. https://www.harrisonmetal.com/classes/foundations-general-management The course is designed to help new managers develop foundational skills in management and leadership. The course covers several key topics, including: Understanding the role of a manager and developing a management philosophy Building effective teams and managing…
Seeing high garbage collection with ElasticSearch? My team was seeing periodic 300ms+ garbage collection pauses. We found out that we had misconfigured our ES instances. If you’re encountering this, make sure you’ve disabled memory swapping: https://www.elastic.co/guide/en/elasticsearch/reference/5.0/setup-configuration-memory.html
Was doing some test speedup/performance improvement work recently on the search API and found out something; the moment.js library takes around 100 microseconds (or .1 milliseconds) to create a new instance. Why is 100 microseconds a big deal? If you’re processing: 100 records Where each record has 7 date fields Then you’ve created 70,000 microseconds of work Or 70 milliseconds of…
My team at work recently upgraded our codebase to use to node 6.9, as node 6 has recently gone to LTS. In the picture below, the 1st line is the upgrade from node 4 to node 6, and the corresponding flattening of memory usage vs. load. The 2nd line is our removal of redis connection queueing in the application. All of all, the memory consumption of our application is now averaging around 150MB,…
Superagent/Request Memory Leaks The last several weeks Thomas Hunter and myself have spent some of our nights and weekends trying to track down memory leaks in an API we both work on. We were seeing a distinct pattern, that when the API was put under a certain amount of load, that we would start slowly bleeding memory. We’ve found three results: Superagent, when put under a certain threshold…
Pun in title intentional I upgraded a heap of projects I was working on to node 4.2.3 and babel 6. As I did a quick and dirty upgrade, I kept thinking to myself: doesn’t node 4/5 have pretty good support for es6/2015? As I was looking around the internet for Hello Kitty Formalwear babel 6 upgrade tips, I came across this package which read my mind. So if you’re a node 4/5 user, by…