Engineering

What I wish I'd known before freelancing from Nepal

The hardest part of freelancing from Nepal wasn't writing code - it was scoping, pricing, and getting paid. Here's what I'd tell my younger self.

Rohan Gautam5 min read

I took my first freelance contract at 21, building a React website for a buyer I found on a forum. I was sure the job was the code. Six years later I know the code was the easy part - the work that actually decided whether I got paid happened before I opened my editor.

The code was never the hard part

I could build the thing. What I couldn't do, at first, was tell a client what "the thing" was, how long it would take, and what happened when they changed their mind halfway through. Those conversations felt like distractions from the real work. They were the real work.

A freelancer from Nepal competes in a global market but lives in a local one. Clients in San Francisco compared my rate to a US agency's; people back home compared it to a monthly salary. Both anchors were wrong for what I was actually selling, and it took me years to stop letting either one set my price.

Price the outcome, not the hour

For my first two years I charged by the hour. It punished me for getting faster: the better I got, the less a task earned. Worse, every estimate became a negotiation about my speed instead of the client's result.

The shift that changed my income was pricing a clear outcome at a fixed number.

Weak:  "$15/hour, roughly 40 hours."
Better: "A checkout flow that handles cards and wallets,
         tested on mobile, live in 3 weeks - $2,400."

The second framing sells a result the client can picture. It also protects me: if I finish in 25 hours because I've built ten checkouts before, that's my reward for the experience, not a discount I owe them.

Tip

Quote a deliverable and a date, not an hourly rate. You're selling the problem solved, not the minutes spent - and a fixed price rewards you for being good and fast.

Getting paid is part of the job

Nobody warned me that collecting money across borders is its own small project. Wire transfers cost real money and take days. A "$500" invoice can lose a chunk to fees and exchange spreads before it reaches a Nepali bank. The first time I saw the gap between invoiced and received, I felt robbed - I just hadn't priced the cost of getting paid.

MethodWhat bit me
Bank wireSlow, flat fees that crush small invoices
Payoneer / WiseBetter rates, but verify it works for your bank first
Crypto / "we'll figure it out"A promise, not a payment - avoid

The fix wasn't a clever tool. It was a rule: a deposit before I start, milestone payments on anything over a couple of weeks, and the payment method agreed in writing before the first line of code.

Warning

Never start real work on a "we'll sort out payment later." The leverage you have on day one - they need the work - quietly disappears once you've delivered it.

Scope lives in writing or it doesn't exist

Every painful project of my early career had the same root cause: a scope that lived in a chat thread and a shared assumption. "Just a small change" is the most expensive sentence in freelancing, and I said yes to it for free more times than I can count.

Now I write down what's included and, just as important, what isn't. When a request falls outside that line, it isn't a fight - it's a new, priced piece of work. Deciding what not to build is a discipline I lean on in code too; I wrote about a version of it in cutting LCP by deleting code, not adding it. The same instinct that keeps a bundle small keeps a contract sane: question every addition before you accept it.

That habit of asking "is this worth it?" extends to whole engagements. Saying no to the wrong project - the rushed rewrite, the client who haggles before signing - is the same muscle I used when we questioned a React Native rewrite. The cheapest project is the one you decline before it drains a month.

Frequently Asked Questions

How should a developer in Nepal set freelance rates?

Anchor to the value you deliver in the client's market, not your local cost of living. Research what the outcome is worth to them, quote a fixed price for a clear deliverable, and raise it as your portfolio grows.

What's the safest way to get paid from foreign clients?

Agree the method in writing before starting, take a deposit upfront, and use a low-fee service like Wise or Payoneer once you've confirmed it settles to your bank. Always price in the transfer fees and exchange spread.

How do I stop scope creep on fixed-price work?

Write down what's included and excluded before you start, and treat anything outside that list as separate, priced work - not a favor. A short written scope ends most disputes before they begin.

The lesson under all of these is the same: freelancing is running a small business that happens to ship code. The engineering got me in the door, but learning to scope, price, and get paid is what let me stay.

If you're building something ambitious and want a partner who sweats these details, get in touch.