To choose the right company for yourself can be really difficult, because each company is different. Of course it makes sense to read the evaluations of companies on websites like glassdoor or ask people who are already working there. But as a first step you need to figure out what kind of company are you looking for.
I tried to set up four main categories of the software companies. Not all the companies are fitting 100% into one category, some of them are overlapping between multiple categories. I tried to cover the four most typical type of company, describe how are they to working, what are the advantages and disadvantages of them. This is mainly written based on my personal experiences and experiences of friends.
Let’s see the four big categories:
The multinational company
There are several well-known multinational companies all around the world which are working with software developers. Their main focus is not always just software development. Most of these companies are well-known, so if someone is asking you where are your working you can proudly tell the name of the company and everyone around the world will know it.
These companies are usually to really directed by one person, in a lot of cases the one who established it already died years ago. The same company is usually present on multiple continents and in multiple countries. Some of these companies were either startup or family business at the beginning.
Advantages of at a multinational company:
- Salary over the average
- Connection with people all around the world
- Well-defined processes
- Good opportunity for specialists to go deep into a topic
- Option for travelling
- Good company events (Christmas party etc.)
- High variety of trainings
- Long future at the same company
- High bureaucracy
- Quite often it is difficult to change to new technologies and new topics
- Usually the work is done in big open-offices, which can be stressful
- Strict due dates
- To high manager/developer rate
- Often not enough space for new ideas (you need to use what is already done)
- These companies are often stucked to 20 years old code base
A startup is a new company with a new idea. At the beginning it is usually financed by sponsors. The successful startups will either become a multinational company with time or they will be simple bought by an already existing multi. The unsuccessful startups will either just go into dept or they will stay as family business.Working at a startup is in my view a bit more than a normal job. You need to believe in the goal of the company and you need to do everything for that.
Advantages of working for a startup:
- New technologies
- Great technical challenges
- Big freedom
- Interesting product
- Uncertain future
- Less focus on work/life balance
The consultancy company
A consultancy company is a software house which is overtaking projects of other companies (most of the cases it is a multinational company). If you are working at such a company you will change your projects frequently, you will work with multiple technologies and multiple code bases. Most of the cases communication with the customer also belongs to your tasks. You can learn a lot of technologies, but the constant changes can be stressful after a while. Your freedom on technical topics can be limited by the customer (you won’t be allowed to make bigger decisions).
One of the most difficult issue for the leaders of such companies is to be flexible enough. Just imagine: your customer which was using 10 of your developers for a project just telling you that from next month you need only a team of 4 developers. You need to plan something for the other 6 developers urgently. Or other way around: all of you developers are busy with projects and a good opportunity is coming where 10 developers should start from next week. This is challenging.
Advantages from developer point of view of working at a consultancy company:
- You can learn multiple technologies
- You can get connected with a lot of people
- You have always new challenges
- You can work for multiple companies without changing employer
- Frequent changes can be stressful
- It can happen that you are sitting without project for a while
- Most of the cases you can not go deep enough into topics
The family business
Not all the companies in this category are really a family business. I mean here the mostly smaller companies which are working on one product or service for long time which has a certain amount of users. The company is not taking big risks and not investing too much into new products, they are just doing the same thing since long. It can be either some web application (like creating really similar webshops) or a mobile application (again nothing really special) or anything else. It is also typical for such companies that they are using some older technology which is working well, so they are not changing it. These companies are usually not really growing. It is ideal for people who doesn’t like stress.
Advantages of working for such a company:
- Less stress
- No needed learning curves
- Good work life balance
- The team is like a family
- It can be boring to work there
- Not all of such companies can survive nowadays
- No opportunity to build a real carrier
I hope you could get some info to start to figure out which type of the companies is really for you.