YOU (PROBABLY) DON’T NEED FRONT/BACKEND ENGINEERS
When I am asked to help with interviews I hear a few common threads.
We’re looking for a backend loop
We're looking for a frontend loop
In most circumstances this is counterproductive and will cause pain down the road. Instead of hiring for frontend/backend engineers you should be hiring for either a specialist or a generalist.
THE THREE PRODUCT CATEGORIES
Software products can be generalized into three product categories. A luxury good, tool, or complex solution.
- Luxury Good: The customer is willing to pay for a premium experience to a solved problem.
- Complex Solution: The customer cannot adequately solve the problem themselves and needs to outsource the work.
- Tool: The Customer wants to outsource solving a problem rather than deal with it themselves.
The vast majority of products are tools, which don’t require a specialist knowledge. Unless you are building either a luxury good or a complex solution hiring a specialist should be the exception rather than the norm.
LUXURY GOOD
Luxury goods don’t solve any critical problem, instead, their value comes from the experience that they provide. Luxury goods are often times accompanied by cheaper, more pragmatic alternatives. These alternatives work equally well, but trade the premium experience for utility. A premium experience will require a specialist to execute well. The automotive equivalent here would be something like a Mercedes-Benz CLS (just think luxury car). Similar performance compared with something more affordable, but nowhere near the performance of something like a F1 race car. Instead of optimizing performance or utility, it optimizes experience and ease of use. Great features. Great service. A good example of this is Things todo list app (disclaimer I don’t use this personally) which comes across as a luxury todo list. Most todo lists replace a pad and pencil, or the free notes app you get with most phones, but if you want a really good looking UI and a better feature-set. You can pay $20 to get this on your phone or $50 to get it on your laptop.
COMPLEX SOLUTION
Complex solutions are niche by definition, but revolve around providing software that abstracts one or more technically difficult concepts. Complex solutions are after all, complex, and therefore require specialists to execute well. The automotive equivalent of a complex solution is the Formula 1 race car. Only 20 people in the world need this car. It is neither cheap nor easy to drive, but is one of the fastest, most maneuverable vehicles to ever be made. A more relatable example for software would be identity solutions. One could spend the time to understand best practices for username and password handling, implement encryption for transfer and storage of passwords and tokens, setup endpoints for 3rd party OAuth integrations, and maintain this system indefinitely. Or you could pay a fraction of that cost to have someone else do that for you and move on.
TOOL
“If the problem can be solved with money, it’s not a problem. It’s a cost.”
Tools solve a real problem, but do not require specialist skills to accomplish, Their goal is to alleviate a pain point at a practical cost. They are more practical than a luxury good, but not as difficult to execute as a complex solution. The automotive example here would be a Subaru. Safe. Reliable. Affordable. This gets you from point A to point B and stretches your dollar as far as it will go. It is also, of the three choices listed here, the best fit for 99% of the market. Examples in this space are practically endless. Turbo Tax, Better.com, HostelWorld, Fitbod, Uber, etc. You use Turbo Tax because you want an easier way to file your taxes, and you use Uber because you want a more convenient way to hire a Taxi. Most businesses understand that buying a solution that needs to work will be much cheaper than building said solution, and maintaining it indefinitely. Particularly, when it’s not what’s generating value for your business. Hence, whole businesses have developed around providing these tools to you as a service for minimum hassle. The main differentiator between a tool and a complex solutions is that a complex solution offers a product that the customer is incapable of providing adequately for themselves, whereas a tool is something the customer simply doesn’t want to deal with. You’re not incapable of filing your own taxes just as you’re not incapable of calling the number of a taxi company. Turbo Tax and Uber simply make this process easier
HOW DOES THIS AFFECT HIRING
If you are developing a complex solution you’ll need specialists. A complex solution will require an engineer that understand intimately how to squeeze every last bit of performance out of the tools that you are using. This includes your tech stack as well as your infrastructure. Likewise, if you are developing a luxury good you’ll also need specialists who has the skills to design and execute on a truly top notch experiences. If you are building a tool your main concern will be to move as quickly and efficiently as possible. You’ll want someone well rounded who will be able to address problems that arise, can work on most parts of your product, and can operate more or less autonomously.
WHAT COULD GO WRONG
This is important because as a business you want to get as much done while spending as little money doing it. Hiring specialists into roles that can’t hope to leverage their skillset causes two major problems
The specialists skillset are not leveraged
Employees of different disciplines become isolated and are unable to operate autonomously
LEVERAGING SKILLSETS
Everyone wants to grow within their craft. Specialists, by definition, have sought depth in their profession and so will naturally wish to expand upon this. Generalists, on the other hand will likely see to fill out gaps in their knowledge of the whole system and seek more limited depth depending on their interests. Specialists thrive in organizations that offer depth, like luxury goods or complex solutions. Tools, on the other hand, offer breadth. Hiring too many specialists to an organization that provides a tool as a product will cause problems because you will not be able to provide the depth that specialists seek. This leads to declining morale, which leads to churn.
EMPLOYEE ISOLATION
Frontend/backend divides naturally entrenches frontend/backend structures, both within the tech stack as well as within the organization. This leads to divided toolsets, workflows, and cultures. At this point the most optimal solution to a given problem can become obscured because you’re pushing through cultural boundaries. In order to work full stack engineers need to onboard multiple times within the same company. Many may opt to not to bother (either consciously or subconsciously). As you grow these divides will become increasingly entrenched, and projects of any complexity will become increasingly costly.