Writing
How to hire a senior PHP developer (without getting burned)
If you're reading this, you probably have a PHP application that's important to your business and you're thinking about bringing in outside help, either for a one-time project or for ongoing maintenance.
Hiring well at the senior contractor level is its own skill. Here's the checklist I'd want a non-technical founder to use when evaluating someone like me.
Step 1: Know what kind of help you actually need
There are roughly three:
- Project work. A defined deliverable: an integration, a rewrite, a migration. You want a fixed scope, a fixed price (after some discovery), and a clear handoff at the end.
- Ongoing help. A monthly retainer for the long tail: small features, bug fixes, the occasional production issue. You want predictability and someone who's already in the codebase.
- A block of time. Senior hours you can spend over a few months as needs come up. You want flexibility without re-negotiating every two weeks.
If a freelancer can only sell you one of these, that's information.
Step 2: Look for a portfolio of relationships, not projects
Anyone can list five "projects" on a portfolio page. The harder thing to fake is a list of clients who have kept paying that person for two, three, five years.
When you talk to a candidate, ask:
- "Who's your longest-running client and what do you do for them?"
- "Tell me about a time you walked into a codebase you'd never seen and shipped something in the first week."
- "What's a project you turned down? Why?"
The third one matters most. Senior freelancers say no.
Step 3: Get a paid trial, not a free one
If you're considering a multi-month engagement, run a small paid trial first. Two to four hours, scoped tightly: read this code, write a small fix, write a one-page review of what you found.
Pay for it. You learn three things in a paid trial that you can never learn from an unpaid one:
- How they communicate when their professional reputation is on the line.
- What their commit messages and PR descriptions look like.
- How they ask questions: the good ones ask a lot, fast, and early.
A senior dev who won't take a paid trial is signaling something.
Step 4: Beware the agency middle layer
Some "senior PHP freelancers" are actually a sales person who sells you on a senior, then quietly hands the work to a junior. This is the single biggest source of bad freelance experiences I hear about.
The check is simple: ask who specifically will be writing the code. Get it in writing. If the answer changes mid-project, that's your sign.
Step 5: Watch how they handle the unknown
Halfway through your trial or first project, ask them about something that isn't in the spec, a weird edge case, a "what would you do if X" question.
You're looking for one of two answers:
- "Here's what I'd do, here's why, and here's what I'd want to confirm with you first." (Good.)
- A confident, immediate answer that ignores the ambiguity. (Bad.)
Senior contractors live in the gap between "what was specified" and "what the business actually needs." If they can't navigate that gap with you in real time, they won't navigate it well in production either.
Step 6: Decide on the boring stuff up front
Before signing anything, agree in writing on:
- Hourly or fixed rate, and what triggers a re-quote
- Who owns the code (you should, period)
- How communication happens (email, Slack, GitHub issues, pick one)
- What "done" means for each piece of work
- How either side ends the engagement cleanly
Most freelance disasters trace back to one of these being assumed instead of written down.
If you're at the stage of having this conversation, you're already ahead of most people. The biggest mistake isn't picking the "wrong" senior dev, it's not running the process at all and ending up with whoever your cousin recommended.
If you'd like to put me through this checklist, book a 20-minute call. I won't be offended by the questions.
Need a senior PHP developer in your corner?
Five Devs is me, Chris. Twenty minutes, no pitch deck.