Developers True Road Map: Horizontal V.S. Vertical Scaling

Alhassen hamdy
3 min readJul 12, 2024

--

Many developers, regardless of their seniority, face the challenge of deciding which topic, tool, technology, or language to learn next. With so many options available, it can be confusing and overwhelming.

You might wonder what this has to do with horizontal and vertical scaling. To make this connection, we first need to understand what scalability is. Scalability is the ability of a system to handle increased loads. There are two main ways to scale a system: horizontally and vertically. Here’s a quick definition of each:

  • Horizontal (out) scaling: Adding more nodes to a system.
  • Vertical (up) scaling: Adding resources to a single node.

To better understand the relation between these concepts and a developer’s learning path, let’s redefine the terms:

  • Let “system” be “software developer’s total knowledge.”
  • Let “loads” be “expectations from a developer in relation to years of experience.”
  • Let “node” be “a software development track (e.g., backend, frontend, etc.).”
  • Let “resources” be “software developer’s knowledge of a certain track.”

With these new definitions, scalability in a developer’s context means:

  • Horizontal (out) scaling: Adding more “development tracks” to a “software developer’s total knowledge.”
  • Vertical (up) scaling: Adding “software developer’s knowledge of a certain track” to a single “development track.”

But the question remains: How can developers create their own road maps, avoid the urge to “know everything,” and focus on what advances their careers?

Let’s say you’re a backend developer who just started your first job. You suddenly interact with teams working with different languages, technologies, and tracks. You start hearing new terms and feel imposter syndrome kicking in. You wonder whether you are a “true” software developer. You go home, open countless browser tabs with all the new things you heard that day, keep them open for months without reading any, until you accidentally close the tabs or your laptop restarts.

My proposed solution for struggling developers is to focus on your vertical slice (backend in this example) and only branch out to other verticals as you become more senior. This way, when you’re ready to lead software projects, you’ll have a solid knowledge base across many verticals, which is essential for any good technical manager.

You can see below for a semi-realistic example for a junior backend developer.

Backend as a first vertical

The developer starts in the backend vertical and should continue to learn technologies and tools in this vertical for at least 1.5 to 2 years. After that, the developer is ready to pursue another vertical. If the developer stays only in a single vertical for too long, they may be outmatched by other developers with the same years of experience. At this stage, companies expect more from developers as they are no longer “fresh.”

When the developer chooses their new vertical, they can select the closest vertical to their already established experience. In our example, the Mobile track has many similarities with the backend track.

similarities between Back End and Mobile Tracks

If the developer’s programming language of choice was Kotlin, for example, they could immediately jump to learning an Android UI framework (which can help in the Front End vertical). This way, the developer uses their past expertise to supercharge their learning speed, making them market-ready faster and a strong competitor.

And you might notice that the arrow still exists in the backend vertical because our goal is to “collect” as many verticals as possible, not replace one with another.

In conclusion, developers should focus on deepening their expertise in one area before branching out to others. By doing so, they can build a solid foundation and gradually expand their skill set, staying relevant and competitive in the fast-evolving tech landscape.

By following this approach, developers can create a structured and strategic learning path, avoid the pitfalls of trying to know everything at once, and ultimately advance their careers with confidence. Stay consistent, stay focused, and keep scaling your knowledge.

--

--