The programming industry is changing rapidly, heavily influenced by world events like Covid-19 and as terrible as it is to say; there's no better time to be a Software Developer. Many of us grow our careers involved with businesses as employees, often dreaming of getting a job at a FAANG company and retiring early but there's another path that I think makes far more sense for many of us and I believe that the more industry experience you have the better suited you are to branch out in new directions that could be less stressful and more rewarding. Self employment is, I believe, something that every experienced developer thinks of during their career. The dream of "working for yourself" is real in many industries but what sets this one apart is that it's extremely easy to do so and it can be more rewarding than working for any company both financailly and mentally.
Being Your Own Boss
Self employment simply means that you are working for yourself, you are your own boss in a sense, you still can work on projects for other companies or you can work on projects for yourself. Now I think that many people think of self employment as working on your own projects which is really hard because you will have to develop your product, market it, etc. or hire teams to help you. This requires pretty extensive capital which not everyone has the ability to obtain. My advice for people seeking self employment is to work on projects with other companies in order to generate capital to work on your own projects or simply work for others part time using your free time to work on your own projects as well.
Working on projects with other companies is nearly the same as being an employee with that company but instead of going through all of the hellish interview processes that exist around the industry now you can simply bid a contract, show your skills and get to work. If you don't like the work you can just do something else.
There's a few really cool points here that will make this seem more interesting and less formidable to the average developer:
- You set your own hourly rate. Within reason of course, but typical rates for "freelance" or hourly billed projects you work on yourself are in line with industry rates for salary work and are often times even better.
- You set your own working hours, want to work part time? You can. Want to switch it up mid year? You can. Want to take on extra projects and run yourself into a burn out and then vacation? You can. Your only responsibilities are the projects you have ongoing.
- You choose where you work. You can travel and be a digital nomad, you can chill at home and work from your bedroom, it doesn't matter. It's like working from home but without needing to ever visit an office. As long as you have an internet connection you can work. Hell, you could get a boat, install a Starlink setup and work from the water if you want.
- You choose what to work on. You don't have to work on anything you don't want to. You can pick and choose projects in industries you enjoy and you can contribute to projects you like instead of having your work handed to you by a company that doesn't care about your thoughts on the matter.
- You choose your own co-workers. If you are interested in a project for a business you can interview them as they interview you, and if you don't feel like a good fit or if there seems to be a harmful work enviornment you can skip it. You don't have to worry about a company hiring people you don't fit with or changing the culture in ways that makes you uncomfortable.
- You can manage and mitigate burnout. Since you can choose your own hours and your own projects you can really avoid burnout which is a serious but not often discussed problem in software development. Software development is extremely mentally demanding and trying to manage your work with other life stressors is very difficult and will lead into burn out crazy fast for most people.
- If you find a team of people you really like, often times they will want to hire you on so if you're feeling good about what you're doing and want to get back into the employee work you can do so pretty easily with far less risk.
With this comes some drawbacks though which mislead many into believing they can't do this but the most common arguments against self employment are easily managable and become easier with time and experience. Some common arguments and solutions are:
- You manage your own taxes. Taxes are hard for everyone, it's far more difficult when you're self employed but there are many places that can assist you with your financial health including your taxes. It's an expense for sure, but not a large enough expense that it should push you away from the idea of self employment. The difference in earnings going self employed will likely make up the difference here anyways.
- You manage your own retirement. The thing is that your company plan is probably not the best anyways. It generally makes more sense to utilize your savings in other ways to generate a greater return on investment especially in today's ever evolving financial enviornment. You have to be more cautious with what you choose to do but it's not hard to learn, and development being an ever learning career it's probably not complicated enough for most to disuade them.
- You manage your own insurance. Insurance is expensive (at least in the US), and you're probably paying for it already, albeit not as much as you will be self employed. The thing is that you can pick and choose which insurance plans you want for yourself and your family if you're managing it yourself which is a pretty huge benefit.
- You have to deal with clients that are not always good clients. This is unfortunate but it happens to everyone, luckily you can typically weed out bad clients before you decide to do work for them. You just have to make sure that you spend some time getting to know them, the project and what's expected from you. It's better to be up front about your expectations and listen to theirs than to jump into something unknown.
How To Get Started
You can begin your journey into self employment in many ways, but here's the path that I would suggest for developers that are interested but unsure about it. This assumes that you have already been working in the industry for some time and have some professional experience under your belt. Previous experience will help immensely regardless of which path you end up taking just as it does in the corporate world.
You will also need some work that's published in order to give examples of what you can do, including code in places like Github. Potential clients come in all shapes and sizes, many of them are technical people themselves and apprecaite getting a look at what your code quality looks like and your process for development. Github provides a great platform to showcase your code and other related skills such as continuous integration, testing and automation.
With that said, here's an outline to help if you're interested in taking this path or if you just want to poke around and see what's out there for you.
- Make sure your public resources are up to date and available such as code on Github, projects in the App Store, etc.
- Make sure your Resume is up to date. As always, you will likely need to send this to clients as a proof of work history.
- Register in freelance markets such as Upwork. Many of these Freelance markets have one big problem and that's that they are almost entirely based on reputation within the market place itself. What you can do though is fill out your information very thouroughly and then when you send proposals send along your LinkedIn, Github, personal websites, etc. and make sure to let people know that while you're new to the market place you're not new at software development.
- Network in markets, LinkedIn, and even locally. You would be surprised how much work is available in many local markets from people that are not sure how to hire people to build things for them. You can print out business cards on Canva and pass them out to people who sound interested.
All of these things you can do while you hold a full time position with a company which I believe is the right move. Work on your own business nights and weekends if you can and then if/when you're ready and confident enough you can transition into self employment full time just by picking up hours to cover your old ones or whatever you're comfortable taking on.
I don't think that self employment works for everyone but I see that the industry has been evolving into a work from home focused enviornment and many people are reluctant to return to the office now that they have seen that working from home is not only possible, it's much easier. I think that now more than ever it makes sense to give self employment a try, most people would probably be much happier and more productive if they can manage themselves and focus entirely on creating projects they like working with people they like.
What's your take on self employment? I'm interested to hear thoughts on this. I've recently done this transition myself and so far it's been a fantastic experience. I hope that others will find this useful as well.