Quick answer
Vetting a freelance developer comes down to four checks: live, working proof (not screenshots or Figma); a written scope with milestones before any money changes hands; clear, tested communication expectations; and payment terms agreed in writing. A candidate who resists any of these is telling you something.
Demand live proof, not a portfolio deck
A screenshot or a case-study PDF proves nothing about whether a product actually works. Ask for live URLs you can open and click through yourself — test the actual flow, not a curated demo video. If a "portfolio" is all static images, that is a signal to ask more questions, not necessarily a dealbreaker, but worth probing.
For any product-heavy candidate, ask what they personally built versus what a team built around them. On a team project, ask specifically which layer (frontend, API, database, deploy) was theirs.
Get a written scope before paying anything
A written scope should state what is included, what is explicitly out of scope, what "done" looks like, and how revisions are handled. This protects both sides — it is not a sign of distrust to ask for one, and a serious freelancer will have this as standard practice already.
Watch for vague scopes like "build me an app like X" with no written detail. That is a recipe for disputes the moment reality diverges from assumptions on either side.
Test communication before you commit to a long engagement
Before signing anything substantial, send a few real questions and see how the candidate responds — clarity, specificity, and response time all matter more here than politeness. Ask directly: what hours do you work, what is your typical response time on active projects, and what happens if a milestone slips?
- Response time and stated working hours
- Clarity and specificity of answers (not vague reassurance)
- Willingness to say "that is out of scope" rather than agreeing to everything
- How they handle a hypothetical missed deadline
Put payment terms in writing
Milestone-based payments tied to deliverables protect you from paying everything upfront for work that never ships, and protect the developer from doing all the work before seeing any payment. Agree on currency, payment method, and milestone amounts before work starts — not after the first invoice is already due.
Common mistakes
Hiring based on a polished portfolio site alone without opening any live product. Starting work on a verbal agreement with no written scope. Paying 100% upfront or 100% on completion instead of milestone-based payments. Ignoring vague or slow responses during the vetting conversation as a preview of what working together will be like.
Decision checklist
- Live product URLs requested and personally tested
- Candidate’s specific role on any team project clarified
- Written scope with milestones and revision policy obtained
- Communication tested with real questions before committing
- Payment terms (currency, method, milestones) agreed in writing
FAQ
What is the single most important thing to check?
Live, working proof you can test yourself. Screenshots and case-study decks do not tell you whether a product actually functions.
Should I ever pay 100% upfront?
Generally no — milestone-based payments tied to deliverables protect both sides better than paying everything before any work is verified.
How do I test communication before hiring?
Send specific, real questions during the vetting conversation and evaluate clarity, specificity, and response time — not just friendliness.
What should a written scope include?
What is included, what is explicitly out of scope, what "done" looks like per milestone, and how revisions are handled.
Related guides
Related services
Want a clear Next.js / full-stack quote?
For US, UK, and Australia founders — see packages & pricing, Hire full-stack / freelance full-stack developer, or start a project brief.
Related: Hire full-stack / freelance full-stack developer · Services & pricing · FAQ · all resources