Back to Blog
CareerApr 12, 20237 min read

Freelancing as a Developer - What I Wish I Knew Earlier

Alright let's talk about freelancing, because the internet paints this picture of "work from the beach, be your own boss, make bank" and... it's not quite like that. Don't get me wrong, freelancing has been great for me. But nobody talks about the messy parts. The chasing payments, the scope creep, the clients who vanish. Here's everything I wish someone told me before I started.

Finding clients is brutal at first. I tried Upwork and Fiverr early on and honestly? The race to the bottom is real. You're competing against people charging $5/hour and clients can't always tell the difference until the project falls apart. What actually worked for me was way slower but way better - building stuff publicly. My portfolio, my projects, this blog. People find my work, see that I actually know what I'm doing, and reach out directly. No bidding wars, no competing on price. Better clients, better projects.

Pricing - oh man, this is where I really messed up early on. I used to charge hourly and kept my rate "competitive," which is a nice way of saying "way too low." Here's the problem with hourly billing that nobody mentions: it punishes you for being good. If I can build something in 10 hours that takes someone else 40, why should I make less money? I switched to project-based pricing and it changed everything. Now I price based on the value to the client, not the hours it takes me. Game changer.

Scope creep is the silent killer of freelance profits. "Hey can you also add..." are the five most dangerous words in this business. Every. Single. Project. has some version of this. My fix is boring but it works: write everything down in the proposal, be super specific about what's included, and tell the client upfront that anything extra is a separate quote. Some people don't like hearing that. Those are exactly the clients you want to filter out early.

Client turning a simple landing page into a full SaaS product
Client turning a simple landing page into a full SaaS product

Here's something they don't teach you in any coding bootcamp: communication is literally half the job. Maybe more. I used to think writing great code was enough. Lol, nope. Clients don't care about your clean architecture. They care about knowing when their thing will be done, seeing progress regularly, and feeling like you get their vision. I send weekly updates with screenshots now, even when there's barely anything new. It builds trust and kills the "is this person even working?" paranoia.

Please learn from my mistake on this one: get paid upfront. At least partially. Early in my freelancing days, I finished a whole project, delivered everything, client seemed super happy, and then... nothing. Ghosted. Weeks of work, zero payment. Absolute gut punch. Now it's always 50% upfront, 50% on delivery. Non-negotiable. Some people do milestone payments for bigger stuff, which also works. The point is: never ever do all the work before you've seen some money.

Client ghosting after you deliver the entire project
Client ghosting after you deliver the entire project

Get a contract. Even for small projects. Even for your friend's startup. I used to do handshake deals because the client "seemed nice" and got burned more than once. Now every project gets a simple agreement - what I'm building, when it'll be done, how much it costs, when I get paid, who owns the code, and how many revision rounds are included. It doesn't need to be a 20-page lawyer document. A clear email both sides agree on works fine.

And honestly? Learn to say no. Not every project is worth your time. Red flags I've learned to spot: clients who haggle on price before even explaining the project, clients who need it "ASAP" but have no idea what they actually want, and my personal favorite - clients who had "problems with their last three developers." If three devs couldn't make it work, the problem probably isn't the developers. Your time is your most valuable thing. Protect it.