Let’s start by generalizing / categorizing programmers – it’ll be faster this way.
There is usually 3 types of programmers
Common programmer personalities:
- The 9-5 programmer:
- In blunt terms, has an IRL and responsibilities to fallback on. Once 5 o’clock hits, wouldn’t think about coding until 9AM the next day. Qualified, just won’t contribute to open source GitHub projects on a Friday night.
- The business-minded programmer:
- Wants to build the best product he / she can and make users happy. Understands end users don’t usually care about the version of Angular used on the project (shame).
- The craftsman programmer:
- Wants to continuously be a better programmer he / she was yesterday. Cares deeply about the technology stack and methodologies applied on projects, so much in fact that it ends up being one of the deciding factors when time comes to look for a new job opportunity.
It isn’t unusual for a developer to be a blend of the three types of programmers with a temporary predominant personality determined by their mood, night of sleep, yesterday’s beers, shower thoughts and whatnot. However the constant predominant is consistent.
Where they fit
Company cultures where these programmers will thrive:
The 9-5 programmer fits very well in bigger organizations with solid structure and processes in place. Taking work home or working longer hours is often not an option for this type of candidate and unfortunately lack of structure and processes leads to 40+ hour work weeks.
The business-minded programmer is versatile. Most employers REALLY like a business-minded programmer because, well, they understand the business constraints and really want to get the job done to the best of their abilities, with the tools and time they have. This type of candidate is usually technology agnostic as long as it isn’t too outdated.
The craftsman programmer will often be dissatisfied with a hectic startup environment as an early stage startup’s goal is building an MVP and SHIP TO PROD, NOW. The early stage startup won’t really care about using
ternary operators instead of
if / else statements. Code beauty and maintainability isn’t top priority here, delivery speed and performance is. This type of programmer would fit right in at well organized small medium enterprises (SME) with a strong engineering culture.
Open mindedness and adaptability will take you a long way
As a software engineer, you must expand not only your technical knowledge but also your understanding of the business side. Once again, cold hard truth is users don’t care whether you’re writing an SOA application with a Node.js backend or a monolith in PHP 4. As long as the end user has a smooth experience the technical details of your craft don’t matter to the user. You know, kind of like you don’t really care about the engine in the tractor that plows your driveway.
End users simply don’t care about your technology stack
If at this point in your career you’re either looking to acquire as much knowledge as possible, perfecting your craft, or have responsibilities and time consuming interests outside of your developer job perhaps an early stage startup isn’t the best call for you. Yes, in case you didn’t see this coming, the business-minded programmer wins this one.