Choosing the right company for you – part one
Size of company
The size of the company makes a significant difference in terms of roles, responsibilities, career opportunities, working dynamics and so on. There is no right or wrong size but you do need to find what works for you because both larger and smaller companies have their advantages and disadvantages:
Advantages of a larger company:
- Structured career paths
- Mature HR procedures and policies
- Financial stability
Disadvantages of a larger company:
- Rigid, bureaucratic and inflexible systems
- More impersonal
- Less room for visibility at the top and more layers of management approval required for every decision
- Positions are clearly defined and developers are often pigeonholed into specific areas of the technology stack and software development life cycle
Advantages of a smaller company:
- Greater opportunity for visibility by top management
- Higher chance of becoming involved in all areas of the software development life cycle as well as all layers of the software architecture
- More flexibility and it is typically easier to get buy-in for and implement change
Disadvantages of a smaller company:
- Slip-ups and weak performances are more visible by top management
- May not be financially stable
If the company primarily focuses on consulting, have a look at its website to see if it has a track record listed. Read through the most recent releases and gauge the type of work and technologies on which the company focusses. See if the type of projects listed are in line with what you envisage yourself doing. Look, too at the technology stack used in these projects. Then ask yourself the following questions to get a measure of the company’s health and suitabliity:
- Is the company making use of the latest technologies and tools?
- Does the company work across a variety of industries and technologies or does it specialise in certain fields?
- Is the company doing recurring work for the same clients?
- Is it growing its client base?
Mentorship is an integral part of a developer’s growth. For a developer to accelerate his or her technical growth, he or she must be working with stronger developers. This is critical to laying the foundations of good software practices that will live with a developer throughout his or her career.
Training is just as important for the accelerated growth of a developer. Do some research and ask around to gain insight into the company’s training policies. The company does not always need to send you to expensive external training sessions – sometimes, self-managed internal training sessions are more beneficial. These sessions are presented by senior representatives of staff and have the advantage of being relevant to the current industry trends. The sessions are usually run throughout the year, which can be far more useful than attending a three-day course once a year.
In part two of “Choosing the right company for you” I’ll take a closer look other determining factors, including the company’s growth, reputation, culture and values, as well as issues surrounding staff, such as management and staff turnover.