Dear new developer,
In my experience, four types of companies use software. Software is as prevalent as accounting, so every company uses it in some way.
- Those that sell software to help build software, software product companies. Examples from my career: Oracle.
- Those that sell software, often called product companies. Examples from my career: The Food Corridor, Katasi.
- Those that sell hours or knowledge of developers and other software professionals (PMs, designers, etc). Examples from my career: XOR, Culture Foundry.
- Those that sell anything else and use software to help. Basically almost every other business. Examples from my career: 8z, Phoenix Enterprises.
As a new software developer consider where to seek employment, they each have strengths and weaknesses. It’s worth talking about these so you can find a company that aligns with where you want to go (remember, every place has its warts).
Software product companies
Pluses:
- You are the end user, so having user empathy is easy.
- Software developers are highly valued within the organization.
- Lots of focus on building out higher leverage software processes.
- When successful, these companies have great gross margins and can afford good pay and benefits.
Minuses:
- Developers often start companies like this, so there’s a lot of competition.
- Jobs are desirable, so may have a long interview process with a lot of hoops.
Product companies
Pluses:
- You can go deep into a particular business domain.
- Software developers are key components of such a company’s success, and are treated like it.
- They often have recurring revenue and a business model that allows for good pay and benefits.
Minuses:
- Can be harder to get hired than in other types of companies because jobs are more desirable.
- May be boring to be in same domain for long periods of time.
- May use older technology depending on the age of the company. Legacy systems make money!
Consulting
- You often skim domains, so you can get some variety of experience in different types of businesses.
- Always new projects to be on, often means new technology to evaluate and learn.
- An hour worked is often an hour billed, so your efforts are directly related to revenue.
- If you are looking to go off on your own, these consulting businesses are easy to start (no overhead, no investment in building a product, you just need a laptop and an internet connection and someone willing to hire you).
Minuses:
- As an employee, you need to realize that there is no real exit strategy for the founder(s). Which is fine as long as the founder is still interested in running the business.
- There is limited recurring revenue, which means that the business goes through cycles of grow -> shrink -> grow -> shrink.
- Lots of lots of effort in finding new projects and clients.
- Because of the sales cycle, it is hard to specialize as a consulting company, sometimes you take projects because you have to pay bills.
- Can have tight deadlines and lower profitability, which affects your experience as a developer.
The rest
Pluses:
- Often have stable businesses.
- Software quality and process tends to lower in non software focused companies, making it easier to outperform competition.
- Software quality could be competitive advantage.
- You’ll have the chance to learn about and work in a non software business domain.
Minuses
- Developers won’t be as highly valued at some other types of companies.
- IT/software can be seen as an expense rather than a revenue generator, especially if not affiliated with revenue side of the business.
- Sometimes you may be alone or in the company of expert beginners.
Each of these types of companies has different strengths and can be a good fit for you early in your career. Consider what excites you and what is available in your job market when you make the choice. It’s also worth reminding yourself that since as a new developer you’re judged on potential, any choice you make to go into one type of company or another isn’t permanent!
Sincerely,
Dan