We’re clear about our engineering standard: one-trick ponies need not apply. While it might be a common term in the tech industry, being a Software Generalist is a rare (and valuable) asset. When we speak about a generalist, the ideal is someone who can advance a software project from requirements to release and understands all of the phases within the software development lifecycle (SDLC). Our firm was built by engineers, for engineers – engineers who are savvy and have well-rounded experiences and interests – and consequently know a little about a lot of different types of software. Like the Swiss Army knives of software development, they take on any problem (involving code) and solve it with tools within their engineering arsenal.
“Adaptation is necessary for survival” is nothing new for successful businesses. But as technologies emerge and evolve at an ever faster pace, this mandate for adaptation gets pushed down to the individual engineer. Their mindset needs to be solving business problems, wherein sometimes the technology will be chosen for them (hopefully not a mere flavor of the month), and other times they’ll be empowered to choose the technology. In either scenario, chances are high that they’ll be adopting something new. And in some instances, clients are seeking our expertise to help them determine what stack is right for their product.
As such, our team needs to be well-versed in a variety of products: open source, closed source, AWS, Azure, Oracle, MongoDB, etc. But above all, we understand how to tailor our services to fit what’s best for the client. Our cadre of software developers, testers, and strategists know that being part of the Rivers Agile team means you understand the core principles and practices of software development, as well as how to best implement them. Typically, our devs need to learn a technology (sometimes sight unseen) in a relatively short amount of time and become proficient with it. This is all part of our process here at Rivers Agile – solving genuine business challenges by delivering custom software solutions.
Sometimes, that means we need an expert resource, like a senior developer with intimate knowledge of a legacy system. But more often than not, we need generalists. An experienced generalist will have various technologies in their portfolio and they won’t be someone ‘set in their ways’. They’re a chameleon, but that does not mean a generalist can’t have a specialty. It’s the ability to take those acquired skills and compound their experience into a cohesive familiarity. That familiarity comes with an understanding of their own strengths and weaknesses, i.e., when to pull in a specialty resource like UI/UX, CRM, ERP or CMS experts.
So, what do we look for in an engineer? Someone who:
- Has a good foundation (core principles and practices)
- Writes clean, readable code
- Has a sense of humor and an adventurous spirit
- Has a pragmatic approach to problem solving
- Is creative and takes pride in their work
With the growing number of stacks and languages, generalists may feel like they’re running a hamster wheel but not going anywhere. But in reality, there is a world of difference between a generalist developer starting their career and a generalist developer with many years of experience. Versatility and flexibility are commonalities; wisdom and experience are differentiators. There’s nothing wrong with calling yourself a full stack developer, and then picking a few favorite stacks. It’s just not possible for everyone to know everything.
The best quality of a generalist is knowing WHEN to specialize. Definitely work on building a comprehensive skill set of best practices, algorithms, data structures, different architectures, front-end, back-end, databases, etc. as you can never go wrong with a good foundation. And take time to specialize, when appropriate. Even if a particular skill doesn’t seem transferrable, in the long run, the process will pay off for further developing your abilities and make the next specialization just that much easier. These learning opportunities will help build a resume quickly as well as help you discover which technologies you love (or hate). You’ll wear many hats as a full stack software developer, but remember one of the hallmarks of being a generalist is adaptability.
If you think you fit the description of a Software Generalist, we want to talk to you. Apply today via our Careers page!