The Unspoken Advantage of Junior Engineers in System Design

I was asked a question: what advice I would give a junior engineer looking to ramp up in understanding and learning system design. My response was twofold:

  1. Learn how to ask great questions to understand the problem fully, and
  2. Familiarize yourself with as many "building blocks" of system design as possible to see how things connect.

In this blog post, I'd like to delve into the first point.

The Power of Asking Great Questions

The most effective engineers I've seen are those who take the time to read and understand the problem at hand thoroughly and the proposed solutions. They don't rush; instead, they invest time in fully grasping the information they've been given. This deep understanding is crucial for architects, senior staff, principal engineers, and solution architects to develop quality designs that effectively address the stated problems.

Why Junior Engineers Should Ask Questions

For junior engineers, it's not typically expected — especially early in your career — to take an ambiguous request and break it down into an executable design for others. However, those who take the time to fully understand the problem and aren't afraid to ask questions have a significant advantage in implementation. When they encounter obstacles or decisions to be made, their understanding enables them to either unblock themselves or know the specific questions to ask to move forward.

So, what are the main questions junior engineers should have when facing the prospect of designing a system?

This is where I've seen junior engineers hesitate, feeling like they don't have the right to ask questions or fearing they might be seen as out of line. They assume that extensive research has gone into defining the problems and proposed solutions — usually by Product Management, Engineering Leadership, or Design — and treat these as gospel. However, especially in healthy organizations, your input can be critical to the project's success for one compelling reason:

You are naturally the solution's first user.

Because you may have little experience with the problem, you can ask questions as someone with no prior context interacting with the system. This perspective can uncover bugs and issues that "more experienced" people might overlook because they make unconscious assumptions about the user's context. The power of community system design lies in its ability to bring together people with diverse skill sets and experiences to contribute their best to a single design.

Essential Questions to Ask

Now that I've made the case for junior engineers to ask questions, what questions should you ask? Here are some examples:

Notice that these questions focus on understanding the problem and the user, not on technology — except for understanding what has been built before. The cardinal rule here is not to jump into solutions but to spend time truly understanding the problem and the proposed solution. This approach enables junior engineers to:

  1. Understand the solution end-to-end
  2. Grasp the user's issues and considerations

Gaining this insight in every project will aid junior engineers tremendously in understanding and participating in creating system designs. By asking the right questions, you enhance your knowledge and contribute valuable perspectives that can improve the overall design. Don't underestimate the impact you can have — even early in your career — by simply being curious and engaged.

Ready to learn more about system design building blocks? Check out the free preview course or explore Course I: Universal Building Blocks.