// A Freelance Programmer's Life
The Acing Freelancing guide attempts to help new freelancers. Someone who is considering freelancing as a career will surely face many questions at the start. In this guide, we attempt to answer those questions.
At the end of this guide, you’ll find an inspiring story of Ankur, an ex-Microsoft Engineer turned freelance developer. It covers the nuances of living the life of a programmer as a freelancer. Here’s a brief version of the same for a quick read.
Early in his career, while working at Microsoft and other big MNCs, Ankur gained the experience of working in a corporate setting. However, he soon realised that he needed more meaningful and engaging work.
He quit his job and moved into an early-stage start-up to have an accelerated learning curve and a more challenging environment. However, this came at the cost of optimal work-life balance – the days would often stretch up to 16–18 hours – clearly, the hours were brutal.
Ankur felt that freelancing would offer the accelerated learning curve of a startup while also providing a way to achieve work-life balance. So, he decided to give it a try.
However, he was skeptical of finding enough projects to generate a steady stream of income. This isn’t an uncommon concern for any new freelancer.
Fast-forward 3 years, he has now worked as a freelance programmer and built products for a host of top-notch companies. He’s been able to achieve what he set out to – making exciting products while working on his own terms and achieving a good work-life balance.
The flexible working hours and a location-independent job allow him to work from Goa’s beaches! A far cry from the daily grind, long commutes, and corporate cubicles.
The other, less-talked-about side of freelancing
It needs to be mentioned that taking up freelancing as a career is by no means a casual decision. One needs discipline, time management, regular self-evaluation, and a continuous strive to learn and improve.
Ankur’s experience is among several stories where freelancing has been aligned with achieving a fulfilling life. However, there are other instances where it hasn’t worked out for some.
Some common issues faced by freelancers are:
- A lack of social activity
- Inability to set clear boundaries between personal and professional life
Such problems can be clearly tackled and we have written an entire guide to tackle loneliness while working remotely. In totality though, the positives of freelancing do outweigh the negatives for a disciplined individual.
Skills Required to Become a Great Freelance Programmer
At Flexiple, we interact and regularly work with over 200 freelancers. This has helped us identify the skill sets that separate a great freelancer from a mediocre one. Among them, the most critical one is soft skills, which is often ignored in comparison to technical skills.
Hence, it’s important for freelance programmers to evaluate themselves holistically and to consistently improve the softer aspects of their personality.
1. Great communication
- Effective and clear communication is very important, irrespective of the channel. This includes emails, phone calls, Skype calls, as well as chat apps like Slack & WhatsApp. The goal is to put the point across with clarity while maintaining the appropriate tone.
- This is critical as most freelance developers work remotely with limited F2F interaction. Therefore, insufficient clarity in communication can lead to misunderstandings.
- A great way to overcome any potential miscommunication is to “over-communicate” – give more information than is generally expected.
- Life as a freelance programmer involves closely working with the client and their team members.
- Clients generally look for freelancers with the intent of forming an effective long-term working.
- Therefore, understanding the work culture of the team and adapting to it will be critical to the success of the project.
- A critical aspect is to be highly transparent about work. This involves being upfront about things that are achievable and those that are not.
- Of course, many times, being a freelance programmer involves adapting to the needs of a project. However, it is also important that a freelancer is comfortable working in that environment.
- Overall, keeping the client updated about any concerns while also informing about one’s working-style ensures that there is a consistent alignment in expectations.
4. Competency in one’s field
- Companies typically hire freelance programmers for their expertise and knowledge, often to solve very specific problems. So regularly improving one’s skills and staying up to date on any new technologies increases the chances of successful client relationships.
- A way to implement this would be to work on open-source initiatives or personal projects. In the long run, these will be valuable additions to a freelance programmer’s resume.
Other Essential Skills for freelance programmers
- Freelance programmers should develop a mindset of regular self-evaluation to figure out nuances in optimising one’s performance.
- This includes looking for patterns to make work easier and more enjoyable.
- For example, a programmer might find that they are the most productive during a specific part of the day/night. Accordingly, they can schedule the bulk of their work during these hours.
2. Gathering requirements
- As a freelance programmer, one must understand the customer’s requirements clearly and accurately before starting an engagement.
- Proactively request for inputs that aren’t given and ask relevant questions without hesitation. An elegant solution is to use a simple survey form to gather and standardise requirements.
- Freelance programmers have to market themselves well. Being able to effectively showcase one’s skill-sets and experience is a key differentiator from the vast crowd
- Most recruiters glance through hundreds of resumes in a very limited time. Hence, it pays off to build a resume/CV that portrays work done clearly.
- Marketing well also involves engaging and being active on social media platforms such as LinkedIn, Twitter, and relevant developer communities (dev.to, etc.)
How Much can a Freelance Programmer Earn?
In freelancing, there are different payment models that are employed. Two popular methods are time-based compensation (where a freelancer is paid based on the hour/days of effort they’ve put in, and project-based compensation (where they’re paid based on the satisfactory completion of the project).
For freelance programmers, compensation is best when it is time-based, and popularly, hourly-rate based. This ensures that the quality of work is given the highest priority while allowing for freedom and flexibility to make the project a success.
The hourly rates of freelancer programmers differ widely based on the tech stack, the number of years of experience, and the quality of work. Here’s a more in-depth guide on the average freelance programmer rates.
Sourcing Projects as a Freelance Programmer
After starting a career as a freelance programmer, one needs to build a steady stream of income by building a strong pipeline of freelance projects. Some of the top ways to find projects as a freelance programmer are:
1. Create profiles on freelance marketplaces
- Online freelancer marketplaces such as Upwork & Fiverr can be a good starting point for getting projects, as they have little to no screening for the developers who apply
- While it is easy to create t profile on such marketplaces, finding projects on them is highly time-consuming. This is due to intense competition from candidates of all skill levels, resulting in lower chances of conversion.
2. Apply to premium tech talent networks
- Premium tech talent networks like Flexiple and Toptal connect quality freelance programmers with top-notch tech companies. Such platforms conduct rigorous and multi-step screening processes to ensure quality and build an exclusive network of the very cream of freelance programmers
- In addition, such platforms offer features like personalised recommendations and project matching. This ensures that freelancers can focus on delivering high-quality output, rather than spending time & effort in continuously marketing their skills.
3. Reach out to your network for work and referrals
- More often than not a fresh freelancer’s best way to get projects is through individuals in their own network
- Past colleagues and employers already have a good understanding of a programmer’s capabilities and work. So, their ability to offer a nuanced view while recommending them is quite helpful.
4. Work on open-source projects
- Another way to build a network while starting out is to work on open-source an also personal ” pet projects”. Of course, apart from a wider network, a programmer can gain valuable experience by working with others on designing and building complex software
- While such projects don’t offer monetary compensation, they are a great opportunity to interact and build rapport with other professionals in the same space
- As open-source projects are less demanding in terms of strict timelines, programmers can work at their own pace and pick up new skills
5. Create a portfolio website
- In addition to having an updated and well-thought-out resume, programmers ca go aa step further and maintain their own portfolio website
- Building a portfolio website with a detailed description helps in establishing a personal brand and showcase one’s expertise to recruiters and potential clients
- Many potential clients source freelance programmers by conducting targeted Google searches. Therefore, putting effort to improve SEO and ranking can be worth it to increase one’s visibility.
6. Contribute to tech blogs
- For freelance programmers, contributing content to popular publications can be a great way to showcase their knowledge and expertise. There are many tech blogs where both long-form content (or) smaller articles such as ‘top tips’ and ‘best-practices’ can be shared
- Authoring and publishing good quality and insightful content can help a programmer grow their network and establish them as an expert in the field. To start off, one can research the highly-popular topics that rank well in Google search and target those first.
7. Perform cold outreach
- Although it might not prove to be as effective as some of the other methods listed above, cold outreach can still be a good method to try out.
- Email marketing and reaching out on Linkedin are the best ways to do cold outreach in this case.
- The first step is to make a list of all the companies that hire freelance developers regularly and to find the contacts of their relevant hiring managers. Then, create a simple email pipeline (be sure to include follow-ups) and set up an automated campaign using email marketing CRMs
- The key is to make the emails to-the-point and as personalised as possible – don’t just send a generic email that no one likes to read.
Now that you know about the key aspects, to help you in your freelancer journey, these are the chapters we cover:
- 7 Marketing Tips for Freelance Web Development Professionals
- How to Craft a Freelance Resume as a Developer
- Top 7 websites to find Freelance Coding Jobs
- 6 Tips for Making Sure You Get Paid as a Freelancer
- Freelance Invoicing Guide for Developers
- Freelancer story - Ex Microsoft engineer shares his experience