System Design Interviews at German Companies: What They Actually Ask

How German tech companies run system design interviews differently from FAANG. Real evaluation criteria, common problems from SAP to startups, and a preparation framework that works in 2 weeks.

A system design interview is a 45- to 60-minute conversation where you design the architecture of a distributed system while the interviewer evaluates your thinking process, communication, and technical depth. It is not about the perfect solution, but about how you structure an open-ended problem, which trade-offs you recognize, and how you justify your decisions.

This guide explains how system design interviews work in the German tech industry, which problems are typical, what evaluation criteria interviewers use, and how to prepare systematically.

What Is a System Design Interview?๐Ÿ”—

Architecture, Not Code๐Ÿ”—

In a system design interview, you do not write code. Instead, you design the architecture of a system on a whiteboard surface or in a shared document. You draw components, define interfaces, discuss data models, and explain how the system scales under load.

The problem statement is deliberately open-ended: โ€œDesign a system that generates and resolves short URLsโ€ or โ€œDesign a chat application for 10 million users.โ€ There is no single correct answer. What counts is your approach, your ability to ask the right questions, and your understanding of the relationships between components.

Why Companies Test System Design๐Ÿ”—

System design interviews simulate the daily work of senior developers. In practice, you spend a large portion of your time making architecture decisions, extending existing systems, and weighing trade-offs between different approaches. No LeetCode problem tests this skill. That is why system design is a fixed part of the interview process at most companies starting from mid-level positions.

In Germany, an additional dimension comes into play: data privacy and GDPR compliance are real requirements that feed into every architecture decision. Interviewers at German companies pay attention to whether you bring up these aspects on your own, especially for systems that process user data.

When Does System Design Come Up in the Process?๐Ÿ”—

At most German tech companies, the system design interview takes place after the HR screening and the coding interview. In a typical four-stage process, the order looks like this:

  1. HR Screening (30-45 minutes): Motivation, salary expectations, cultural fit
  2. Technical Coding Interview (60-90 minutes): Algorithms, data structures, live coding
  3. System Design Interview (45-60 minutes): Architecture and technical depth
  4. Culture Fit / Team Interview (30-60 minutes): Collaboration, values, questions

At some companies, especially for senior and staff positions, there are two system design rounds: one with a broader architecture problem and one with a deeper focus on a specific area like databases, messaging, or infrastructure.

Startups in Berlin or Munich sometimes combine coding and system design into a single longer session. At larger companies like SAP, Zalando, or Delivery Hero, the rounds are clearly separated and follow a standardized evaluation sheet.

The Typical Flow๐Ÿ”—

A system design interview follows a predictable pattern. Knowing this pattern lets you allocate your time effectively and avoid the most common mistakes.

Step 1: Clarify Requirements (5-10 Minutes)๐Ÿ”—

The interviewer gives you an open-ended problem. Your first step is not to start drawing immediately, but to ask questions. Clarify the functional requirements: What should the system do? Which use cases are most important? Then clarify the non-functional requirements: How many users? What latency requirements? What availability targets?

Good clarifying questions for a URL shortener system would be: โ€œHow many URLs are created per day? What is the read-to-write ratio? Do we need analytics for the short URLs? Should URLs be able to expire?โ€

This step is critical. Interviewers evaluate whether you understand the problem before you solve it. Candidates who jump straight into the design often solve the wrong problem.

Step 2: High-Level Design (10-15 Minutes)๐Ÿ”—

Draw the main components of the system and how they communicate with each other. Start with the simplest design that meets the requirements. For a URL shortener, that would be: a client, an API gateway, an application server, and a database.

Describe the APIs: What endpoints exist? What data flows where? Sketch the data model: What tables or collections do you need? What fields do they have?

Keep this step deliberately simple. You are building the foundation on which you will expand in the next step. If you are already talking about caching, sharding, and message queues here, you are skipping important fundamentals.

Step 3: Deep Dive (15-20 Minutes)๐Ÿ”—

Now it gets interesting. The interviewer will ask you to go deeper on certain aspects, or you suggest where you would like to dive in. This is where you show technical depth.

Typical deep-dive topics: How do you generate unique short IDs? (Hashing vs. counter vs. UUID) How do you scale the database? (Replication, sharding, partitioning strategies) How do you handle hot keys? How do you implement caching? What consistency guarantees do you need?

In this step, it is important that you do not just name a solution, but explain why you choose it and which alternatives you consciously reject.

Step 4: Discuss Trade-offs (5-10 Minutes)๐Ÿ”—

Every architecture decision has consequences. The interviewer wants to see that you understand these consequences. If you choose a relational database, what are the implications for horizontal scaling? If you accept eventual consistency, in which scenarios could that be problematic?

The best candidates bring up trade-offs proactively: โ€œI chose Redis as the cache because we need low latency on reads. The trade-off is that we need a cache invalidation strategy, and during a cache failure, the database will be under temporarily higher load.โ€

Step 5: Questions and Wrap-Up (5 Minutes)๐Ÿ”—

At the end, you have the opportunity to ask questions. Use it to learn more about the companyโ€™s actual architecture: โ€œHow do you solve the problem of data consistency between microservices?โ€ or โ€œWhat messaging infrastructure do you use?โ€ These questions show genuine interest and give you valuable insights for your decision.

Evaluation Criteria๐Ÿ”—

Interviewers at German tech companies typically use four main categories to evaluate your performance. Understanding these criteria helps you allocate your time and energy correctly.

Requirements Gathering๐Ÿ”—

Did you ask the right questions? Did you distinguish between functional and non-functional requirements? Did you clearly state assumptions instead of making them silently? Candidates who skip this step lose points, even if their final design is solid.

Communication๐Ÿ”—

System design is a dialogue, not a monologue. Did you structure your thoughts clearly? Did you involve the interviewer? Did you explain why you make certain decisions? Did you respond to hints and follow-up questions?

Clarity is particularly valued in Germany. Interviewers want to understand how you think, not just what you know. Structured communication that makes complex relationships understandable is one of the most important skills being tested.

Scalability Thinking๐Ÿ”—

Can you evolve a system from a single server to a distributed architecture? Do you understand when and why you introduce caching, load balancing, sharding, or message queues? Can you identify and address bottlenecks?

Important: in Germany, over-engineering is just as negative as under-engineering. A URL shortener for a startup does not need a global-scale design with 50 microservices. Show that you find the right solution for the right context.

Trade-off Discussion๐Ÿ”—

Every decision has pros and cons. Consistency vs. availability, latency vs. throughput, complexity vs. maintainability. The ability to recognize these trade-offs, name them, and consciously make a decision distinguishes good from great candidates.

Common Problems in Germany๐Ÿ”—

System design problems at German companies differ from typical FAANG problems. The focus is more on practical scenarios and less on hyperscale problems for billions of users.

URL Shortener๐Ÿ”—

The classic, also common in Germany. You design a system like bit.ly: shorten URLs, resolve URLs, optionally with analytics. This problem is popular because it is simple enough to cover in 45 minutes but offers enough depth for discussions about hashing, databases, caching, and scaling.

Chat System๐Ÿ”—

Design a real-time messaging system. In Germany, the addition often comes that the system must be GDPR-compliant: messages must be deletable, data may only be stored in the EU, and end-to-end encryption is a topic. These requirements make the problem more interesting than the standard version.

Notification System๐Ÿ”—

Design a system that can send push notifications, emails, and SMS to millions of users. At German companies, the requirement often includes that users must have granular control over their notification settings (opt-in rather than opt-out, as required by GDPR).

Payment System๐Ÿ”—

Particularly relevant for the German market, where payment systems like SEPA, Sofortรผberweisung, and PayPal dominate and credit cards are less common than in the US. You design a system that supports various payment methods, guarantees transaction consistency, and meets regulatory requirements (PSD2, Strong Customer Authentication).

At fintech companies like N26, Trade Republic, or Scalable Capital, payment design problems are especially common and are expected at a high level of detail.

Preparation: The Structured Approach๐Ÿ”—

The Framework๐Ÿ”—

Use a consistent framework for every system design problem. This reduces cognitive load and ensures you do not miss any important aspect.

  1. Clarify requirements: Functional and non-functional requirements, scaling parameters
  2. API design: Endpoints, request/response formats
  3. Data model: Schema, relationships, access patterns
  4. High-level design: Main components and their interaction
  5. Deep dive: Scaling, reliability, consistency
  6. Trade-offs: Conscious decisions with justification

Resources๐Ÿ”—

The most effective resources for system design preparation are:

  • โ€œDesigning Data-Intensive Applicationsโ€ by Martin Kleppmann: The standard reference, written by a developer who worked in Berlin. It covers distributed systems with depth and practical relevance.
  • System Design Interview by Alex Xu: Structured walkthrough of the most common problems with clear diagrams.
  • ByteByteGo (YouTube and newsletter): Visual explanations of system design concepts, ideal as a supplement.
  • Analyze your own systems: The best preparation is understanding and being able to explain the architecture of your current system. Why was a particular database chosen? How does deployment work? Where are the bottlenecks?

Practice Patterns๐Ÿ”—

Practice at least ten different problems before going into a real interview. For each problem:

  1. Set a timer for 45 minutes
  2. Speak out loud as if an interviewer is listening
  3. Draw on paper or in a whiteboard tool
  4. Review afterward which aspects you missed
  5. Repeat the problem a week later and compare

Practicing alone is good. Practicing with another person is better. CodingCareerโ€™s Mock System Design Interviews simulate the real format with an experienced developer as the interviewer, giving you direct feedback on your structure, communication, and technical depth.

Common Mistakes๐Ÿ”—

Jumping Straight to the Solution๐Ÿ”—

The most common and most serious mistake. Candidates hear the problem and immediately start drawing boxes and arrows. Without clarifying requirements, you design a system that may solve the wrong problem. Take five minutes for questions. The interviewer expects it.

Ignoring Requirements๐Ÿ”—

If the interviewer says โ€œThe system must have 99.9% availability,โ€ that is a core requirement that must influence your design. Candidates who acknowledge requirements but do not address them in their design show the interviewer that they would work the same way in practice.

Over-Engineering๐Ÿ”—

A system for 10,000 users does not need a Kubernetes cluster with 50 microservices, a global CDN, and triple database replication. Show that you find the right solution for the right context. Start simple and scale only where the requirements demand it.

This mistake is especially common among candidates who prepared exclusively with FAANG-style problems. German Mittelstand companies and startups look for pragmatic developers, not architects for billion-user systems.

Not Discussing Trade-offs๐Ÿ”—

Every decision you make has a downside. If you only mention advantages, it looks like you have not thought through the consequences. โ€œI choose MongoDBโ€ without explaining why not PostgreSQL shows the interviewer that you are not making the decision consciously.

System Design for Different Levels๐Ÿ”—

Mid-Level (3-5 Years)๐Ÿ”—

Mid-level candidates are expected to be able to design a working system, know the fundamentals of distributed systems (caching, load balancing, replication), and be able to talk about their decisions. The problems are typically less complex, and the interviewer gives more hints.

You do not need to know every detail. But you need to show that you think systematically and ask the right questions. โ€œI am not sure exactly how consistent hashing works, but I know we need a strategy to distribute data evenly across multiple shardsโ€ is an acceptable answer at mid-level.

Senior (5-10 Years)๐Ÿ”—

Senior candidates must be able to design a complete system independently, without many hints from the interviewer. You should be able to compare different database technologies, understand consistency models (strong vs. eventual consistency), think through failure scenarios, and name concrete numbers (latency, throughput, storage consumption).

Senior developers in Germany are additionally expected to consider GDPR implications, discuss multi-region deployments in the EU, and have a sense for when a simpler solution is the better one.

Staff (10+ Years)๐Ÿ”—

At staff level, system design becomes a strategic conversation. You discuss not just how a system is built, but why certain architecture decisions are the right ones long-term. Topics like organizational impact (Conwayโ€™s Law), build vs. buy, migration from legacy systems, and evolutionary architecture take center stage.

Staff interviews often last longer and may include multiple rounds. The interviewer expects you to drive the conversation, not just respond to questions.

Next Step๐Ÿ”—

System design interviews are a learnable skill. The combination of theoretical knowledge and structured practice takes you further than any amount of passive learning. Start with the framework from this guide, work through the standard problems, and practice out loud, with a timer and whiteboard.

If you want targeted feedback on your system design approach, CodingCareer offers Mock System Design Interviews with experienced developers who know the process from firsthand experience. You get a realistic simulation and concrete feedback that you can apply immediately.

Book your free 15-minute diagnostic call and find out where you stand in your system design preparation.

FAQ

How long does a system design interview last?

A system design interview typically lasts 45-60 minutes. The first 5 minutes are for the problem statement and clarification, followed by 30-40 minutes for the actual design, and the last 5-10 minutes for questions and discussion.

At what level is system design asked?

In Germany, system design is typically asked starting at mid-level (3+ years). It rarely comes up for junior positions, but is almost always part of the process for senior roles.

Do I need to write code in a system design interview?

No, the system design interview is about architecture, not code. You draw diagrams, describe components, and discuss trade-offs.

How does system design in Germany differ from the US?

German tech companies place more emphasis on pragmatic solutions and less on Google/FAANG-scale problems. Data privacy (GDPR) and European infrastructure play a bigger role.

I use Umami for privacy-friendly analytics.

If you'd like to help me improve this site, please consider disabling your adblocker.