Seven years ago I was a competitive programmer in Lahore, grinding Codeforces problems at 2am and treating a good contest rating like the only scoreboard that mattered. Since then the scoreboard changed a lot: ICPC World Finals, AR systems that ended up in front of the U.S. Fire Administration, CTO roles at US startups, my own studio with 40+ shipped products, and a couple of apps with real users.
I get asked "how do you get US clients from Pakistan?" almost every week, usually by other developers. The honest answer is that there was no single trick. But looking back, there were a handful of repeatable moves that actually moved my trajectory, and almost all of them are things any engineer can copy. This is the version I wish someone had handed me in 2019.
1. Enter through the door with no queue
My first real freelance niche was not web development. It was Unity game development, because in 2019 every freelancer on earth was a web developer and almost none of them could ship a game. Small pond, visible skill, fast wins. The same logic later pulled me into AR, and then into voice AI in its first year.
The pattern is simple: arrive where demand exists but supply has not caught up. As an engineer you are trained to optimize the thing in front of you, but the higher-leverage move is picking a different thing entirely. In 2026 that door is AI agents. The window is open, and like every window before it, it is already starting to close.
2. Credentials open doors, shipping keeps them open
ICPC World Finals never directly won me a contract. Not once. But it changed first conversations, because "national champion" survives a recruiter skimming your profile in four seconds. That is the entire job of a credential. After the door opens, only delivery matters.
So collect one or two undeniable markers, then stop collecting. I have watched talented people chase their fifth certification instead of shipping their first real project. The certification is a key, not a house.
3. Speed is a feature clients can feel
Every client relationship I have kept started the same way: an early deliverable that arrived embarrassingly fast. First impressions on speed anchor everything after. If the first thing you send lands two days early, the client quietly recalibrates what they expect from you for the rest of the engagement, and it works in your favor.
This is true before the contract too. On Upwork, being in the first handful of proposals decides outcomes far more than proposal eloquence does. I cared about that edge enough that I eventually built my own tool to catch matching jobs within minutes of posting. Speed is not just about typing fast. It is about removing the latency between "client has a need" and "you have responded."
4. Your timezone is a weapon, not an excuse
Lahore evenings are US mornings. I answer while US-based competitors sleep, ship overnight fixes that greet clients at breakfast, and take late calls that would be nobody's business hours. For years I thought the offset was the thing holding me back. Then I reframed it, and clients started listing it as a reason they hired me. "I go to sleep, you keep working, I wake up to progress" is a genuinely great pitch.
5. One niche, publicly owned
"Full-stack developer" is a commodity search result. "AI voice agents on Retell and GoHighLevel for US service businesses" is a person clients ask for by name. Niching down felt like closing doors. It opened much bigger ones. Most of my studio's inbound now comes from being known for one specific thing rather than being available for everything.
The fear here is real and I felt it: what if I pick the wrong niche? You probably will, at first. That is fine. A niche is a bet you can re-place. Being un-findable is the actual risk.
6. Turn every contract into an artifact
A finished project with no public trace is a wasted asset. One contract can become a case study, a portfolio card, a client review, and a technical write-up. Same work, four assets, and the assets keep working while you sleep.
My very first DEV article, about becoming a freelance game developer in Pakistan, still sends people to me years after I wrote it. That is the strange magic of writing things down. Code you ship gets buried in a private repo. A public write-up compounds. If you are an engineer who "doesn't write," this is the highest-ROI habit you are skipping.
7. Raise rates at the moment of demonstrated value
Never mid-project, always at the natural boundary right after a visible win. Every meaningful rate jump I have made followed a shipped milestone and was framed as scope maturity, not inflation. "Now that we know what this actually takes" lands very differently than "I've decided I'm worth more."
8. Fire the bottom of your client list
The 20% of clients who generate 80% of your stress also block the capacity for better ones. The scariest professional moves I have made were endings, and each one made room for something bigger within months. Better still, screen before you sign so you rarely have to fire. Reading a client carefully before taking the job has saved me more grief than any contract clause ever has.
9. The founder-type freelancer wins the CTO work
Clients do not hire fractional CTOs from a "CTO store." They promote the freelancer who already acts like an owner: raises risks early, says no with reasons, thinks past the literal ticket. Three companies eventually made me CTO, and none of those started as CTO engagements. They started as normal contracts where I behaved like I had equity in the outcome.
This is a mindset most engineers can adopt tomorrow. Stop asking only "what did you ask me to build" and start asking "what are you actually trying to achieve, and is this the right way to get there."
10. Build products in parallel, even tiny ones
LectureNotes AI (15M organic Instagram views, around 10k users), Lifemaxxing AI, VoiceDash, Upwork Scout. Beyond any revenue they generate, products are proof-of-agency. Client work pays you today. Products change what clients believe you are capable of, which changes what they pay you tomorrow.
You do not need a startup. You need one small thing that exists in the world with your name on it. A CLI tool, a Chrome extension, a niche SaaS. It reframes you from "person who does tasks" to "person who ships things."
11. Community is slow-release luck
Running the IEEE chapter at my university, mentoring, appearing on a local podcast, writing publicly. None of it had immediate ROI. All of it produced opportunities years later from directions I could not have predicted. You are planting flags in ground you will walk past again someday. Some of them grow.
12. The stack changes, the meta-skill does not
I have been paid for C++, Unity, .NET, React, AR headsets, and now LLM agents. Nothing I mastered in 2019 is my main income in 2026. If I had bet my identity on a single stack, I would have been obsolete twice over by now.
The durable skill is learning the next thing fast while shipping the current thing well. Which is, conveniently, the exact skill competitive programming drills into you: read an unfamiliar problem, build a working mental model quickly, ship a correct solution under pressure, repeat. The domains changed. The loop never did.
If there is one thing to take from this, it is that none of these are talents. They are choices, and most of them are available to you this week. Pick the niche. Ship the artifact. Answer faster than everyone else. Write the thing down.
I am still running this playbook, currently in the AI-agent space through my studio Null Studio. If you are an engineer thinking about going independent, I hope some of this saves you a year or two of guessing. It would have saved me a few.
Top comments (0)