Photo by Callum Shaw on Unsplash
Last year around August 2020, I decided to leave my full-time job and started looking for a new job and decided to work as a full-time software consultant. This blog covers how I ended up getting the opportunity and what I learned over the last year.
How It started
I started looking for a new job in the middle of a pandemic. I was lucky to have a fully remote job just before the pandemic happened, thanks to my friend Serkan, who referred me. But it ended up being a short gig, and I decided to leave and was wondering next. Going as an Independent consultant was not in my mind at that time; looking for a new job is always exhausting, but I did some work I was proud of concisely.
I decided to know my network on Twitter that I am looking for a full-time remote job.
I got some initial leads, but many never went after the first call due to salary constraints. That gave me an idea of starting to work as a consultant to ask for hourly pay, work on my own time, and provide enough time for my community work.
My first client
Around August, I received a Twitter DM from my friend, whom I met at a conference a few months ago. His team was hiring, and they were looking for someone to guide the developers and help improve the existing framework they built. After our first call, I was pretty excited to impact the team as creating and enhancing a framework was something I had done in the past with Deutsche Bank.
We had a few more calls to work out on financial and work mode, as this was the first time the team was hiring someone to work as a consultant, and it was also my first time. But we finally reached the agreement, and I could choose how many hours I wanted to work, max being 40hrs a week.
First week working as a Consultant
My first week went into doing almost nothing, as I was still waiting for my laptop, but my friend called me, and we discussed a critical issue. Luckily, I went through a similar problem in the past to get the issue sorted. And in the next few months, we worked together to resolve many critical issues and fixing many performance issues the team was working on. I was also able to help the team write better code and adopt rxjs
more.
I made a good impact on my team and my managers and even got a shout-out for fixing those critical issues. And one great thing I found was that my managers cared about the team, and they wanted every individual to grow into their career. I decided to let my manager know that I appreciated this in my first one-on-one call, and I hope to work with this team for a longer time.
Becoming Indias First GitHub Star
After joining my first client, within the next 15 days, I became India's First GitHub Star and gave me more visibility into the community. I started getting more opportunities, and now rather than reaching out for work, companies wanted to with me. I had to say No to many as dont wanted to take more work and burn out and focus on my first client.
Getting My Second Client
As I mentioned, I was getting many opportunities, and I was saying no to many, but there was one DM on my Twitter which I couldn't ignore. It was from a CEO of a billion-dollar company growing a lot and had some excellent fundings in the past few months. The opportunity was full-time, but I dont want to miss this, So I asked him if I could work part-time; the location was not an issue, and it was a fully remote opportunity. And to my surprise, he agreed, and within the next four days, we signed the contract, and my journey with a US-based billion-dollar startup started.
Note: As I am under NDA, I cannot disclose my clients.
My learnings from both client
Dont rush to get your first client: I worked for a client for a few hours before getting my first client. It didn't work out; the client was too pushy, and we didn't sign the contract, and there were so many red flags, so I decided not to work with that client and deiced to wait till I got a better opportunity.
Know your worth: While working as a consultant, one crucial thing is not to undersell yourself, do the market research, and know your value before committing to some client. I knew I could make more being a GDE and GitHub star and having a good presence in the community. So whenever I a get a new opportunity I try to quote 50% to my next client than my previous client. I said no to few initial clients where I was undervalued.
Trust is everything: Making your client trust is essential, discuss issues and be open as much as possible. I keep it open if I am struggling with any problem, and I discuss it with my teammate, and sometimes we call to check the problem, which makes bonding stronger. Once, I was struggling to give much time towards my community work as I was doing live stream often, I decided to work for four days a week, as gave this idea to my manager in my one-on-one call, he was supportive of the idea. He said, why not utilize my two paid days first and see if thats enough and if you still think you need to do four days a week, go ahead, and believe me taking those two paid days worked. Such an instance is what makes you trust your team more.
Take the tasks to finish line: Everyone struggles to make things work, and there are times you want to give up. It happened to me too. There were multiple instances where I started thinking that I didn't know anything, the issues I was working on took a long time, and it was not under my control. I almost broke down in both instances, but I reached out to my Team leads and discussed with them. They appreciated what I was doing as I had taken the lead to get those issues sorted, and even received appreciation when I completed those tasks, and they were happy that I took it to the finish line.
Try to focus on your strong areas: When you work on a large enterprise application, there are many things to do, don't try to do everything. You already know your strong points; focus on that. After starting with my client, I quickly let them know that CSS is not my strong point, I rarely get those tasks, and cherry on top, my clients, has a CSS expert. I started focusing more on things where I had strong knowledge like perf, bundle optimization, build optimizations.
Don't take too many clients: When I was planning to start consulting, I had a good discussion with my friend Martina even did an episode on my Talkshow Freelancing I learned so many things on how to work as a consultant, and the important thing was not to take too many clients, as you won't be able to focus on multiple clients. I took two clients and have been working with them for a year now. I have the opportunity to get my contract extended for the following year.
Hire a CA for handling your taxes: Taxes are one difficult part as in India, you need to get a GST number. I am thankful to Neren, who connected me to a CA who helped me with the entire process and handles my taxes now.
Some questions which I received on Twitter
-
How do you find it different than the regular full-time job?
- In my regular full-time job, I always had some deadlines and had to keep myself away from big refactors. Working as a consultant, I present my idea or improvement for every quarter and make sure they don't block business as usual, as my clients also understand they are not paying me to get involved in BAU (Business As Usual) tasks.
-
Does it offer better compensation?
- Yes, you can ask for better compensation. I went on to make 2.5x of what I made in salaries a year ago.
-
Does it offer better learning opportunities?
- Yes, it does. You get to face many perf issues, build optimization, and other challenging tasks that you don't get to focus on early on in a project.
-
Would you recommend it for devs who are early in their career?
- Don't rush; start when you think you are ready.
-
Making the switch into full-time consulting requires experience/connections in the industry, right?.
- It does require experience in the technology you are using, connection helps, but GitHub is a fantastic place. You can get tons of opportunities by being active on GitHub. I prefer to work with people I know.
What's Next
In the future, I want to work as a Developer Advocate one day for Microsoft; thats my dream job. You are wondering why I want to move from being independent to working for someone?
I love to teach, do open source; having a full-time job makes it difficult. I even gave up live streaming for few months due to burnout. Being a Developer Advocate allows me to do this all full-time, which aligns with my passion.
Why Microsoft?
Thats where my fav Developer Advocates work
John Papa
Wassim
What is a Developer Advocate?
Don't worry if you have this question. Wassim and I did a live stream.
I had to put my dream job search on hold as there are not enough opportunities in India. But I will be there after two years until I have these contracts to learn and grow.
Conclusion
I am delighted with my clients as they appreciate the work I have been doing and have faith and trust in me. I am even more thankful to the amazing teammates, I hope I could tag them, but under NDA, it becomes problematic. I want to work with them as long as I can. The team understood my strong points and tried to utilize me in those specific areas more.
I love to enjoy giving back to the community, and being independent gives me enough time and money to get involved in the community. Till the time I get my dream job, I will be into consulting. And no one knows what the future holds for you, So if there is anything new, I am sure you will be the first to know; keep an eye on my Twitter handle.
Top comments (5)
Thank you for sharing your story! I found it inspiring and educative.
If you don't mind me asking:
Hope this helps, let me know if you have anymore questions.
Nicely written. Thanks for sharing the experience. Enjoyed it.
Thank you π
Nice! π―