
The biggest red flags when hiring a freelance developer are: no public code (no GitHub, no portfolio repo, no live URL you can poke at), vague timelines without weekly milestones, refusing a paid trial week, lowballing after seeing your budget, and saying "I'll rebuild it in React" before they understand the problem. If you see two of these in the first conversation, walk. The cost of a bad freelancer is not the cash you paid them, it's the six weeks of runway they burn.
Most founders hire freelancers the wrong way. You post on Upwork, you get 40 proposals in two hours, you pick the one with the friendliest profile photo and a $35/hour rate, and six weeks later you have a half-finished Next.js project on a laptop you can't access. The pattern is so common it has a name in YC circles: "the freelancer divot."
This guide is the checklist we use, refined across hundreds of founder bookings, to spot a bad freelancer before you wire the deposit.
We sorted these by frequency, not severity. The top five show up in roughly 60% of failed engagements we've audited. The bottom five are rarer but catastrophic when they hit.
A working developer in 2026 has a GitHub with at least a few real commits in the last 12 months. Not a fork of someone else's tutorial. Not three repos created the day after you asked. Real commits, with messages that make sense, on projects with README files.
If they say "all my work is under NDA," ask for a sanitized snippet, a redacted Loom of them coding, or a reference who will actually pick up the phone. Real engineers can always show something. The ones who can't are usually project managers who outsource to a friend in another timezone.
"I can probably do it in 4 to 6 weeks" is not a timeline. It's a hedge. A real freelancer breaks your scope into week-sized deliverables: "Week 1, auth and database schema. Week 2, the dashboard. Week 3, Stripe integration and webhooks." If they can't do that on a 30-minute call, they don't actually know how long it will take, which means they don't know how to build it.
You ask for a fix to your existing Rails app. They reply with "honestly, I'd just rewrite it in Next.js, it'll be faster long-term." This is the single most expensive sentence in freelance development. Rewrites take 4x as long as advertised, ship with new bugs, and conveniently lock you into needing the same freelancer forever.
The right answer is "let me look at the current code first." If they want to rewrite before they've read your repo, they're solving for their resume, not your business.
Ask: "Can you record a 5-minute Loom walking through one of your recent projects?" A real engineer will say yes immediately. A fraud will hedge: too busy, NDA, prefers live calls. The Loom is the cheapest fraud filter you have. People who can't talk through their own code usually didn't write it.
You mention you have $8,000 for the MVP. They reply with a $7,800 quote. A week later you mention the real number is $12,000. The quote magically becomes $11,500. This pattern means they have no anchor on what the work actually costs, which means the work will expand to whatever you'll pay, with no relationship to value delivered.
Good freelancers quote off the scope, not the budget. If their number moves when your budget moves, they're not pricing the work.
Every serious freelancer we've worked with will accept a one-week paid trial. They build something small, you evaluate, you decide whether to continue. If someone refuses a 5-day paid trial in favor of "let's just sign the 12-week contract upfront," they know their work won't survive a week of scrutiny. This is the single highest-signal filter in the playbook.
The first 20 minutes of a good intake call are the freelancer asking you questions: who's the user, what's the conversion goal, what's already built, what's the deployment story, what happens on the second Monday if it breaks at 3am. If they spend the call telling you about their stack instead of asking about your problem, they're a contractor, not a partner.
Ask: "Are you comfortable with me watching you work for an hour on day one?" Pair programming reveals everything. Are they fluent in their tools? Do they actually use Cursor or Claude Code, or do they Stack Overflow every third line? Do they read errors carefully or just paste-and-pray? An hour of pair programming on day one of a paid trial is worth more than three weeks of code review.
First call: "$60/hour." Follow-up email: "$75/hour, plus a $1,500 setup fee." Contract: "$80/hour with a 20-hour weekly minimum." This is the developer-version of a used-car bait-and-switch. Prices going up between conversations means you're being negotiated against. Walk.
The opposite tell is also bad: rates going down. A freelancer who drops from $80 to $40 in one conversation is desperate, which usually correlates with low quality or no current clients.
"What's in your daily toolchain?" should produce a confident, specific answer: "Cursor, Claude Code for refactors, GitHub Copilot for boilerplate, Linear for tickets, Vercel for previews, Postgres on Supabase." If they hesitate or say "I use whatever the project needs," they're either lying or three years behind. Every working engineer in 2026 has opinions about their tools. AI tooling fluency, in particular, separates the engineers shipping 3x faster from the ones still typing every line.
Ask for two references. They should be paying clients from the last 18 months, not their cousin or a college roommate. Call the references. Ask three questions: did they ship what they promised, did they hit the timeline, would you hire them again. If the answers are mushy ("oh, things got complicated"), trust the mush.
Hourly billing is the freelancer's friend and the founder's enemy on small scopes. A 3-week MVP with an estimated 80 hours becomes 140 hours, every time. For tightly scoped work, push for weekly or milestone-based billing so the incentive aligns with shipping, not lingering.
The opposite is true at scale: for a 6-month engagement, hourly with a weekly cap is often fairer to both sides. The red flag is the freelancer who insists on the wrong model for your project size.
You send a follow-up. Three days, no reply. They surface with an apology. You send the contract. Two days, no reply. This is what working with them will feel like for the next 3 months. Communication latency is the strongest predictor of project success we've ever measured. Engineers who reply within the same business day during sales reply within the same business day during the project. The reverse is also true.
There's no universally right answer. Here's how the four common paths actually compare on the dimensions founders care about.
| Path | Cost | Time to first commit | Reliability | Best for |
|---|---|---|---|---|
| Upwork / Fiverr | $20-80/hr | 1-3 weeks | Low (high variance) | Throwaway scripts, simple integrations |
| Premium marketplace (Toptal, Arc) | $80-150/hr | 2-4 weeks | Medium-high | Long-form projects with budget |
| Hire full-time | $120-200k/yr + equity | 60-90 days | High | Post-PMF, stable runway |
| Cadence (book weekly) | $500-2,000/week | 48 hours | High (replace any week) | Validated MVP, urgent feature, fractional CTO |
Toptal wins on brand recognition and a deep senior pool. Upwork wins on price floor and language variety. Full-time hires win on long-term ownership. Cadence wins when you need a vetted engineer this week, with weekly billing instead of a 60-day hiring loop and a 90-day notice period.
We built the booking model because we kept watching founders burn money on the patterns above. Every engineer on Cadence is AI-native by default, vetted on Cursor, Claude Code, and Copilot fluency through a founder-led voice interview before they unlock bookings. There's no opt-in tier; it's the floor.
Our pricing is fixed: junior $500/week, mid $1,000/week, senior $1,500/week, lead $2,000/week. No "let me revise the quote." No hourly minimums. The 48-hour free trial is the structural equivalent of the paid-trial-week filter (red flag #6): if the fit is wrong, you walk before any money changes hands. Daily ratings drive auto-replacement, so a slow week triggers a swap, not a 30-day uncomfortable conversation.
If you're still in the "do I even need a developer" phase, our guide on how to find a technical advisor for your startup walks through the cheaper preliminary step.
If you're mid-hire and worried you've hit one of these flags, here's the action sequence.
If you're earlier than that, before you've even shortlisted, the related guide on how to choose a CMS for your startup site covers the parallel set of questions for non-engineering tooling decisions. And if scope keeps growing on you, how to handle scope creep as a founder is the companion piece.
A reasonable next step if you'd rather skip the screening entirely: book a mid engineer on Cadence, use the 48-hour free trial, and let the structural filters above (paid trial, weekly billing, daily ratings) do the work that this checklist normally does.
A few patterns we see founders fall into even when they know the red flags.
If you've already been burned once and want a structurally safer second attempt, Cadence runs the screening for you and replaces the engineer any week if the daily ratings dip. The 48-hour trial means you can find out for free.
Ask for a 5-minute Loom walkthrough of a recent project. You don't need to follow the code, you need to watch their fluency: do they navigate the codebase confidently, do they explain trade-offs, do they sound like they wrote it. Then send the Loom to a technical friend or advisor for a 10-minute gut check. The combination of fluency-on-camera and a quick expert review catches roughly 90% of frauds.
Almost never. The only exception is a known referral from a founder you trust who has shipped real work with this person in the last 12 months. Even then, structure the first engagement as 2 weeks max, with a Friday checkpoint after week 1. The trial filter exists because it works.
For US-based senior engineers, expect $90 to $180 per hour. For Eastern European or Latin American seniors, $50 to $110. Below $30/hour for any market usually signals a junior, a bait-and-switch, or someone subcontracting to a third party. Above $200/hour you're typically paying for a specialist (security, ML, payments compliance). For most MVP work, the $60 to $120 range is the sweet spot, and weekly billing in the $1,000 to $1,500 range maps to roughly the same total cost with better incentive alignment.
A scoped MVP (auth, database, three CRUD screens, Stripe, one workflow) takes a working senior 3 to 5 weeks. Anything quoted under 2 weeks is either tiny or a lie. Anything over 8 weeks for a true MVP means the scope has crept into product territory. If you want a sanity check on your timeline, our companion piece on fractional CTO vs full-time CTO covers when to bring in senior judgment before you commit.
Hiring a freelancer puts the screening, contracting, and replacement risk on you. Booking on Cadence puts that risk on the platform: every engineer is pre-vetted (voice interview, AI-tooling fluency, recent shipped work), pricing is fixed at junior/mid/senior/lead tiers ($500/$1,000/$1,500/$2,000 per week), and the 48-hour free trial plus daily ratings give you a built-in exit if the fit is wrong. The trade-off is less direct control over who you pick; Cadence auto-matches against your spec rather than letting you scroll a feed of 40 proposals.