I've been working as a developer for nearly four years now. I still remember when I got my first job as a developer, it was such an amazing feeling. I was literally getting paid to do what I loved and was passionate about. Since then I have worked on a huge variety of jobs, either for companies in my home city or freelancing for clients all over the world.
Usually I would work all day from 9-5 in an office and then come home and moonlight from around 7-10 or 11 at night. The pay was great and the experience was absolutely worth it, but I've gotta say, there's no way it's possible keep this up for long.
After six months or so of working like a dog, I would slowly begin to burn out. Things would get so frustrating to the point where I resented my work and felt trapped in a sea of never ending tasks.
It's always been hard for me to let clients go as I hate disappointing people. But as a sole contractor I only have so many hours in the day. Now that I've gotten to the point where I feel relatively comfortable on most technology stacks, I feel like there is greater opportunity for me to pick and choose.
This is important for a few reasons: one, I can find work that I am actually interested about. This could be a modern tech stack (think Vue, React, Node, ES2016+) or it could be a company who's mission and values I believe in. Both of these things are very important to me nowadays.
Secondly, the benefit of "moving on" also comes with the potential to charge more for your time. When I started out I was incredibly cheap, mainly because I just wanted to gain valuable experience. I was also afraid of touch big, hairy codebases and making mistakes. However, now that I've got a few years experience under my belt I now know that everyone makes mistakes. Bugs are part of the job. If you know how to squash them quickly and efficiently then you're at a huge advantage for your clients or company.
Charging a higher rate makes sense when moving on from client to client because you have a fresh history. But it's also possible (and recommended) when you start to get squeezed for every hour in your day. That's recently happened to me. I was forced to write to my older clients and inform them that my rate had to increase 50% purely because I've only got 40 hours in my week and need to maximize every single one.
Luckily, it went well and there were no issues. But you know what, even if they said no, then the ball would still be in my court. Developers are in such high demand at the moment so it's incredibly easy to put some feelers out to my social networks and get a response. Alternatively, platforms like Upwork and Freelancer have such a high volume of work that you could easily have your next 5 years booked.
So, in essence, to sum it up, here are a few pointers I've learned over the past four years:
- Work hard in the beginning and dip your feet in a variety of different technologies. Get a feel for what you like and don't like.
- There will come a time where your work will no longer seem like fun. That's only natural when your "passion" moves from a hobby to a career.
- When that does happen, be sure to take a breather and reassess what you want to achieve. Maybe it's time to change companies, or maybe you should build your portfolio thus far and start freelancing, or maybe you move to Thailand and live cheap, work on a side project or freelance as a digital nomad.
- Charging more for the hours you work is a natural progression and should be considered every six months to a year.
- Working on a large piece of software at a company will yield you a more stable and predictable work environment and income.
- Working for an agency or freelancing will be erratic, and testing. Clients can be needy and working at odd hours in the day or night will likely happen.
- Always think about how you can Level Up. Whether it be learning a new programming language, design tool, or framework. Have a roadmap of where you want to be, what you want to be good at and why. Knowing this allows you to confidently charge more as your skills progress and opens up greater options for a wider variety of jobs in different industries.
They key is to keep your passion exciting and not burn out 🧨. Trust me, it sucks and makes you resent your job and your life choices. Just be sure to take a time out from your day job to also work on actual things you're passionate about. That helps me remember why I started.