Understanding & Hiring Generalists

What is a Generalist?

Generalist is a catch-all category that describes an engineer who knows how to program and has some knowledge of Computer Science fundamentals like algorithms and data structures, but who hasn’t specialized in writing software for any one platform. For example, engineers who recently graduated from an undergraduate CS program would fall into this category. More experienced engineers who have worked in a wide range of areas throughout their career might also consider themselves generalists.

What skills are required to be a Generalist?

As the name implies, generalists should have broad knowledge that can be applied to a wide range of problems and technology areas. They will have some knowledge of basic algorithms and data structures, and proficiency in writing code in at least one programming language. Beyond that, additional knowledge in any of the other particular programming areas would be a plus.

What is the role of a Generalist?

A generalist isn't necessarily a common role by itself, but generalists can be successful in any number of programming roles. Their strong programming foundation should allow them to pick up the specific knowledge needed in other areas and become productive quickly.

Generalist archetypes

Architecture-Design Focused Generalist

Archetype

This is a generalist engineer. They may have a variety of different technical backgrounds (back-end, systems, etc). Regardless of specialty, they have a strong focus on software architecture. They write clean, modular code. They do very well on software / OOP design problems. And they reason well about the interactions of complex systems.

CS-Math Focused Generalist

Archetype

This is a generalist engineer. They may have a variety of different technical backgrounds (back-end, systems, etc). Regardless of specialty, they have strong abilities in math, statistics and computer science. They are comfortable talking about complexity analysis, perhaps including esoteric topics like whether radix sort has complexity less than O(n log(n)). They solve hard mathy programming problems for fun.

Productivity-Focused Generalist

Archetype

This is a generalist engineer. They may have a variety of different technical backgrounds (back-end, systems, etc). Regardless of specialty, they have great productivity. They follow an iterative process. They are a coding machine. They are a move fast and break things programmer.

Browse all engineers