Need More Backend Capacity but Cannot Add Headcount?
A freeze blocks permanent seats. It does not always block the work. The useful move is to name whether you have a capacity problem, a skill problem or an ownership problem, then buy the matching shape of help.
A hiring freeze is a budget instruction, not a physics law. The backlog does not freeze. The on-call rota does not freeze. The migration you promised in Q2 does not freeze. What froze is the ability to add another employee.
Companies still ship through freezes. They do it by cutting scope, moving people, or buying a vendor. The last option is where engineering managers get sold a story that an external senior will absorb organisational dysfunction. They will not. They can add senior backend capacity on a B2B basis if the constraint is actually senior hours and judgement, and if someone internal still owns the result.
Name the problem before you buy a solution
Capacity problem
There is more well-defined backend work than the team can finish. The work is not mysterious. You are short hands, or short calendar time before a date. Mid-level execution might be the gap. A senior contractor used as a ticket factory is usually a poor use of the rate. Reprioritisation is the first lever; extra senior days are the second.
Skill problem
The team can ship features and still not have done a zero-downtime migration on a large table, or designed a consumer that is actually retry-safe. That is not “we need more people.” That is “we need a person who has done this class of thing, present often enough to set the pattern.” A fractional backend engineer is often the shape, not a five-day-week body shop.
Ownership problem
Nobody owns the data model. Every decision waits for the CTO. A freeze does not create that queue; it makes it obvious. An external engineer can take a slice of ownership for a period. If nobody internal will take it back, you have rented a bottleneck.
Temporary backlog versus permanent understaffing
A spike — a compliance deadline, a performance fire, covering a resignation — is a contractor-shaped pulse. A team that has been “one senior short” for three years is a hiring-shaped problem that a freeze is postponing. Using a contractor indefinitely to avoid the political fight is how you pay a premium for a permanent role. That is the contractor versus another permanent hire distinction, freeze or not.
Migration project
Modernising a PHP platform or extracting a worker to Go is a programme with a sequence, not a standing seat. Freezes often still allow project budget even when they block FTE. That is a procurement quirk, not a moral victory. Use it if the work is real. Do not invent a “project” to smuggle in a headcount.
Incident and reliability work
If the freeze arrived while you are still having the same outage twice a month, the first move is still diagnosis and a small number of permanent fixes, not a contractor to “help with DevOps.” A senior who has seen the failure mode can compress that diagnosis. They cannot be your SRE organisation for a quarter if you do not have one.
Options that actually exist
Reprioritisation. Kill or delay work that is not the constraint. This is the option nobody wants and the one that preserves the most money. A freeze that still tries to ship the entire roadmap is a freeze in name only.
Internal transfer. Move a senior from a quieter squad. Politically hard. Often faster than any vendor.
Contractor, fuller week. Bounded programme, real repo, written stop date or review date. Fits a pulse.
Fractional contractor. Two or three days, same person, same days, for a judgement bottleneck. Fits a skill or architecture queue.
Agency. Multidisciplinary delivery you do not have internally. Overhead if you already have a team. Sometimes the only way to staff a parallel product surface during a freeze.
Delay. Say the date moved. Honest. Rare.
What an external engineer will not fix
- An unclear product roadmap
- A team that cannot review PRs because everyone is in meetings
- Access that takes three weeks
- A CTO who will not delegate architecture
- A freeze that is actually a signal the company should not be starting new programmes
If those are the constraints, buying days is anaesthesia.
Matching the buying shape to the work
Finance often allows a vendor line when it will not allow an FTE. That is useful only if the work is actually a service: a named outcome, a review date, a stop condition. A contractor who sits in standups indefinitely on the same domain is a headcount by another name, and a freeze-era auditor will eventually notice.
Use a fuller week when the pulse is execution: a migration sequence, a reliability programme, covering a resignation through the next release. Use a fractional cadence when the bottleneck is judgement: architecture queue, review, a pattern the team has not set yet. Use an agency when you are missing a multidisciplinary delivery organisation, not when you already have a product team and need one senior backend engineer.
Do not invent a “project” to smuggle in a permanent role. If you already know the seat is permanent, say so, keep the hiring case open, and treat the contractor as a dated bridge. The contractor versus another permanent hire distinction does not disappear because headcount is frozen.
Migration work during a freeze is a common legitimate exception: the platform is blocking the roadmap, the spend is project-shaped, and there is a first production slice you can name. Incident work is legitimate when you are still having the same outage twice a month and need compressed diagnosis. It is not legitimate as “help with DevOps” with no owner and no metric.
Delay is still an option. A freeze that tries to ship the entire original roadmap is a freeze in name only. Cutting scope preserves more money than buying days to pretend the constraint is gone.
Write down the constraint in one sentence before you talk to a vendor: capacity, skill, ownership, or a named programme. If you cannot, you are not buying backend help. You are buying the feeling that something is being done.
How to keep it from becoming shadow headcount
Write the end condition before anyone starts: “this engagement ends when the worker is in production and the runbook exists,” or “this engagement is reviewed every six weeks against decision latency.” Attach a short paid engineering pilot so the freeze-era vendor is evaluated like an engineer, not like a favourite supplier.
Finance will ask why a vendor is allowed when a hire is not. The truthful answer is that you are buying a stoppable service for a named outcome, not a person on the org chart. If you cannot name the outcome, you are not ready to buy.
If the freeze has left you short of senior PHP or Go capacity and the work is real, that is the case for a B2B engagement rather than a silent delay: €300/day, up to five days per week, CET/CEST overlap, ten paid days on the actual backlog before anyone talks about a quarter. The terms sit on the senior backend contractor page. If the freeze is covering a role you already know is permanent, keep the hiring case open and use the contractor as a bridge with a date on it — not as a substitute for the decision.