System Design - should I care as front-end dev?

ModernBytesModernBytes
3 min read

Everyone should think like an architect.

At some point, everyone gets to the point in their dev career when they realize that having a wider perspective and deeper understanding of a problem is very beneficial. Wider context helps you to create better solutions and make sure you are actually solving the right problem.

In software engineering, system design sits between requirements and the actual implementation. System design touches topics like

  • High-level architecture

  • Functional and non-functional requirements

  • API design and communication patterns

  • Data modeling and storage

  • Stability and performance

  • Trade-offs between different solutions

It does not matter if you are a front-end- or back-end-focused dev. We will just operate at different depths on particular topics. You can still benefit from learning and practicing your system design knowledge. For example, as an FE, you don’t need to design a full database schema, but you should have a high-level understanding of how the storage that you use through the API works. Mostly, it is about practicing how to turn a complex business problem into a high-level technical solution.

System design is also becoming more and more popular in technical interviews. It is a good way of testing candidates on many different levels: communication, gathering requirements, selecting technologies, and understanding different trade-offs.

In the age of AI, is it still relevant?

I would say it is even more relevant. AI can propose the architecture for you, but you still need to be able to evaluate it. You still need to understand trade-offs and know how to select the right tool for the problem. If you start a project on the wrong foundations, you are setting yourself up for failure.

With tools like ClaudeCode or Cursor, you can produce a lot of code in a short period of time. When you select the high-level architecture and tools properly, you can fill in the blanks really quickly and allow AI to be a developer working for you, but you are still steering the direction of the project.

Also, when VibeCoding, you get much better results when you give AI more structure. But this is a topic for a separate article in the future.

How to practice?

A nice way to practice your software design skills is “Architecture Kata.”

"How do we get great designers? Great designers design, of course." --Fred Brooks

A good model is also to think about the apps you use daily, like Instagram, X, and YouTube, and try to reverse engineer the solutions. You will realize that every simple problem becomes a complex one when you start operating on a bigger scale.

In the future we will go into more system design details, especially in the context of front-end development, as it is much less common in the front-end world.

0
Subscribe to my newsletter

Read articles from ModernBytes directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

ModernBytes
ModernBytes