Remote Job/ Freelancing: Getting started
Contributor Fahim Fahad
Last Updated August 19th, 2024
Target audience:
1. BSc and MSc students
2. Developers working for a company for less than 2 years
Introduction
Normally remote and freelance jobs are very similar. I am using these two terms for
the ease of my discussion. This is how I will use remote and freelance jobs for the rest
of the document:
Freelance Job: This is a project or task based job. Clients normally hire expert
developers to help them with any project or specific task. This is normally a
short-term contract based job. The duration can be 2 weeks to 6 months. Depending
on the complexity of the project and task.
Remote Job: Client will hire the developer as a permanent employee. Developer will
work from home and the client will assign different tasks. This is normally long term
hiring.
Job type:
1. Full time: 40 hours/week
2. Part time: 20 hours/week
3. Hourly: 10-15 hours/week (It can vary depending on client)
Time schedule and workday overlap:
It is possible that we have to work with clients from Europe or the USA. Time zone is
different. So before starting to work with any client we should discuss the time
schedule and workday overlap with the client. Most of the time these are mentioned in
the job description.
Workday overlap is the amount of time we need to be present during the client’s
working hour. For example, the client's working hour is EST and the office starts at
9am EST. That is 7pm our time. If the workday overlap is 4 hours, then we will need
to work with clients from 7 p.m. to 11 p.m. And for the remaining 4 hours (full time),
we can work on our own.
Normally, workday overlap can range from 2 hours to a full day. So it is important to
know the requirements before joining any company.
Company Requirements:
In this section, I will discuss what a remote company normally looks for when hiring a
remote developer.
Expert:
1. A developer needs to be an expert in a language and framework.
2. Should have good working experience (at least 2 years).
3. Should be able to work without much or no supervision.
4. Should be able to work by following the required documents. (Business
document, requirement document)
Consistent:
1. Developers need to be consistent with their work. Consistency comes from
maintaining regular office hours, submitting work before deadlines, and
following office regulations.
2. It is good practice to not take more vacation than the company allows. There
should be PTO (Paid Time Off) for each developer and you can surely utilize
them. Also, in the event of a planned vacation, the developer should inform the
reporting manager at least 2 weeks before.
Professional:
1. Being professional is the most important requirement. It is possible that a
developer gets a negative comment about the work they submitted. It is very
natural in software development, and we should not take this negatively.
2. It is possible that a developer is stuck with some problem and needs some help
from another developer. We need to be patient in this case and should approach
it with care. Other developers are busy too. A professional approach will
always save the day.
3. Joining meetings on time, dressing up properly, and communication
skills—these skills are also important.
Freelance sites:
There are two types of freelance sites.
1. There will be onboarding tests during developer sign-up. Tests include
programming tests, language/framework tests, small projects, etc. In this case,
clients normally do not take any tests. Developers got hired directly. There can
be one interview with the client.
2. Developers will apply for any job on the site, and then the client will arrange
the technical interview. The client will conduct all the interviews and then
finalize the hiring.
I am sharing a few freelance sites that I came to know about during my job search:
1. Working Nomads: [Link]
2. We work Remotely: [Link]
3. UpStack: [Link]
4. Braintrust: [Link]
5. Toptal: [Link]
6. Turing: [Link]
7. BairesDev: [Link]
8. X-Team: [Link]
9. Indeed: [Link]
10. LinkedIn jobs
Tech stack:
I would suggest developers and students explore the above freelance sites to get some
idea about the current tech stack. There are so many jobs in various fields. You can
select any tech stack and work on becoming an expert.
Based on my experience: (Serial number does not mean anything)
1. [Link]
2. Python
3. React
4. NextJs
5. AI/ML
6. Data science
7. Android
8. iOS
9. Java, Go, Kotlin
Popular Cloud service providers:
1. AWS
2. GCP
Salary and Job security:
Normally, remote jobs offer 2–3 times more salary than local companies. It can be
even more if the developer is really qualified.
There is no job security for most of these jobs. For a freelance job, clients can
terminate the developer within 1 to 3 days' notice.
For a remote job, there will be a specific notice period mentioned in the job contract.
Normally, it is not more than 10 days. Companies can also terminate developers at any
time following the notice period.
This is also true for developers. Developers can submit resignations and move to
another project or company after the mentioned notice period.
English fluency:
It is not mandatory to be fluent in English. If you can explain your thoughts in simple
English, that is also good enough. Most of the companies are aware of the fact that we
are not as fluent as the native speakers. But if they cannot understand you during the
interview stage, then you will not get hired.
How to prepare:
1. Experience: Gather as much professional experience as possible. Solve
complex real life problems. Take part in design discussions.
2. Expertise: Become an expert in your tech stack.
3. Problem solving: Solve programming problems. You should be able to solve
mid level problems.
4. CV: Keep your CV updated.
Final words:
1. Think global
2. Become an expert
3. Be professional
4. Be patient. Sometimes it takes years to find a good job. Giving up is not an
option.
Documents:
Google document
Q&A document