I've hired over 40 engineers and I can tell you that the worst hires I made were almost always technically qualified. They had the stack. They passed the technical screen. In some cases they were among the stronger technical performers in the interview process. They still failed to contribute effectively, and in a few cases they damaged the teams they joined.
The pattern is consistent enough that it changed how I think about candidate matching entirely. It's why Fonzi exists. Stack matching is necessary. It is not sufficient. And the gap between "necessary" and "sufficient" is where most early-stage hiring failures live.
What Stack Matching Actually Tests
When a hiring process uses stack matching as its primary filter, it's testing one question: has this person worked with the technologies we use? This is a reasonable filter to run. You don't want to hire a PHP engineer for a Go codebase and assume they'll ramp quickly. Technical context genuinely matters and technical screening genuinely removes candidates who would struggle.
But what stack matching doesn't test is almost everything that predicts whether the hire will work out. It doesn't test how the person communicates when they're blocked. It doesn't test how they handle a codebase that isn't well-documented, or a sprint that derails halfway through, or a code review where the senior engineer disagrees with their approach. It doesn't test whether their working rhythm is compatible with the team's operating mode. These are the things that actually determine whether a technically qualified engineer performs well in a specific team context.
The resume screen is primarily a stack check. The technical assessment adds depth to the stack check. The culture interview is supposed to fill the gap, but it rarely does because it's asking about values and beliefs, not the observable behavioral patterns that predict team fit.
The Three-Month Productivity Window
When a mismatch happens between a technically qualified engineer and a team that isn't a good working-style or culture fit, the time it takes to identify and resolve the problem is consistently painful. The first month is covered by the natural onboarding grace period: everybody is slower than they'll be, nobody expects full productivity, and rough edges are attributed to the newness of the environment. The second month the friction becomes visible but is attributed to other causes: the project they're on is complex, the codebase has historical debt, the team is in a busy sprint cycle. By the third month the pattern is undeniable but the conversation about it is now three months overdue, which makes it more fraught than it needed to be.
That three-month window where a clearly wrong hire continues in a role they're failing in is extremely expensive on a small team. It's three months of reduced team velocity, three months of accumulated senior-engineer time absorbed by coordination overhead, and three months of the rest of the team quietly adjusting for a working-style mismatch that everyone recognizes but no one has named explicitly.
What "Fit" Actually Means at the Team Level
Culture fit is a term that has been so overused and so frequently weaponized as a cover for bias that it's become almost meaningless in recruiting conversations. I want to be specific about what I mean when I use it, because the actual concept is real and matters.
Team fit, as we think about it at Fonzi, is the degree to which an engineer's habitual working behaviors match the behaviors the team needs to function well. It has nothing to do with whether they're likable or whether they went to the same schools or share the hiring manager's interests. It's about the operational stuff: how they communicate, how they handle ambiguity, how they escalate, how they work across time zones, how they manage their own time and commitments.
An engineer who prefers tight specification before coding is a good fit for some teams and a poor fit for others. That preference isn't a character flaw. It's a working style that either aligns with the team's operating model or creates friction with it. The same is true of async-first versus sync-first communication preferences, of deep-work-block scheduling versus high-interrupt tolerance, of how someone handles being wrong in a code review.
Stack matching tells you nothing about any of this. Which is why it fails as the primary filter.
Where Most Recruiting Tools Stop
The hiring tools that most early-stage engineering teams use are primarily stack-matching tools. LinkedIn Recruiter, many ATS integrations, most sourcing platforms: they all give you sophisticated ways to filter on technical credentials and filter out candidates without the right stack. They do this reasonably well. But they stop at the layer where the interesting matching problem actually lives.
A few platforms have added culture-fit surveys or values assessments. These tend to produce soft, self-reported data about preferences that doesn't generate reliable predictions. The candidate says they prefer async communication, the team says they operate async-first, and they're incompatible in practice anyway because the specific cadence expectations don't match.
What's missing is behavioral working-style signal that can be structured and compared. Not self-reported preferences. Not values statements. Observable behavioral patterns mapped against a real model of how the specific team operates. That's a harder problem than stack matching and it's the problem that predicts whether the hire works out.
A More Complete Picture of What Good Matching Requires
The two-layer matching model we built at Fonzi starts with stack matching as the baseline. You need the technical foundation. But the second layer maps candidate working-style signals against a structured profile of the team's operating environment: communication cadence, ambiguity tolerance in the codebase and ticket hygiene, escalation norms, synchronous versus asynchronous balance, working rhythm.
Getting this second layer right requires two things: structured working-style intake from candidates and an honest team environment profile from the hiring manager. Both are harder to collect than a resume. Both are considerably more predictive of actual fit than the stack match.
When we've seen the two layers combined in our early-access cohort, hiring managers report fewer "technically fine but operationally misaligned" surprises and more cases where the hire's behavior in the first 30 days matched what the matching predicted. That's the goal: not to eliminate judgment, but to bring better signal to bear earlier so the judgment is better informed.
Stack matching will keep you from making obviously bad technical hires. It won't keep you from the ones that cost you three months of team velocity and a senior engineer's patience. That's the layer worth solving.