What I've Learnt From My First Freelance Job
Things that I've learnt from my first freelance job as a web developer.
By Fabian Lee | January 27, 2022
6 min read • Loading views
- How to price yourself
- Communicate closely with clients
- Quality over speed
- Lifelong learning does pay off
I've been working with SleekFlow to revamp their marketing website for the past few months. Besides building the UI, I also got involved in SEO, internationalization, and integrating with headless CMS. This blog is more about business and product management side. Perhaps I'll write about the technical aspects separately.
This was my first creative freelance job outside of my professional career. Pricing myself is an art I've never put thoughts into before. It was a decision between Time Based Pricing and Value Based Pricing.
I'm thankful that I've stumbled across 2 insightful videos on How to Charge for Design and Pricing Design Work & Creativity from The Futur. The content applies to all creative works including software development.
I used what I've learnt from the video. I finally went for Value Based Pricing and it worked well for me. These are the key points that I've found valuable.
Charging by the hours punishes me for being good
This line hit hard when I first heard it. The reason why you can do something in a matter of seconds with quality is because of the time and effort you've spent perfecting your craft.
Businesses generally want the lowest cost and get the best result. Under the same logic, why would we accept a deal which cost a lifetime of hardship and get a pad in the back in return? The comparison should help your clients understand where you're coming from. Trust your value and uphold the integrity of your craft.
When we are trying to do business, we are usually money-sensitive. Perhaps it's because money is an immediate cost. Sometimes businesses overlooked the desired future success which could bring enormous value to them that the initial cost can be relatively insignificant.
As an independent freelancer, you are not just a tool-for-hire. You are a consultant who's trying to understand and lay out the business goals with your client. You are also a salesperson who would suggest how your services can help them achieve their goals.
Under this context, naming prices would sound more reasonable since we are less cost-centric and more goal-centric. Great clients usually favour time and quality. If your expertise can bring value to their goals, no price is too high.
You might have a usual rate or price for certain services. You wouldn't realize how much money you are leaving on the table if you always use the same rate.
Say you usually do US$5,000 for an e-commerce website. Your usual clients are local brands whose revenue is around 6 figures. Today, Nike approached you to build one for their new subsidiary brand while their net income was US$5.73B in 2021. And your work could hypothetically boost another 1 billion dollar income for them. Your price should tie to the business value.
Moreover, anchor your price higher than expected. Why? Any number afterward will be based on your proposed price. If clients think it's too high, reduce the project scope to meet their needs. If clients add more requirements, then so should your price. If there's one generous client who accepts the deal straight away, then your price can officially go high. Take control of the pricing conversation and avoid being low-balled.
I must admit that I didn't communicate well enough during the project. If you have questions or suggestions based on clients' requirements, for example, the business logic or the design, you should voice them out as soon as possible. These conversations would affect what you will be doing. You don't want to waste time building undesirable features.
I'm keen on UI/UX so I usually would draw my opinions on the design. I'm grateful that my client was open to suggestions. I managed to scrape off some unnecessary designs that are either repetitive or don't serve any user purpose. This saved both of us time and they were happy with the result.
See the project as one of your own. You can showcase your work someday. Put some thoughts on how to make it better than average. Go make yourself proud!
There was a famous saying by Mark Zuckerberg that goes
Move fast and break things
I don't find this motto worthy in practice. It essentially tells you to build something first, an MVP - Minimum Viable Product. It doesn't matter if the work is mediocre, just make it work and fix it later.
There's a difference between knowing what to do to make it great and willfully choosing to skip it and your experience limiting you from building something great. If you are the latter, then there's nothing wrong with you trying your utmost to build what you can. But if you are the former, I would say it's bringing more harm than good.
An MVP full of technical debt, over time, costs more time and effort. Even Mark himself noticed this and shifted towards "Move fast with stable infra". Ideally, those time could have been used to build new features on top of a solid base.
Throughout the project, I inclined towards stability and sustainability. I won't be maintaining the project forever. Someone would eventually take over my work. That's why I tried to make better decisions, for example choosing the suitable library, writing comments and overviews, code optimizations, etc. We should spend a reasonable amount of time looking into the future.
It's a must for developers to keep up-to-date with new technologies. I didn't learn Gatsby and Next because I'm required to but knowing it could be useful someday. As a front-end focused developer, I felt the obligation. Besides, I mainly wanted to build a proper website for myself. And I'm fortunate that I could put my hobby skills to professional use.
Never stop getting your hands dirty. Your future self will thank you later.