As developer we are different and we like different kind of challenges. Some of us likes to concentrate only on the technical part of the development, other ones like have an overview on management, sales and marketing topics as well. Up to that what you prefer you have several opportunities to be employed. The scale is wide: from the absolutely employee status until leading your own business. But between them there are several steps which are maybe fitting better for you. In common what I can tell that there are ways to be employed with less freedom. In this case your tasks are simple given to you and you have a fix salary. And there are ways to be employed with more freedom. In such a situation you are also responsible to find the next projects to be done, to find new business, sign new contracts, to communicate to the customer and you have much higher level of responsibility for the successful delivery. Usually in such cases you need to handle multiple topics (development, management, sales, marketing etc.) in the same time, you have a higher risk, but you can also achieve a higher salary. In this article I’m describing you what are the different steps of freedom as a programmer and what are their advantages and disadvantages.
Internal developer at a product/service developer company
I think this is the most comfortable option for the ones who would like to concentrate on the pure development. You are working for a company on their own product or service and that’s it. As advantage you have a fix monthly salary and fix amount of payed holidays. Independently from the success of your projects you get the same money. You don’t need to deal with project contracts etc.That also means that even if the product is really successful and it is earning a lot of money for the company, you are still getting just your salary and maybe a small bonus, which is absolutely not as much as the benefits of the company. So in this case you have low risk, low possible maximum profit. In this case your company is taking the risk (risk of you are producing less as your costs).
Working as external for a product/service developer company
In this working model you are employed by a company, which has a contract with a product/service company. You are working there like the internals of the company, so you are working in their office, together with the internal colleagues of the company, there are certain tasks assigned to you. The product company is paying on a time base for the employer and you have a monthly fix salary. So from salary and holidays perspective it is the same as working directly for the product company. The only difference is that you can be any time moved to an other company to work, based on the needs of your employer. That’s a good opportunity to get familiar with different technologies, processes and working cultures. It is also a good chance to extend your professional network. Here you are still working with low risk for not such high salary. In this case the company contracted with your employer is taking the risk, since your employer is payed time based.
Working at a consulting company, developing service based for different customers
In this case your work is provided to other companies by your employer, but your employer is not payed on time base, but on result base. The price can be paid after each small task or after a whole project. You are always focusing on one project, you are not in every case onsite at your customer. You may work in a team of colleagues employed by your employer. Up to the working culture of your company you can also take part in searching for new project opportunities. You still have a fix salary. In this case you are typically changing projects often, you are working on different topics for different customers. Your risk and potential profit is still low, your employer is taking all risk. In this case your employer is taking all the risk. I think it is a really good position to learn about business without taking any risk. It is a good step before starting your own busies.
Working time based as a freelancer
For me being a freelancer means, that you don’t have a long term contract with a company, you are always just signing contract for a shorter period (some months) or for a project. You are either working at your customer on site or from home. One way of this kind of working is to be payed time based. So you are signing contract for a fix period and for fix price. In this case still the company is taking the risk, but you need to always looking for new projects and for that you need to have a really good reference. That means your previous customers needs to be really satisfied with you to be able to win well-paying projects. To reach here a good salary rate you need to be really good in your area and you need to build up a good marketing for your self. It’s good to take part in open source projects, networking on social portals and technical forums, write your own blog and to write technical articles. Pay also attention on the fact, that in this status you don’t have payed holidays or payed sick leaves and you need to take the costs of all you hardware and trainings. You need to calculate with these costs.
Working as a freelancer result based
The next step of freedom is to work as a freelancer on result basis. That means you are asking a fix price for finishing a certain project or task. If you can achieve it fast you can have a high profit, but if you are going out of time you can also have a really bad profit. In this case you are taking all the risk, but that also means if you are good you can reach much higher profit than as a normal employee. Marketing yourself, networking and searching for new projects is also part of your daily routine. In this case you are usually working from your home or from your own office.
Working as a freelancer on your own product
The idea is here to figure out your own product or service which can be for example a mobile application or anything else. Develop it and try to sell it. In this case your risk is really high. It can happen that your product can not been sold at all, so you are working a lot for nothing. But it also can happen that with a pretty easy program you are earning millions. Just remember on AngryBirds or Facebook. In the case you need to concentrate on topics like marketing, market researching etc.
Leading your own company
The highest responsibility is of course if you are not only responsible for your own work, but also for the work of others. That means if you are building up your own team or company, the company can either build an own product or work for other companies on time or result basis, but you are the one who is responsible to sell their work in a well-profiting way. In this case usually you are not really working as a developer anymore. You need to really focus on sales, marketing and management topics.
Hopefully all of you will find the most fitting way of be employed and if you are getting bored from the current working mode feel free to do a change in your career any time.
(open source and trusted by devs everywhere ❤️)