myibrahim.cloud

Personal Branding · Career & Money

Freelancing as a backend engineer — the real playbook

How to find clients, what to charge, what to refuse, and how to avoid the loneliness trap.

There are a lot of freelancing guides on the internet. Most are written by marketers selling courses, not by engineers actually doing the work. This is the playbook from inside, after five years of solo + small-team contracting on backend systems.

I'll cover the parts that aren't obvious: finding clients you actually want, pricing without flinching, the contracts that protect you, and the loneliness problem nobody talks about.

The first decision: contractor or freelancer?#

These words get used interchangeably. They're not the same shape:

  • Contractor — billed by day or month, embedded with one team, treated as a long-term resource. Often 3–12 month engagements. Stability, less sales overhead.
  • Freelancer — project-based, multiple clients, sells outcomes (sometimes day rate, often fixed). More variety, more sales work.

Most people find one shape suits them. I'm 70/30 contractor: I prefer 3–6 month engagements with one or two simultaneous clients. Some friends are pure freelancers churning through 10+ small projects a year. Both work; pick one.

Where the clients actually come from#

The honest distribution after five years of tracking:

My client sources, last 5 years (%)
  • Network58
  • Repeat22
  • Inbound12
  • Cold5
  • Marketplaces3
  • Network (58%) — direct connections, friends-of-friends, ex-coworkers
  • Repeat (22%) — past clients hiring again or referring
  • Inbound (12%) — saw something I posted, reached out
  • Cold outbound (5%) — me reaching out to specific companies
  • Marketplaces (3%) — Toptal, Upwork, etc.

The implications:

  1. Most freelancing income is from people you already know. Not from cold sales. So invest in the network you have before you need it.
  2. Marketplaces are a starter wheel, not a long-term plan. Decent for your first few clients; rates get crushed once you're established and selling on rate vs reputation.
  3. Inbound takes 1–2 years to compound. This is the LinkedIn / blog-writing flywheel. Don't expect immediate ROI.

Specifically what to do with your network#

  • Tell people you're available. Once. Don't be a pest, but don't be a secret either.
  • Send a quarterly "what I've been working on" email to your network. One paragraph, no ask. Opt-in to your update.
  • When a client engagement ends well, ask — sincerely — if they know anyone else who could use the same work.

The single highest-ROI thing I've ever done was send a "hey, I'm available for the next 3 months, here's what I'm good at" message to ~20 people in my network. Two of them needed work; one became a 9-month engagement.

How to set rates (without flinching)#

Engineers chronically undercharge. The number you should charge isn't "what feels comfortable" — it's "what the market will pay for the value you deliver."

A simple formula I use:

day_rate ≈ (target_annual_take_home × 1.5) / 200_billable_days

The 1.5× covers taxes (~25%), unbilled time (~15%), and tools/accountant/insurance (~10%). The 200 billable days is realistic — 365 minus weekends, holidays, vacation, sick days, and sales/admin time.

Worked example. Want $200k take-home in your geo?

day_rate = (200_000 × 1.5) / 200 = $1,500/day

That's the floor. Most senior backend contractors I know charge $1,000–$2,500/day in 2026. If you're below this and good at what you do, raise your rate.

Negotiation rule#

Quote the rate. Don't qualify it. Don't offer discounts unprompted. If they say "that's high," they're either testing you or genuinely can't afford you. Either way, your move is the same: "I understand. My rate is the rate. I can recommend someone who might fit your budget."

The third of clients who walk are clients you wouldn't have enjoyed working with. The two-thirds who pay it become long-term partners.

Picking the right gigs#

Not every paying client is worth taking. Filter aggressively at the top of the funnel — replacing a client mid-engagement is far more painful than passing on one.

Red flags I refuse:

  • "We need this in two weeks but the spec isn't done yet." Doomed.
  • "We've gone through three other contractors." Their problem isn't contractor-shaped.
  • "We're building the next [Big Company] but on a budget." Mismatch between expectations and resources.
  • Anyone who haggles your rate before you've talked through the problem. They'll haggle every invoice.
  • Anything you'd be embarrassed to put on your CV.

Green flags I chase:

  • They have a specific, scoped problem ("we need to migrate from X to Y")
  • They've tried internal solutions and learned why those didn't work
  • The contact is technical or works closely with engineers
  • They describe success in measurable terms

The single most predictive question I ask: "What does success look like in 90 days?" If they have a clean answer, the project is probably tractable. If they wave their hands, run.

The contract#

Don't work without one. Don't accept the client's contract verbatim. Common gotchas:

  • IP ownership. Default in most jurisdictions is the contractor owns the work until a transfer is signed. Most clients want a "work-for-hire" clause. That's fine; just make sure it's only for the work you're paid for, not anything you build adjacent to it.
  • Non-compete. Refuse blanket non-competes. "You can't work in this industry for two years" is laughable. "You can't work for these specific named competitors during the engagement" is reasonable.
  • Termination clause. Either side should be able to terminate with notice (typically 14–30 days). Without this, you're stuck.
  • Late payment. Net 30 is reasonable. Net 60+ is a power play. Charge a late fee (1.5%/month) — most jurisdictions will enforce it.
  • Right to refuse. "Mohammed will reasonably engage on the agreed work but reserves the right to refuse out-of-scope work." Add this clause.

A lawyer once. $500–$1,500 once. Re-use the same template for every client.

The invoicing rhythm#

Invoice on a schedule. The shape that works:

  • Bi-weekly invoicing. Long enough to batch, short enough that no client owes you 6 weeks of work.
  • Net 14 or Net 30 terms. Anything longer is unjustified for solo work.
  • Late payment policy stated up front. "Invoices over 14 days late accrue 1.5% interest per month."
  • Stop work if invoices go past 30 days. This is non-negotiable. If a client can't pay you in 30 days, they have a cash problem, not a payment problem, and you're about to be the last person paid.

Tools: I use Stripe Invoicing for most clients. Cheap (0.4%), automatic reminders, embedded payment. Wave is a free alternative for low volume.

The loneliness problem#

This is the part nobody puts in the freelancing courses, and it's the most common reason engineers go back to full-time roles.

Working alone means:

  • No one in the next office to bounce ideas off
  • No team energy on a hard week
  • No casual learning by osmosis
  • Pep talks from yourself only
  • Wins celebrated alone

Mitigations that work:

  • Co-working space. Even one day a week. Different brains in your peripheral vision matters more than you think.
  • A peer group of other contractors. A Slack of 5–10 trusted contractor friends, swapping rates and reviewing each other's contracts. Worth its weight.
  • One ongoing client where you're embedded. Even if it's only 2 days a week — being on Slack with a real team gives you a baseline of social context.
  • Write publicly. It externalizes thoughts. The audience replaces some of the team-level conversation, even if asymmetrically.

The engineers I know who freelance happily long-term all have some version of this. The ones who burned out and went back full-time mostly didn't.

What I'd do differently#

Honest list of what I'd tell my younger freelancing self:

  1. Charge double on day one. I undercharged for the first ~18 months. The work is the same; only the conversation is harder.
  2. Don't take the first client just because they offered. I took two early clients I shouldn't have, both ended badly, and one cost me two months of work I had to redo.
  3. Build distribution from day one. Even a tiny LinkedIn cadence pays back compounded after a year.
  4. Have a "no" template. Most rejection emails are 3 sentences. Write them once, paste them forever.
  5. Don't go fully solo if you're a junior. You need feedback loops more than you need flexibility. Wait until you're senior.

Closing#

Freelancing is a real career path, not a gap year between jobs. The engineers who do it well treat it like a small business — because it is one. The ones who treat it like "a job but with more freedom" mostly burn out within 18 months.

If you do go for it: send the first email this week. The first client is the hardest; everything after compounds. `.trim(), };

  • freelance
  • career
  • money
  • business
Want to learn this properly? I train engineers and teams in exactly this, one-to-one or in groups.