Your team is a mirror.
Look at the people working for you right now. The ones who quit. The ones who coast. The ones who crush it.
That’s not luck. That’s not the job market. That’s you. You don’t get the team you want. You get the team you are.
I’ve hired dozens of people across our businesses. I’ve made many mistakes. Hired the “10x” guy who tanked a team. Passed on a quiet kid from a no-name school who turned out to be one of the best engineers I’ve ever worked with. Lost good people within 90 days because I dumped 50 playbooks on them in week one.
Here’s what I learned the hard way:
Most leaders hire backward. They post a job. They run interviews. They pick whoever scored highest on the test. A few months later, they’re confused why it isn’t working.
It isn’t working because hiring isn’t a checklist. It’s a system. Five steps. In order. Skip one, and the whole thing breaks.
This article is about the system.
By the end, you’ll know:
- How to attract A-players without chasing them
- How to define a role so the right person becomes obvious
- How to spot a toxic top performer before you hire them
- The 3 questions that predict success better than any test
- How to keep new hires past day 90
No theory. No fluff. Just what’s worked for us at Codalify. Read it. Use it. Build the team you actually want.
Let’s go.
Why Build a World-Class Team?
A weak team will bleed you dry.
You’ll work nights. You’ll fix bugs your engineers missed. You’ll apologize for your support team. You’ll be the bottleneck on every decision.
You didn’t start a company to become its hardest-working employee. But a B-team puts you there.
And it gets worse. B-players push A-players out. You lose the ones you need and keep the ones you wish would leave.
Solution: Build a world-class team.
Not “good enough.” Not “they’ll grow into it.” A team where every seat is held by someone you’d hire again tomorrow.
When you have that team:
- Decisions get made without you
- Quality goes up while you do less
- A-players attract more A-players
- The company grows when you take a week off
The result would be:
You get your time back.
The business grows faster. Same hours. Bigger output.
You sleep better. Because the people running things offline are as committed as you are.
A world-class team isn’t a luxury. It’s how the company survives the next ten years.
Build it on purpose. Or pay for it by accident.
#1 Fix yourself first. The team follows: Be → Do → Have Framework.
Look at your team right now.
The people who stay. The people who perform. The people who quit.
That’s not a hiring problem. That’s a mirror.
Your team is reflecting back the standard you actually live by — not the one you talk about in meetings.
If your team avoids hard conversations, it’s because you do. If your team panics under pressure, it’s because you do. If your team is sharp, calm, and accountable… it’s because you became that first.
Here’s the trait most founders had to develop before they could attract great people:
Emotional steadiness under pressure.
Talented people don’t follow loud leaders. They follow calm ones.
The framework is simple. Three words: Be. Do. Have.
Most leaders run it backwards. They want to HAVE a great team, so they DO more managing, hoping they’ll eventually BECOME a great leader.
It doesn’t work.
The real order is:
Be the kind of person a great team would follow. Do what that kind of leader does. Have the team that naturally shows up.
You attract who you are. Not who you want.
Here’s how this played out for me.
Years ago, I was running a web development blog called codeofaninja.com. I wasn’t trying to recruit. I was just coding, sharing, and showing my work in public.
But something quietly happened in the background.
Freelancers started reaching out wanting to work on my projects. Later, when I started Codalify, applicants would tell me they already knew codeofaninja. They knew I could code. They wanted to work with someone who actually understood the craft.
I didn’t pitch them. I didn’t sell them. They came because of who I had become — a builder who shipped, taught, and stayed in the work.
That’s Be. Do. Have.
I became a real engineer first. I did the work in public. The right people showed up.
And here’s the part for my team leaders — because you don’t need a blog for this to apply to you.
Your “codeofaninja” is whatever you consistently demonstrate to your team.
If you’re a QA lead, your team learns quality from how carefully YOU test, not from your SOP. If you’re an engineering lead, your team learns standards from how YOU review code, not from your checklist. If you’re a CS lead, your team learns empathy from how YOU talk to angry customers, not from your script.
You don’t need an audience. You need a body of work your team can see.
The people you lead are watching what you actually do — and quietly deciding whether to match it.
Here’s what most people don’t know:
Your team will never rise above the standard you embody when no one is watching.
They’re not reading your playbook. They’re watching how you act on a bad day.
So if you want a better team, don’t hire harder.
Upgrade the one person every hire is quietly measuring.
You.
Fix yourself first. The team follows.
#2 The real cost of a vague role is a decent hire who can’t deliver: Outcomes → Decisions → Profile Framework.
Most leaders mess up hiring before they even write the job description.
They feel a pain point. They say “we need another engineer.” They copy a JD from somewhere. Six months later, the hire isn’t working out and they blame the person.
The person wasn’t the problem. The role definition was.
Here’s a simple framework. Three steps. In order. Works for junior, mid, and senior roles.
Step 1: Outcomes. What does success look like in 12 months? Write 3 to 5 specific results. Not activities. “Cut API response time from 800ms to 300ms” is an outcome. “Manages our backend” is an activity. Activities don’t tell you who to hire.
Step 2: Decisions. What decisions will this person own that nobody else owns today? This is the question most leaders never ask.
For a junior, the decisions might be small. “Owns which test cases to write for their own pull requests.” That’s still a decision. For a mid-level, it might be “owns the implementation approach for assigned features.” For a senior, it might be “owns the architecture of a whole module.”
Every role has decisions. If you can’t name any, you haven’t thought about the role enough.
Step 3: Profile. Only now do you describe the person. The skills and experience fall out of steps 1 and 2 almost automatically.
Let me show you with a real example from Codalify.
We needed a new software engineer for SociableKit. The lazy version of this hire is to post a JD listing PHP, Laravel, Vue, MySQL, and pick whoever checks the boxes. We’ve seen what that gets you. Six months later, the seniors are still reviewing every line and rewriting half of it.
So we ran the framework instead.
Outcomes. Ship assigned widget features end-to-end within sprint. Cut bug bounce-backs from QA by half. Handle their own integration work with third-party APIs without escalating every edge case.
Decisions. Owns the implementation approach for their assigned feature. Owns which existing components to reuse vs build new. Owns when to flag a tricky edge case to a senior.
Profile. Suddenly obvious. Someone who can read an existing codebase, work with third-party APIs, and ship a full-stack feature on their own. Not just “knows Laravel and Vue.”
Now here’s the part most people miss.
Even with a perfect role definition, interviews still lie to you. Candidates rehearse answers. They pass coding puzzles that have nothing to do with the actual job. Then they show up on day one and you realize the puzzles tested the wrong thing.
At Codalify, we fixed this by making our exams contain actual pieces of the job. Not abstract algorithm puzzles. Real work.
For SociableKit, the exam is a small feature that mirrors what they’d actually build on the team. Something like: build a page where a user logs in with Google, then uses the YouTube API to fetch a channel’s list of videos with pagination.
That one task tells us everything. Can they handle OAuth? Can they read API docs and integrate a third-party service? Can they think about pagination edge cases? Can they wire up a clean frontend? Do they write code we’d actually want to merge?
You can’t fake that in a 90-minute interview. Either you can build it or you can’t.
The result? We find out before we hire whether they can actually do the work. Not whether they’re good at interviews.
So here’s the full loop. Define outcomes. Define decisions. Then test them on the actual work, not a proxy for it.
Here’s what most people don’t know.
The real cost of a vague role isn’t a bad hire. It’s a decent hire who can’t deliver.
Bad hires are obvious in 90 days. You let them go.
The damage comes from people who do their job exactly as written, but the job was written wrong. They stay. They’re “fine.” And the problem you were trying to solve a year ago is still your problem today.
If you can’t name the outcomes and the decisions in one sitting, the role isn’t ready to hire for.
That’s the signal. Don’t ignore it.
#3 Skill is rented. Character is owned: Three Gates Framework
Years ago, when I was still a team leader at my old job, I interviewed candidates from the most prestigious colleges in the Philippines.
Top schools. Top grades. Top exam scores. But when I talked to them, something felt off.
They weren’t humble. They talked like they could take over the company — and they were only fresh graduates. All talk. No proof.
Not one of them could show me a real project they had actually coded and shipped themselves. But their written and technical exams? Excellent.
Then I interviewed another candidate.
He didn’t come from a top school. Just a small provincial college. His exam score wasn’t the best either.
But he opened his laptop and showed me a sample project he had built. He walked me through how he made it, line by line. Humble. Clear. Real.
We took a chance on him. We were right.
He turned out to be one of the most reliable engineers I’ve ever worked with. He built the early version of our Chrome extension. Later, he helped me ship features for SociableKit.
We’re still friends today.
Years later, I saw the opposite play out at another company. A founder I know hired the best engineer he’d ever interviewed.
Fastest take-home test the team had ever seen. Clean code. Knew the stack inside out.
But in the interview, the guy said something small:
“My current teammates are slow. I usually rewrite their code after they push it.”
He laughed. The hiring manager laughed too. They hired him.
Six months later:
Two mid-level engineers had quit.
The team stopped pushing code on Fridays — scared of his review comments.
QA stopped flagging his bugs — tired of arguing.
Velocity dropped 40%.
The “10x engineer” became a 0.5x team.
Here’s what most founders don’t know:
An empty seat costs you one person’s output.
A toxic top performer costs you the output of everyone around them — plus the people who quit, plus the people you’ll hire to replace them.
One brilliant jerk can cost you three good engineers in a year.
So how do you avoid it?
Use the Three Gates — in this order:
Gate 1 — Character. Are they honest and humble?
Gate 2 — Culture. Do they lift the team, or only themselves?
Gate 3 — Competence. Can they do the job?
Most leaders check competence first and rationalize the rest. Reverse it.
A diploma from a top school is not character. A perfect exam score is not character. Character shows up in small things — how they talk about their old teammates, whether they show their work, whether they listen.
If your gut says something feels off, that’s Gate 1 or Gate 2 sending you a signal your brain hasn’t put into words yet.
Don’t ignore it. Skill is rented. Character is owned. Hire the owner.
#4 Listen twice as much as you talk: Past → Problem → People Framework.
Most leaders ask candidates too many questions in interviews.
The best ones ask very few — but listen deeply.
After hiring dozens of people across my companies, I’ve found that just 3 questions predict success better than any technical test.
I call it the 3 P’s framework: Past, Problem, People.
Question 1 — Past: “Walk me through your last project. What was your specific role?”
This tests ownership.
Listen for “I” vs “we.”
Strong candidates say “I built this” and “we shipped it together.” They own their work and credit their team.
Weak candidates hide behind “we” for everything — or take credit for everything with “I.”
Both are red flags.
Question 2 — Problem: “Tell me about a time you were wrong. What changed your mind?”
This tests coachability.
You want someone who can admit a mistake without defending themselves.
If they can’t think of an example… that IS the answer.
If their “mistake” is a humble-brag like “I work too hard”… that’s also the answer.
Question 3 — People: “Who’s the best teammate you’ve ever worked with, and why?”
This tests their values.
The traits they admire in others are usually the traits they’re trying to build in themselves.
If they describe someone humble and curious — that’s who they want to become.
If they describe someone “aggressive and ruthless” — pay attention.
Here’s a real story:
A backend lead was hiring a senior engineer. Two finalists. Both passed the coding test.
Candidate A said: “We rebuilt the billing system.” Every answer stayed at “we.”
Candidate B said: “I owned the migration script. I broke production once because I missed a timezone edge case. My senior caught it in code review. I should’ve written more tests.”
They hired Candidate B.
Six months later, she had shipped two major features and was mentoring a new hire.
Candidate A? They later learned he’d left his previous job after conflicts with the QA team.
The questions didn’t test coding.
They tested how each person thought about themselves on a team.
That’s what actually predicts performance after month one.
Now here’s what most people miss:
The signal isn’t in the answer. It’s in the silence and the specifics.
Vague answers like “we improved performance” usually mean the person wasn’t deeply involved.
Specific answers like “I cut latency from 800ms to 220ms by adding a Redis cache” reveal someone who truly owned the work.
And watch the pause before they answer.
When you ask “tell me about a time you were wrong” — the first 3 seconds tell you everything.
People who pause, breathe, then answer thoughtfully are usually self-aware.
People who jump in with a polished story have rehearsed it.
Which often means it isn’t real.
Three questions.
Listen twice as much as you talk.
That’s the whole framework.
#5 The job of onboarding is to manufacture an early win: Connect → Clarify → Contribute Framework.
You can hire the right person and still lose them in 90 days.
I’ve seen it happen. Sharp engineer joins. Six weeks in, they go quiet. Day 91, resignation email. You’re left wondering what went wrong.
Here’s what we changed at Codalify, and the simple framework my team leads now follow.
It’s three stages. Thirty days each. Skip one, and you lose the person.
Stage one: Connect.
Before code. Before tickets. Before deep technical work. The new hire needs to feel they belong.
At Codalify, HR and the team leader own this. Daily check-ins in the first week. Real conversations, not status updates.
The goal isn’t productivity. It’s psychological safety.
Stage two: Clarify.
Now we make the job crystal clear.
What does “good” look like in this role? What are the three outcomes we’ll measure them on at day 90?
Most onboarding fails right here. Team leaders assume the new hire gets it because they nodded in the meeting. They don’t.
Stage three: Contribute.
Real ownership. A small but visible win.
Not busywork. Something a teammate will actually thank them for.
Let me show you how this plays out.
Mark joined our software engineering team. Strong Laravel background. Perfect on paper.
Day one, HR walked him through the essentials. His team leader sat with him after lunch. No deep technical dive yet. Just connection.
In week one, we introduced him to a few core playbooks. Not all of them. Just the ones he needed to ship his first task. Enough to start. Not enough to drown.
Week three, his team leader gave him three specific outcomes. Ship the caching fix. Write test selectors for two critical flows. Self-test before every PR.
No vague goals. Measurable.
By week ten, Mark shipped the caching fix. Page load dropped. A paying customer sent a thank-you note. Customer Success forwarded it.
Mark posted it in our team channel.
That was the moment. He stopped feeling like a new hire. He became one of us.
Now here’s what I stopped doing.
The firehose week.
We used to dump every playbook on new hires in week one. Every SOP. Every repo. Every Notion page. We thought we were being thorough.
We were drowning them.
People would go quiet around week six. They’d nod in standups but ship slowly. When I asked why, the answer was always the same.
“I didn’t want to ask because I felt like I should already know.”
The firehose creates fake confidence on day five and real shame by day thirty.
So we killed it. Week one now has one technical task and only the playbooks they actually need to start.
Here’s what most founders miss.
Onboarding isn’t a document. It’s a feeling of progress.
People leave in the first 90 days for one reason. They can’t see themselves winning here.
They can’t picture a moment, three months out, where they’ll feel proud of something they shipped.
If you don’t engineer that moment for them, on purpose, with a real deadline, they’ll quietly start looking elsewhere by day 45.
You won’t see it coming.
The job of onboarding isn’t to transfer information.
It’s to manufacture an early win.
5 Quotes on Building a World-Class Team
1. “The secret of my success is that we have gone to exceptional lengths to hire the best people in the world.”
— Steve Jobs, co-founder of Apple
2. “I am convinced that nothing we do is more important than hiring and developing people. At the end of the day, you bet on people, not on strategies.”
— Lawrence Bossidy, former CEO of Honeywell and co-author of Execution: The Discipline of Getting Things Done
3. “Hire character. Train skill.”
— Peter Schutz, former CEO of Porsche, known for turning the company around in the 1980s
4. “A players hire A players. B players hire C players. So if you start hiring B players, expect what Steve called ‘the bozo explosion’ to happen in your organization.”
— Guy Kawasaki, former Apple chief evangelist and bestselling author of The Art of the Start
5. “Who you are is who you attract.”
— John C. Maxwell, leadership expert and author of The 21 Irrefutable Laws of Leadership (this is the Law of Magnetism that anchors this whole article)
Conclusion
Building a world-class team isn’t luck. It’s a system. Five steps:
- Be → Do → Have. You attract who you are. Fix yourself first.
- Outcomes → Decisions → Profile. Define the role before you write the JD.
- Character → Culture → Competence. Skill is rented. Character is owned.
- Past → Problem → People. Three questions that predict performance.
- Connect → Clarify → Contribute. Onboarding’s job is an early win.
Skip one and the system breaks.
Don’t try all five at once. Pick the one where you’re weakest right now.
If your team isn’t who you wish it was — start with #1.
If your last hire underdelivered — start with #2.
If a top performer is poisoning the team — start with #3.
If your interviews don’t predict performance — start with #4.
If new hires quit in 90 days — start with #5.
Fix one this week. Then the next. In six months, you’ll have a different team.
Your team is your legacy.
Not your revenue. Not your product. The people you built around you — and who they became because of how you led.
Build it on purpose.

Leave a Reply