Leadership Philosophy - A Software Engineering Manager's Manifesto

I lead software engineering teams with a philosophy built on trust, autonomy, and intentional structure. My core belief is that talented people do their best work when they are equipped, empowered, and protected from unnecessary friction — not monitored, micromanaged, or buried in low-value urgencies. I keep teams small by design, act as a buffer between developers and business stakeholders, and treat blocker removal as my highest-priority function. I hire deliberately and collaboratively, prioritizing cultural fit and intellectual curiosity over narrow technical experience, because adaptable people outperform specialists over the long run. I create space for my team to take risks and occasionally fail, calibrating conditions so that failure is recoverable and instructive rather than catastrophic. Knowledge sharing and documentation are non-negotiable expectations — not nice-to-haves — because a team where information lives in one person's head is a fragile one. I communicate openly and often, and I trust my judgment about what belongs in writing and what belongs in conversation. My goal is a team that is trusted, focused, and genuinely proud of the work they do.


1. Trust & Autonomy

The foundation of my management philosophy is trust. I do not want to micromanage. My job is to equip talented people with the tools, knowledge, and context they need — and then get out of their way. Constant monitoring signals distrust, and distrust undermines both the manager and the team.

I believe empowered contributors are more effective, more productive, and more engaged with their work. My team should feel genuine ownership over their decisions. They should operate within clear but flexible boundaries, and bring me in only when they feel they need to operate outside of them. When people have agency, they care more — and that care shows in the quality of their work.

That said, autonomy is not unconditional. If a team member is consistently taking liberties beyond what has been discussed or approved, I will have a direct conversation making clear that I need them to check in before acting outside established boundaries. If that pattern continues after an explicit conversation, it becomes insubordination — and I will treat it as such.

2. My Role: Removing Blockers

If my team has the training, the tools, and the ability, my primary job is to clear the path. When something external prevents a developer from doing their best work, it is my responsibility to leverage my position and resolve it. That is where I am most valuable as a leader.

This also means acting as a deliberate buffer between the team and business stakeholders. Requests from outside the team — no matter how urgent they feel to the requester — must pass through me if they deviate from our established goals and priorities. Every stakeholder believes their request is the most important one. Managing that reality so the team can stay focused is one of the most protective things I can do.

When executive leadership makes a decision that bypasses my recommendation or goes directly to my team, I will comply — but I will request that the directive be documented, whether in an email or on a ticket. This is not obstruction; it is accountability. When we later review why a deadline slipped or a goal wasn't met, that paper trail is what allows us to have an honest conversation about why.

3. Team Structure & Size

Research consistently supports what I have observed in practice: smaller teams outperform larger ones. I believe the ideal team size is four to six people. Larger groups create communication overhead, diffusion of responsibility, and slower decision-making.

When a team grows beyond that range, the right answer is not to stretch one manager thinner — it is to subdivide into focused sub-teams with dedicated leads. Structure should serve the work, not the organizational chart.

4. Prioritization & Focus

I am a strong advocate for the Eisenhower Priority Matrix as a tool for helping the team understand where their time and energy belong. Not every urgent request is important, and I want my team to feel genuinely empowered to say no — or to defer — when a task is a distraction from what actually matters.

Distractions and low-value urgencies do more harm than good. Protecting the team's focus is one of the most meaningful contributions I can make day to day. An hour of deep, uninterrupted work is worth more than three hours of context-switching between competing demands.

5. Hiring for Fit and Adaptability

I prefer to hire based on team fit and willingness to learn, rather than experience in the specific technology stack the team currently uses. A developer who excels in today's primary language is valuable now — but technology evolves, and experts in a single tool are often less willing to adapt when the landscape shifts. A generalist who learns quickly and is energized by new challenges will outperform a specialist over the long run.

My hiring process is deliberate by design. I conduct individual interviews with candidates myself first, which allows me to filter out poor fits before involving the broader team. Candidates who pass that stage then go through a team interview, which gives the people they will work alongside a genuine voice in the decision. I would rather spend more time finding the right person than hire the first adequate candidate and live with the consequences.

If I don't receive an enthusiastic endorsement from the team after their interview, I typically will not extend an offer. This approach also serves as a check on my own bias — my instincts alone should not be the deciding factor, and the team's read on a candidate is often more telling than mine.

6. Feedback, Performance & Difficult Conversations

I believe in delivering feedback honestly and constructively. My natural instinct is to frame difficult feedback within positive context — what some call the "compliment sandwich" — because I want feedback to feel actionable and respectful, not demoralizing.

When performance becomes a concern, my first step is always a private, direct conversation — just the two of us. People are far more receptive to criticism in an intimate setting than once the situation has been formalized. The moment HR becomes involved, most reasonable people go on the defensive, and the opportunity for genuine improvement often narrows significantly. I want to give every team member ample time and real opportunity to course-correct before we reach that point.

If a private conversation doesn't produce meaningful change, the next step is a written warning and HR involvement. And if the situation ultimately cannot be resolved, I try to find a path forward that works for the individual — whether that means transitioning to a different role within the organization or supporting them in finding something elsewhere. A termination that leaves someone with dignity and a clear next step is better for everyone than one that doesn't.

I will not shy away from hard conversations. Having been on the receiving end of a layoff myself, I know how much the humanity of those moments matters — and I carry that with me every time I have to deliver difficult news.

7. Space to Fail

I believe in giving my team the space to fail. An engaged employee with the opportunity to try new things is often more productive, more content, and more willing to stay with the company. That does not mean taking reckless risks — it means calibrating the conditions so that failure is bounded and recoverable.

If the worst outcome is an unexpected cloud hosting bill, we put spending limits in place before the experiment begins. If a mistake could affect production systems, we spin up an isolated test environment first. The goal is to make exploration safe enough to attempt — and to treat honest failures as learning, not liability.

On the question of how much failure is acceptable: if a single routine development mistake is genuinely make-or-break for the business, there are much larger structural problems that need to be addressed at a level above my team. For everything else, tolerance is something we establish together over time through communication. I generally opt for forgiveness over permission — but when I am given an explicit directive not to allow certain behaviors or areas of exploration, I enforce it. The boundary matters less than the clarity of where it is.

8. Conflict Resolution

A cohesive team handles its own friction when possible. I want my team members to address interpersonal conflicts directly and professionally — not to escalate immediately or wait for management to intervene. Avoiding conflict does not resolve it; it only lets it fester and compound.

When escalation is genuinely needed, I am glad to step in as a mediator. But I expect the team to come to that conversation having already made a good-faith effort to work it out themselves. We succeed together, and unresolved conflict makes all of us less effective.

9. Wellbeing & Sustainable Pace

I do not expect 100% output, 100% of the time. That is a path to burnout, not high performance. Research suggests developers are in a state of deep, productive focus for roughly 60% of their working hours — and I think that is both realistic and acceptable.

I expect and welcome camaraderie on the team. Casual conversation, shared humor, and genuine connection between teammates are not distractions — they are part of a healthy working environment and a predictor of team retention. Visible, excessive disengagement is a different matter, but I trust my team to know the difference.

10. Remote Work

I am strongly in favor of remote work. It affords employees a better work-life balance, and it dramatically expands the hiring pool — quality talent should not be limited to candidates who live within commuting distance or are willing to relocate.

I recognize that in-person collaboration has real benefits: whiteboarding sessions, spontaneous hallway conversations, and the kind of organic relationship-building that is harder to replicate on a screen. But I believe strong digital equivalents exist for all of these, and a well-run remote team can capture most of the value without sacrificing the flexibility that makes remote work worth doing.

My preferred model is primarily remote with occasional intentional on-site time — roughly once a month or once a quarter — where the entire team plans to be together at the same time. That rhythm maintains the human connection without making geography a barrier to doing good work.

11. Knowledge Sharing & Documentation

Shared Expertise

Knowledge hoarding is one of the most damaging patterns in a development team. When one person is the sole owner of critical knowledge, the team becomes fragile. I actively work against silos forming, and I expect expertise to be distributed across the team.

I encourage informal knowledge-sharing sessions — lunch-and-learns and similar low-pressure formats — where team members can share tips, tools, techniques, or domain expertise. These sessions build collective capability and give team members a platform to demonstrate value they might not otherwise show. They also build confidence in contributors who have something to share but may not yet have the stage to share it.

Documentation as a First-Class Expectation

Documentation is not an afterthought — it is part of the definition of done. Every ticket should carry an expectation for documentation. Skipping it may feel like it saves time in the short run, but the cost always lands on the next person who has to reverse-engineer what was built.

I also apply what I think of as the "bus test": any of us could leave work one day and not return the next. Regularly documenting what you are working on and what you uniquely know is not optional — it is a responsibility to the team and to the continuity of the business.

12. Innovation & Personal Initiative

I believe in giving team members dedicated time to pursue their own ideas in service of the business — inspired by programs like Google's innovation time. This kind of structured autonomy builds morale, encourages creative thinking, and occasionally yields meaningful results that would never have emerged from a traditional backlog.

Empowered people do better work. Trusting them to use unstructured time well is an investment in the team's long-term energy and imagination. The occasional unexpected success makes the investment worthwhile many times over.

13. Communication & Transparency

I have a philosophy that leadership is what you say, and management is what you put in writing. Communication is critical, and I would much rather have my team understand what is coming in the near future than get blindsided by it. I share what I can, as soon as I can — and when I say I don't know something or can't share it yet, my team believes me, because they've seen that I don't withhold unnecessarily.

I trust my own judgment about what belongs in writing and what belongs in conversation. An organization that requires full documentation of every interaction I have with my reports or peers is not giving me the space to do my job — it reflects a fundamental lack of trust in my discretion. If I am not capable of making that call appropriately, I have no business being in a leadership role in the first place.


In Summary

This manifesto is less about rules and more about intent. My goal is to build a team that is trusted, focused, and equipped — one where people are genuinely proud to do their best work. I will make mistakes, and I will keep learning. But these principles will guide how I show up every day as a leader.

I believe the best teams are built on mutual respect: I respect my team's talent and protect their time; they trust that I'm working to clear the path ahead of them. Neither of us needs to be perfect — we just need to be honest, keep learning, and keep showing up for each other.

Comments

Popular posts from this blog

New Steam Hardware

Thirsty Thursday Eve - Kirkland Signature Tequila Blanco

Review - Axiom Verge