Learn how to work as a contractor.

•

•

Contracting Is Two Jobs

People will tell you that learning how to work as a contractor is all about building a “personal brand,” optimizing your LinkedIn presence, or mastering the art of the high-stakes negotiation. It’s a lot of noise designed to make a relatively straightforward transition feel like you’re joining a cult of lifestyle gurus. In my experience, most of that advice is just expensive fluff that doesn’t help when you’re staring at a contract that accidentally commits you to 60-hour weeks without a clear definition of “done.” I didn’t learn the real mechanics of this life by reading productivity blogs; I learned them by watching my previous clients’ infrastructure crumble and realizing that being a contractor is less about being a “consultant” and more about being the person who actually knows where the bodies are buried in the codebase.

I’m not going to give you a roadmap to becoming a digital nomad or a master of passive income. Instead, I want to talk about the unsexy realities: how to vet a client so you don’t end up on call every weekend, how to price your time without leaving money on the table, and how to manage your own technical debt when you don’t have a dedicated QA team. This is a collection of notes based on what actually worked when I was in the trenches, intended to help you avoid the mistakes I’ve already paid for.

Table of Contents

The Freelance Business Setup That Actually Survives Reality

The Freelance Business Setup That Actually Survives Reality

When I first went solo, I thought my job was just writing code and occasionally attending Zoom calls. I was wrong. I spent most of my first six months treating my business like a hobby, which is a great way to end up in a legal or financial hole you can’t climb out of. A real freelance business setup isn’t about having a fancy website; it’s about building a boring, reliable machine that handles the stuff you don’t want to do. You need a separate bank account, a way to track every single receipt, and a clear understanding of your contractor tax obligations before the government starts asking questions.

I also learned the hard way that “technical skills” only get you through the door. Once you’re in, the real work is managing client relationships so they don’t treat you like an infinite resource. I used to say “yes” to every scope creep because I wanted to be helpful, but that’s how you end up working eighty-hour weeks for a fixed rate that doesn’t cover your overhead. I started writing everything down—not just the code, but the agreed-upon boundaries of the work. It feels pedantic until a project starts drifting, and then you’ll be very glad you have a paper trail to point to.

Finding High Paying Contracts Before the Burnout Hits

Finding High Paying Contracts Before the Burnout Hits

The biggest mistake I see people make when they first jump into the deep end is chasing the wrong kind of money. There is a massive difference between a high hourly rate and a high-value contract. I spent a few months early on taking every mid-tier gig that came my way through generic job boards, thinking I was winning because the bank account was growing. In reality, I was just drowning in self-employment administrative tasks and constant context switching. You end up working twice as hard for a net profit that barely beats a steady salary once you factor in the overhead.

To actually succeed at finding high-paying contracts, you have to stop acting like a pair of hands for hire and start acting like a specialized consultant. This means moving away from the “I can do React or Go” generalist approach and leaning into the specific, painful problems that companies are willing to pay a premium to solve—like scaling a database under heavy load or fixing a broken CI/CD pipeline. It’s about managing client relationships so that they see you as the person who prevents the 2 AM outage, rather than just another developer they can swap out next month. If you position yourself as the person who understands the business risk, the rate becomes a secondary conversation.

The Survival Kit: Five Things They Don't Tell You in the Job Descriptions

  • Build a “Runbook for Yourself.” When you’re a contractor, you aren’t just the engineer; you’re the DevOps, the HR, and the support desk. I keep a private doc of every weird setup step, every specific way a client wants their PRs formatted, and every “don’t touch this legacy service” warning. It saves me from looking like a junior the second I start a new gig.
  • Treat your tax money like it never existed. I learned this the hard way during a stint at a logistics startup. When a large invoice hits your account, it’s not “your” money; it’s a temporary loan from the government. Move the tax portion into a separate account immediately. If you don’t, you’ll be eating ramen for six months when the tax bill arrives.
  • Don’t become the “Hero of the Incident.” It feels good to be the one who stays up until 4 AM fixing a production outage, but in the contracting world, that’s a trap. If you’re the only person who knows how to fix the system, you’ll never be able to take a vacation without being paged. Aim to build systems—and documentation—that make you unnecessary.
  • Vet the engineering culture, not just the tech stack. I don’t care if they use Rust, Go, or some obscure legacy Java framework. What I care about is: Do they have a deployment pipeline? Do they have automated tests? If you join a contract where “deploying to production” means a manual FTP upload and a prayer, you are going to be the one blamed when it breaks.
  • Always have a “Next Gig” buffer. The biggest mistake I see is engineers spending every cent of a high-paying contract. The market is cyclical. I try to keep at least three months of living expenses in a boring savings account that I never touch. It gives me the leverage to say “no” to a bad contract, which is the only way to keep your sanity in the long run.

The Hard Truths I Wish I’d Written Down Sooner

Your rate isn’t just for your time; it’s for the years of production incidents you’ve survived. If you aren’t charging enough to cover the gaps between contracts and your own private health insurance, you aren’t a business owner, you’re just an underpaid employee without a safety net.

Treat your documentation as a non-negotiable part of your contract. When you’re working solo, the “knowledge silo” isn’t just a technical debt issue—it’s a personal liability that ensures you’ll be the only person capable of fixing a broken deployment at midnight.

Guard your “deep work” hours like they’re mission-critical infrastructure. The biggest trap in contracting is saying yes to every “quick sync” or trivial request, only to realize you’ve spent forty hours a week on meetings and zero hours actually writing the code that pays your mortgage.

The Long Ride Ahead

The Long Ride Ahead for specialized contractors.

At the end of the day, contracting isn’t about finding the flashiest tech stack or the most prestigious brand name to put on your CV. It’s about building a boring, reliable machine that handles your business side so you can focus on the actual engineering. You need the right legal setup to protect your time, a pipeline of work that doesn’t leave you staring at an empty calendar, and the discipline to document your own processes before you forget them. If you get the fundamentals right—the tax buffer, the contract terms, and the rate that actually covers your overhead—you stop being a freelancer chasing gigs and start being a specialized service provider who happens to own their own time.

It’s going to be harder than a standard 9-to-5, and there will be nights when a production incident hits and you realize there is no senior architect coming to save you. But there is a specific kind of clarity that comes from being entirely responsible for your own outcomes. When you stop building someone else’s dream and start engineering your own life, the trade-offs become much clearer. Don’t aim for perfection; just aim for a system that is resilient enough to survive the inevitable chaos of the real world. Get your setup right, keep your notes updated, and enjoy the ride.

Frequently Asked Questions

How do I actually handle the tax side of things without spending my entire weekend staring at spreadsheets?

Don’t try to be an accountant; you’re an engineer. The moment you start tracking expenses in a custom spreadsheet, you’ve already lost. I learned this the hard way after a messy tax season left me staring at receipts like they were undecipherable logs. Get a dedicated business account and a tool that automates the boring stuff—something that hooks directly into your bank. If it isn’t automated, it’s just technical debt you’ll pay for later.

At what point do I stop taking every contract that comes my way and start being picky about the tech stack?

The moment you stop being desperate for the next invoice is the moment you start being picky. If you’re still taking every job just to keep the lights on, you aren’t a consultant; you’re a glorified freelancer. Once you have a six-month runway, start filtering for the tech stacks that won’t make you want to throw your laptop into a river. I’d rather take one high-quality Go or Rust contract than three legacy PHP jobs that keep me awake at night.

How much of a buffer should I really keep in my savings before I feel safe enough to quit a stable full-time job?

Forget the “six months of expenses” rule you see in finance blogs. That’s for people with predictable lives. When you’re contracting, your income is a series of spikes and valleys, and the gaps between contracts can be longer than you think. I personally don’t move until I have twelve months of runway sitting in a boring, high-yield account. It’s not about being rich; it’s about making sure a three-month dry spell doesn’t turn into a panic.

How do I manage the isolation of working solo without losing my edge or my mind?

The silence of a home office can get heavy, and it’s easy to let your skills rust when no one is there to challenge your design choices. I’ve found that joining a tight-knit technical community or even just a local meetup isn’t about networking; it’s about sanity. More importantly, I schedule “peer review” sessions with other contractors. You need someone to poke holes in your logic, or you’ll start convincing yourself your bad code is actually clever.

Tomasz Wierzbicki

About Tomasz Wierzbicki

I am not interested in arguing about frameworks. I am interested in why the thing broke at two in the morning and what would have prevented it. Most of what I know came from being wrong in production and writing it down afterwards.