How to become a full-time freelancer?

Lukas Liesis
10 min readMay 22, 2019

I’ll start off by saying, I try never to listen to advice from someone who hasn’t executed the theory themselves.

Freelancing has become popular over the past few years and as a full-time freelancer, I’ve heard so many bad things like it’s not possible, you will have headaches to find a job, you will not have full coverage to pay your bills, etc. etc. That’s all nonsense. Freelancing is great and like any other job it can be achieved, you only need to focus on it and you’ll get it.

Now, I’m a top-rated JavaScript developer working with ex-Googler. A couple of years ago I was rated as the top 3% best ReactJS developer from around the globe. I want to share how this is possible in this article.

My way to reach the top

I started coding with PHP, CSS, and HTML when Internet Explorer 6 was a brand-new thing. It was decades ago, I’m 30yrs old now, and it happened in ~7th grade at school. After graduating from school, I had two options — accept an offer to work for a great local company with an attractive salary or study.

I went with study and I studied IT for several months, dropped it and switched to Physics. While doing my master’s I started my first office job as a PHP developer.

During all that time I created several projects on my own. I wrote ~400 articles about HTML, CSS, PHP and related tech. Every couple of months I delivered new software and I’ve even kept some of it as a relic of the old days:

I was delivering new software for about ten years. Every year I created new apps and modern websites. Although, most of them are not available anymore, but the experience is always with me. I even generated cash from some of them, some were to learn the tech, but all of them made my profile better and better.

I never had issues finding a job because I have a full portfolio with full applications delivered from line 1 to production and I think this is the key.

You have to show that you can deliver.

Everyone can say “I can build stuff.” Sure you can, everyone can. But are you able to?

If you are starting to learn how to code, what to do next?

First of all, you need to learn stuff. Don’t just follow what’s cool to a friend but learn what’s cool to you. I don’t care if that friend is the best of the best. This is the only way for long-term success.

Self-awareness. To get self-awareness, you need to learn. After all, you can’t tell if it’s tasty if you’ve never tasted it.

Before going all-in to JavaScript, I knew only jQuery and related stuff. I was doing PHP mostly and some frontend with CSS2.

The beginning of true freelancing

1. Choose a freelancing platform

I googled which site was the biggest for a freelancer like me. I chose upwork.com, but I also noticed Toptal.com. Upwork is an open platform where anyone can register and make bids on offers, while Toptal is closed. Toptal has a very extensive screening which dismisses more than 97% of developers. Also, Toptal takes care of your communication with potential clients. They help you to find a job. You set how much you want to get hourly, and they find you a match. However, you never know how much your client is paying.

I knew that I wanted to go with Upwork which clearly shows how much taxes you pay for the service. Eventually, I found out that Upwork is also providing similar assistance to Toptal when you become a top freelancer.

2. Take a look at the best profiles, what you want to become

Many people think that freelancing sites are race-to-the-bottom places. Where the cheapest always wins. That’s not true. Skip all the mass and check the top profiles. You will notice that on almost any network you will find 2–3% of profiles who are making a good income. You need to become top 3% :)

3. Strategize how to climb to the top

My goal was to become the best JavaScript developer. I noticed that the biggest companies like Google, Facebook, Microsoft are investing considerable resources to JavaScript and it becomes the language of almost everything and I liked what can be built with the language.

3.1 Learn

I started with this list: https://github.com/sorrycc/awesome-javascript

Read it all. Picked top things I liked. I watched all the leading conferences on Youtube. JS conf, ReactJS conf and all the others. While watching I had some paper where I took notes of all the keywords that I was not familiar enough with to form my opinion about it. It was like four sheets of A4 full of keywords like ReactJs, NodeJS, NPM, ExpressJS, ES6, Babel, Angular, sass and many many others.

After watching about 20 hours of conferences, I got a better understanding of community and technological stack in general.

Pro tip: always try to watch at a higher speed. At first, it feels strange and hard to focus but your hearing will adapt, and it will save you days and weeks. I usually watch Youtube at 1.5x now.

Then, I took my papers and went through every single keyword. Googled it, watched more conferences and even tried them out. Every time I heard a new keyword — it went to the to-do list.

E.g., If you would take the top 50 keywords about any technology and would spend 10 hours for each, It would take ~2 months to get familiar with it. Assuming of course that you will live with it for ~10 hours per day. That’s a lot. If you haven’t mastered the skill of concentration, then practice it. You can do it, but your body will try to go to comfort zone :)

Pro tip: after every 4 hours I usually take a break. The break is to pull your nervous system to a different direction. During the breaks, I practiced racing, ice-cold showers, intensive gym, the game “Just dance” with Xbox Kinect. The break should not take more than 30–90 minutes.

After a couple of months, you will have enough theoretical knowledge.

4. Deliver results

The theory is great, but it’s worthless without practical results. Do something with your findings. I took 2–3 months to get familiar myself with everything I could find out about the JavaScript which seemed interesting. Then, I would take Toptal’s screening tests to confirm my knowledge.

I googled Toptal. Got as many details as possible to get ready for the screening. I knew it will be intense, so I had to prepare. I took several classes on Coursera.org about topics I didn’t know. Like algorithms, graphs, big O notations. I’ve completed all of these.

First, I wanted to test my skills, so I created arcchat.com which is a full live chat application. It is even used by some companies today :). I did backend with NodeJS, the database with MongoDB (just because it’s very close to JavaScript and I never built anything from 0 to production on my own). Frontend with ReactJS and material-ui. I made WebSocket-based API for everything because I never made a full application built only on WebSockets, not RESTfull. Point is I tried stuff and got it done.

Then, I felt ready to take the Toptal challenge. Took it, passed it. It was intensive, but I got it done. Then I switched to my original target — Upwork.

5. Build your profile

It doesn’t matter which network you pick, learn it. Find out who people are hiring. What filters they use, how search works. On Upwork you have to hit all of these:

That’s a very doable target.

Don’t you know English? Learn it. Everyone who hires wants a result. That’s basic. You will either get it done and get hired or not.

6. Applying for a job with the target to over-deliver

I always apply only for positions where I feel I can over-deliver. I always try to lower the expectations of the client to boost the over-delivering effect. If you would ask how long it will take to build something, I will count it, then add at least 30% and will tell you that this is an optimistic number. If you agree with it, we can work on the task. Maybe things will go wrong, and I will use all the time, the client will expect it as an expected outcome. Probably I will deliver quicker, and the client will be happy to have the unexpected, over-delivered result.

I always google about the client before clicking anything. I never applied for a job where I’m not familiar with the full content and context of the task.

Read the full description of what the client is looking for. Read it twice. Make sure you understand everything in it. Google it, learn about the company. Find social profiles, learn about the people. Invest at least 30 minutes to get familiar with the task, and it’s context. Act as top 3%.

I have hired five freelancers for Trafikito.com When I post a job on Upwork and let’s say I get 30 candidates, 27 of them are sending copy-pasted text how cool they are. I skip it. It’s clear that they don’t care about me at all and want to get the cash. Make sure you are between those who care.

7. Climb to the top

My first job was a small task to get my profile off the ground. I took a simple offer which was too easy for me, and the payment was not great, but I needed stats for the profile. Got it done, got the first five stars review. The first week went, and I was already climbing. Got another one, do the same thing, another five stars review. Then I searched that I could take at least ~30–35$/hour for my skill set & experience. I was still not as experienced as some of the other freelancers on Upwork. Set my hourly rate to an upper range of the smaller filter. I set my profile to 25$/h. So I was still in a cheaper filter for JavaScript developers but on the higher range of it.

I took another job, this time for a month. I built some small apps. Got a great review again. Then I wanted to pass 100+ hours billed filter. Took another job for 25$/h again. I strategically took projects of <1month long to get the experience. I was still new in JavaScript, so I needed challenges. Building from 0 is the best way to learn.

When I crossed 100+ hours billed and also got Rising Talent badge, I stepped up to 30$/h. Took one more project, this time ~2 months long. To have stats that I worked for a bit longer for 30$/h. Got a great review for over-delivering. Updated to 35$/h, took another job for a couple of months. Did it again and again till I reached 55$/h. If I remember correctly, I set ~50$/h when I crossed filters:

  • 1,000+ hours billed
  • $10k+ earned
  • Top Rated badge

When I got a Top Rated badge, I got into closed networks of Upwork talent cloud. Inside it you see offers only from big companies — something like Toptal. Also, you get a private manager who makes sure your profile is in good shape, and you get jobs. They are actively searching for a job for you and suggesting offers to you for someone who is looking for a freelancer.

When I reached the Top Rated badge I never applied for a job. All I needed to do was turn on my profile as available and wait for ~3–4 days. That’s how I got my current contract with ex-Googler.

Always keep good communication. Communication is the key to human interactions. Your client doesn’t see what you do and can not read your mind. Over-communicate is better than under-communicate.

You can do it too

  1. Find your field by deploying self-awareness
  2. Learn, get familiar with the context, not only the direct field
  3. 97% talk, 3% deliver results. You must deliver it.
  4. Always shoot to over-deliver, keep expectations low.
  5. Deploy empathy and care.
  6. Be responsible.

Why share this story?

Well, I’m sharing this publicly because I think a lot of people could benefit from it. I’d love to discuss more or join podcasts on this topic. A single article, of course, doesn’t cover the full context extensively but it highlights essential details.

I want to provide value upfront. Give out my best tips for your attention, which, I believe, is the ultimate asset for building any profile or company and way more valuable than cash.

If you found this article valuable, please share it.

Clap & continue reading: The practical guide on building a career as a professional freelancer online. How to actually make the income and feel the freedom of it?

Or connect with me on LinkedIn: https://www.linkedin.com/in/lukas-liesis-05335626/

📝 Read this story later in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

--

--

Lukas Liesis

2 decades exp of building business value through web tech. Has master's degree in Physics. Built startups with ex-Googlers. Was world’s top 3% developer.