On being a Freelance Full-Stack Developer
I have been a freelance full-stack developer since 2017. During this time, I’ve collaborated with numerous companies, creating web applications and APIs for startups, small businesses, and large enterprises.
While all of these companies had their domain experts across various industries (health, finance, manufacturing, energy, data analytics, e-commerce), I filled the gap as a technical expert, guiding them through the process of building and maintaining their web applications
My experience includes developing web applications from the ground up, maintaining and enhancing existing applications, adding new features to established systems, and guiding teams as lead developer towards best practices and modern technologies.
Here I want to share my experience with you! Keep in mind that this story is based on my personal experience and might not apply to everyone. There was lots of luck involved, and I am grateful for the opportunities I had. I hope you can take something away from my story and apply it to your own journey.
How to start as a freelance full-stack developer?
Do not start as a junior developer. When I started as a freelance React developer, I had a few years of experience working as a developer at a startup with skilled coworkers. This allowed me to level up my skills and learn from others over the years.
Remote work doesn’t really count here, because it’s all the water cooling discussions or lunch breaks with your coworkers that help you to grow as a developer. I remember hours of chatting with my coworkers about the latest tech trends, how to solve a bug, or how to implement a feature. Even after work.
On the way I worked on a few side projects where I could experiment with new tech (e.g. React at the end of 2015). This helped me to position myself early in a niche (at the time) where I could call myself an knowledgeable in React and JavaScript. Timing plays a big role here and I was lucky to have bet on React early.
All of this experience was crucial for me to call myself a senior developer eventually, as I had a good understanding of how to build web applications, how to work with a team on a large full-stack application, and how to deliver code in different tech stacks (e.g. React.js, Node.js, Next.js) that became more popular over the years.
When I decided to freelance, I was a at a cross road where I could either climb the career ladder as a team lead or become an independent developer. Getting on an IC track would have been another option, but not in Germany where I am based.
I decided to become a freelance developer, because I wanted to work on different projects, with different people, in different industries. I wanted to learn more about the world of web development and not just the world of a single company.
In conclusion, from my experience, I wouldn’t recommend anyone to start out as a junior freelance developer. Companies who are looking for freelancers, contractors, or consultants usually expect you to be able to work independently. They are looking for expertise right away and not for someone to train on the job.
If you are just starting out, I would recommend you to work in a company for a few years to gain experience. If you are aiming to become an independent developer, I’d argue a startup is the better choice than an enterprise, because you will have more responsibilities and can learn more in a shorter amount of time.
If your resources allow it, create a portfolio on the side which is a good starting point for putting yourself out there. Once you have a few years under your belt as a web developer, you can start looking for freelance jobs on the side during your day job.
How to find freelance full-stack developer jobs?
While you level up as a developer, you have to put yourself out there. There are many options like going to meetups, speaking at conferences, writing a blog, creating a portfolio of projects, engaging with your network, sharing on social media, mingling with recruiters, take part in hackathons, or contributing to open source.
The list goes on, but the most important thing is to be visible as a freelance web developer and to be helpful to others. If you are helpful, people will remember you and might reach out to you when they need help.
Personally, when I started as a freelance developer, I was lucky to have written a blog about React and JavaScript for some time. This blog allowed me to get all my freelance jobs. Honestly I never had to look actively for a job, as companies reached out to me. But this is a rare case, because a long term strategy and timing played a big role in this.
How to price yourself as a freelance full-stack developer?
When I worked for companies across the globe, I had a fixed day rate. I didn’t want to price my work by value, because this comes with a lot of uncertainty. But I also didn’t want to count every hour, so pricing by day rate was the best option for me.
So I started out with 640$ per day, averaged around 1000$ per day, and had my biggest gigs in the range of 1400$ per day. All of these, even the biggest gigs, were remote and long term gigs. Only at the beginning of my freelance career, I had to travel to companies in Germany for a few days. These days my clients are all over the world.
In the end it really depends how you can differentiate yourself from your peers. I was lucky to have positioned myself as a React expert early on, which allowed me to charge more. But I also had to deliver quality code and be a good communicator to justify my day rate for a long term project. Some learnings:
- Experience: If you are the expert in a technology, you can charge more.
- Specialize: Position yourself as a specialist, but surprise them as T-shaped.
- Location: US > UK/CH > Germany.
- Industry: Didn’t experience it, but I guess some industries pay more than others.
- Company Size: Startups pay less than enterprises. Exception: funded startups.
- Technology Stack: The demand for React is the highest among web frameworks.
How to specialize as a freelance full-stack developer?
- React, I had timing on my side, these days saturated and you have to find your niche, fortunatly I betted early on React
How to generalize as a freelance full-stack developer?
- t-shaped
Hard Skills for freelance full-stack developer?
- JavaScript
- React
- Node.js
- Express.js
- MongoDB
- SQL
- GraphQL
- REST
- TypeScript
- HTML
- CSS
- Git
- CI/CD
- Docker
- AWS, Azure, Google Cloud
Soft Skills for freelance full-stack developer?
- communication skills
- technical expertise
- leadership skills (if lead position)
- not necessarly domain knowledge, you should be able to learn it on the job
- self-organization skills and within a team (e.g. Scrum)
- ability to work independently
- ability to deliver quality code
- ability to work with a team
- ability to work with a client
- ability to work with stakeholders (PM, PO, UI/UX, QA, DevOps, …)
- ability to work with a tech stack
- ability to learn new technologies
- ability to work with a remote team
- ability to work with a team in a different timezone (if needed)
- ability to work with a team in a different culture (if needed)
- ability to work with a team in a different language (if needed)