Freelance2013 – 2021

Upwork portfolio

250+ contracts for international clients.

Upwork portfolio
Platform
Elance → oDesk → Upwork
Role
Full stack developer
Timeline
8 years
Contracts
250+
Rating
5
About the project

Where the discipline came from.

The work

I started freelancing on Elance in May 2013, building pixel-perfect WordPress themes from PSDs for US clients. The tools were AngularJS, jQuery and Git. Elance and oDesk later merged into Upwork, and I kept going there until 2021.

Over those eight years I completed more than 250 contracts for international clients and held a 5.0 rating. I never met most of them.

My role

The work moved from pages to platforms. It began with WordPress themes and plugins. Then came React and AngularJS front-ends, then full-stack builds with Laravel: APIs, infrastructure and the front-ends on top of them. Some clients stayed on long-term retainers.

Freelancing is also where I learned marketing. From 2016 I ran SEO, paid search and analytics for my own clients, because a site that nobody finds is not much use to them.

On most contracts I was the whole team. I took the brief, worked out the requirements, built it, deployed it, handled SEO where it was needed and supported it afterwards.

What it taught me

Freelancing for clients I never met taught me the discipline I still rely on.

  • Scope. Agree what is in and what is out before you start, in writing.
  • Deadlines. Across time zones, a missed date is hard to explain. Better to flag a problem early.
  • Revisions. Plan for them. The first version is rarely the last.
  • Communication. When the client cannot see you, clear written updates are the job.

Those habits became the base for everything after: leading the team at Staff Asia, leading product work for Worldview International Group, and founding Devute.

WordPressReactAngularJSjQuery

What I did

250+ completed contracts
WordPress themes and plugins
React and AngularJS front-ends
Long-term retainers

More work

Have something that needs building?

A 30-minute call is enough to tell whether I can help.