On Freelancing: My lessons and learnings
Hi everyone!
This article is a reflection on my journey as a freelancer, the lessons learned, the challenges faced, and the reality behind the promise of freedom. If you are considering freelancing or already on this path, I hope that these insights help you navigate it better.
This article was originally posted on my personal space; before cross-posting it here.
The independent path: freedom comes with responsibility
Why Freelancing?
I was drawn to freelancing for the same reasons, that most people are drawn to freelancing:
- Freedom from the daily commute
- Freedom to choose your projects
- Freedom to set your own hours
- Freedom from office politics
But here's what they don't tell you upfront:
Freelancing isn't freedom from work. It's freedom in work.
The work is still work. The deadlines are still deadlines. The clients are still demanding. The difference is; they're yours—you choose which projects to take, which deadlines to accept, and which clients to work with.
A freelancer building their own path
The First Project
I remember my first freelance project clearly. I was excited, nervous, and honestly, I was undercharging.
I took a product that was to migrate legacy product to modern Next.js Application. Current system whose UI and Backend was built on Django with Server Side Rendered. The client was a Venture Capitalist company. The application was a No Code tool for the companies they have funded or undertaken, to manage their portfolio and all other operations. The whole system was legacy, where all UI design and components were done using jQuery, Javascript embedded on Django templates.
The client seemed nice, the requirements seemed clear initially, and I thought I had everything figured out.
I was wrong.
I quickly discovered significant technical caveats and communication challenges. There was no knowledge transfer, no API documentation, lets no documentation at all. It was like being handed a black box and expected to explore it and deliver results quickly.
To make matters worse, the team who built this product came from a business background with little to no engineering background as such. The entire codebase reflected this; it was a disaster.
None of these challenges were communicated during the initial discovery call. This was partly my fault; I was too excited to take on the work and get started, so I didn't ask the right questions upfront. Transitioning the existing jQuery-based UI components to React and decoupling the backend from the frontend proved extremely difficult, as the legacy system didn't follow standard engineering practices.
Reality of freelance challenges: what they don't tell you upfront
I managed to migrate two modules and deliver them before parting ways with the client. I decided not to continue with the remaining 10-11 modules. The product was built over years from 2008-09 and had been maintained (or rather, patched) using the same approach ever since. The technical debt was overwhelming, and decoupling such a legacy system was more pain than I was willing to take on especially since the client couldn't understand the technical complexity involved in decoupling legacy system and time taken to it, given such large product. Perhaps I'll write more about this experience in a separate article.
What I Learned
Negotiation is a skill: Don't be afraid to discuss rates. Your time and expertise have value.
Clear communication saves time: What seems obvious to you might not be obvious to the client. Always clarify requirements.
Contracts matter: Even for small projects. Define scope, timeline, payment terms, and what happens if things change.
Saying no is powerful: Not every project is worth taking. Some clients aren't worth the stress.
Example: Setting clear boundaries
Included:
- Frontend development (React/Next.js)
- API integration with existing backend
- Responsive design implementation
- Development testing and bug fixes
Excluded:
- DevOps and deployment setup (outside project scope)
- Post-launch maintenance and support (available as separate service)
- Backend development or API creation
- Content creation or copywriting
Terms:
- Revisions: 2 rounds of feedback included
- Timeline: 4 weeks from project start
- Payment: 50% upfront, 50% on delivery
- Additional features: Quoted separately and require scope change approval
The Feast and Famine Cycle
One of the hardest lessons in freelancing is dealing with the feast and famine cycle.
The Feast: You are drowning in work. Multiple clients, tight deadlines, late nights. You are making good money, but you are exhausted.
The Famine: Radio silence. No new projects. No responses to proposals. You start questioning everything.
The reality of freelance income: prepare for both extremes
How to Handle It
Save during the feast: When work is abundant, save aggressively. Aim for at least 6 months of expenses.
Use downtime productively: During slow periods, work on your portfolio, learn new skills, write blog posts, contribute to open source.
Build a pipeline: Always have potential projects in the pipeline. Network, maintain relationships, stay visible.
Diversify income streams: Don't rely on a single client or project type. Consider passive income, products, or retainer agreements.
The Loneliness
Working alone sounds romantic until you are actually alone. No water cooler conversations. No team lunches. No one to bounce ideas off at 2 AM when you are stuck.
Building Community
- Join communities: Online forums, Discord servers, local meetups. Find your tribe.
- Find accountability partners: Someone to check in with, share goals, and keep each other motivated.
- Co-working spaces: Even if it's just a few days a week, being around other people helps.
- Mentorship: Find mentors. Be a mentor. Both help combat isolation.
I've found that the best freelancers aren't lone wolves; they're part of a pack.
Setting Boundaries
When work is everywhere, work is everywhere.
Your laptop is always open. Your phone is always buzzing. Your mind is always working.
Protecting Your Time
Define work hours: Even if you are flexible, have core hours when you are available.
Create a dedicated workspace: Separate work from life, even if it's just a corner of your room.
Learn to say no: Not just to bad projects, but to requests outside your scope or availability.
Take breaks: Seriously. Burnout is real, and it is crazy harder to recover when you are on your own, trust me when I say this. This is coming from a very very personal experience.
Lets say if you are setting availability
- Working hours: 9 AM - 6 PM
- Response time: Within 24 hours
- Emergency contact: Only for critical issues
- Weekends: Unavailable unless discussed
Understanding Your Value
When you start freelancing, you'll likely say yes to everything.
Then you learn to say no. You learn that your value isn't in your availability, its in your expertise.
Pricing Your Work
Don't compete on price: Compete on value. Cheap clients are often the most demanding.
Know your numbers: Calculate your actual costs; this includes taxes, health insurance, equipments, software, time off.
Value based pricing: Sometimes hourly doesn't make sense. Charge based on the value you deliver.
Raise your rates: Regularly. As you gain experience, your rates should reflect that.
Your rate is not just about money. It is about the respect you
have for your own time and expertise.
The Reality Check
Freelancing is nott easier than a traditional job. It is different. You are still working. You still have deadlines. You still have responsibilities.
The difference is: they are yours.
You choose the projects. You choose the clients. You choose your path.
But with that choice comes responsibility.
What You are Really Signing Up For
- You are the CEO: Strategy, planning, business development
- You are the sales team: Finding clients, proposals, negotiations
- You are the accountant: Invoicing, taxes, bookkeeping
- You are the developer: Actually doing the work
- You are the support team: Client communication, maintenance
It is a lot, but it is also empowering.
The Trade offs
Every choice is a trade off.
The trade-offs of freelancing: freedom comes with choices
Stability vs. Flexibility: Traditional jobs offer stability. Freelancing offers flexibility. You rarely get both. At least, in the current stage that I am in, that is what I have experienced.
Security vs. Freedom: Regular paychecks feel secure. But is it security or the illusion of security?
Comfort vs. Growth: Staying in your comfort zone is easy. But growth happens outside it. There are plenty of opportunities where you will have to work outside your comfort zone, and that is something you cannot avoid. That is where the real fun lies, you get to learn constantly, gain new perspectives, and understand how things work beyond just engineering and code.
There is no right answer. Only the answer that fits you.
Some days you'll question your choice. Some days you'll celebrate it.
Both are valid.
Setting your space & workflow
The most successful freelancers I know are not the most talented, rather they're the most organized. They are constant learners who adapt quickly to changing needs and continuously level up their skills.
Workflows that worked for me
Here are some things that have become essential to my workflow, making daily planning and execution much smoother.
Project Management: Track your projects, deadlines, and tasks. Use tools like AppFlowy, Trello, Notion, or a simple spreadsheet.
Time Tracking: Know where your time goes. It helps with pricing and identifying time sinks.
Invoicing: Automate it. Use tools that handle recurring invoices, reminders, and payment tracking.
Documentation: Document your processes, common solutions, and client preferences. It saves time.
Contracts: Have templates ready. Customize as needed, but start with solid foundations.
Note:
I use self-hosted open-source tools that have significantly improved my
workflow. I plan to write about these tools in a separate article.
Learning to Communicate
Communication is everything in freelancing. You are not just building products, you are managing expectations, setting boundaries, and building relationships.
Communication Best Practices
Over communicate: Especially early in a project. Better to share too much than too little.
Set expectations: Be clear about timelines, deliverables, and what is included (and explicitly what is not).
Document everything: Meeting notes, decisions, changes. Written records protect everyone.
Be proactive: Don't wait for problems. Check in regularly, share progress, flag issues early.
Know your audience: Technical details for developers, business value for stakeholders.
Freelancing: Usain Bolt or Mo Farah?
Freelancing isn't a sprint. It is a marathon.
You will have good months and bad months. Good clients and bad clients. Good projects and projects you would rather forget.
Marathon, not a sprint; Usain Bolt runs fast but Mo Farah runs far
But if you stick with it, you build something valuable:
- A reputation: Your work speaks for itself
- A network: Relationships that open doors to new opportunities
- A portfolio: Proof of what you can do
- Independence: The ability to choose your path
Is Freelancing Right for You?
Not everyone should freelance. Not everyone shouldn't.
The question is not: "Should I freelance?"
Rather, the question is: "What do I want?"
And are you willing to pay the price for what you want?
Signs It Might Be Right
- You are self motivated and disciplined
- You are comfortable with uncertainty
- You enjoy variety in your work
- You are good at managing your time
- You can handle the business side (sales, admin, customer relationship etc.)
Signs It Might Not Be
- You need structure and routine
- Financial security is your top priority
- You prefer working in teams
- You do not want to handle business tasks
- You struggle with self discipline
There is no shame in either path. The goal is to find what works for you.
Conclusion
Freelancing is not freedom from work; rather it is freedom in work.
Your projects. Your clients. Your time. Your life.
And that's the point.
Not escaping work, but shaping it to fit your life.
It's not easy. It's not for everyone. But if it's for you, it's worth it.
I know this has been a longer post than expected. If you got this far, I appreciate
your patience and thank you for your time.
If you are considering freelancing or already on this path, I hope these insights help. And if you have your own experiences to share, I would love to hear them.
If you like the article, hit the like button, share the article and subscribe the blog. If you want me to write an article on a specific domain or technology, feel free to drop a mail at shravan@ohmyscript.com
Stay tuned for more.
That's all for now. Thank you for reading.
Signing off until next time.
Happy Learning.






Top comments (0)