Zum Inhalt springen

Vorstellungsgespräche für Senior-Engineering-Positionen

Praktische Tipps für Senior-Engineering-Interviews: Systemdesign, Verhaltensfragen, Architekturdiskussionen und Gehaltsverhandlung.

5 Min. Lesezeit
Whiteboard-Diagramm mit den Komponenten eines System-Design-Interviews und den Bewertungskriterien

Vorstellungsgespräche für Senior-Engineering-Rollen prüfen andere Fähigkeiten als die für Junior-Positionen. Algorithmus-Aufgaben kommen zwar weiterhin vor, aber der Schwerpunkt verschiebt sich hin zu Systemdesign, architektonischem Urteilsvermögen, teamübergreifender Kommunikation und technischer Führung. Der Unterschied zwischen den Kandidaten liegt selten im technischen Wissen – er liegt darin, wie sie Trade-offs kommunizieren und mit Unklarheiten umgehen.

Wer diesen Prozess von beiden Seiten des Tisches erlebt hat, erkennt: Die Muster, die starke Senior-Kandidaten vom Rest unterscheiden, lassen sich erlernen.

System-Design-Interviews

In der Systemdesign-Runde wird bewertet, wie du unklare Probleme strukturiert angehst. Dem Interviewer geht es weniger um die „richtige" Antwort als um deine Herangehensweise.

## Framework: RESHADED

R - Requirements: Clarify functional and non-functional requirements
E - Estimation: Back-of-envelope capacity calculations  
S - Storage: Data model and database selection
H - High-level design: Core components and data flow
A - API design: Key endpoints and contracts
D - Deep dive: Dive into 1-2 components that matter most
E - Edge cases: Failure modes and bottlenecks
D - Discussion: Tradeoffs you considered and alternatives
## Example: Design a URL Shortener

Requirements (ask these, don't assume):
- Read/write ratio? → 100:1 reads to writes
- Custom aliases? → Yes, optional
- Analytics? → Click count, basic geolocation
- Expiration? → Optional TTL per link
- Scale? → 100M new URLs/month, 10B redirects/month

Estimation:
- Writes: 100M / month ≈ 40/sec
- Reads: 10B / month ≈ 3,800/sec (peak: ~10K/sec)
- Storage: 100M × 500 bytes ≈ 50GB/month
- 5 years: 3TB total

Key insight to demonstrate: This is a read-heavy system.
Caching is critical. Writes are simple.

Der häufigste Fehler: direkt zum Datenbankschema springen, ohne vorher die Anforderungen zu klären. Verwende die ersten 5 Minuten darauf, klärende Fragen zu stellen. Das ist der wichtigste Unterschied zwischen den Kandidaten.

Technische Entscheidungen kommunizieren

Von Senior-Engineers wird erwartet, dass sie begründen können, warum sie sich für einen Ansatz und gegen einen anderen entschieden haben. Übe, Trade-offs klar und explizit zu benennen.

markdownmarkdown
## ❌ Weak communication pattern
"I'd use Redis for caching because it's fast."
 
## ✅ Strong communication pattern  
"For the caching layer, I'd use Redis over Memcached for two reasons:
1. We need data structures beyond simple key-value — sorted sets 
   for the analytics leaderboard and hash maps for link metadata.
2. Redis persistence lets us survive cache restarts without a 
   thundering herd hitting the database.
 
The tradeoff is Redis uses more memory per key than Memcached, 
and horizontal scaling requires Redis Cluster setup. Given our 
~50GB working set, a single Redis instance with a read replica 
handles the load for the first year."

Das Muster: die Entscheidung nennen, 2 bis 3 konkrete Gründe liefern, den Trade-off benennen und erklären, warum er in diesem Kontext vertretbar ist.

Verhaltensfragen für Senior-Positionen

Verhaltensfragen auf Senior-Ebene drehen sich um Führung, Konfliktlösung und Wirkung – nicht nur um technisches Problemlösen.

markdownmarkdown
## Common Senior Behavioral Questions
 
1. "Tell me about a time you disagreed with a technical decision."
2. "Describe a project that failed. What was your role?"
3. "How do you handle a situation where two teams have conflicting priorities?"
4. "Tell me about a time you mentored someone and it changed their trajectory."
5. "Describe a time you had to make a technical decision with incomplete information."
 
## STAR Framework Response Structure
 
S - Situation: Brief context (2 sentences max)
T - Task: What was your specific responsibility  
A - Action: What YOU did (not the team)
R - Result: Quantified outcome + what you learned
markdownmarkdown
## Example: Technical Disagreement
 
Situation: "Our team needed to migrate from a monolith to 
microservices. The architect proposed extracting all 12 services 
at once over 6 months."
 
Task: "As the senior engineer responsible for the payment system, 
I believed the big-bang approach was too risky for our revenue-
critical path."
 
Action: "I wrote a one-page proposal for a strangler fig pattern — 
extract one service at a time, starting with the lowest-risk 
domain (notifications). I included a rollback plan for each phase 
and showed how we could measure success before extracting the 
next service. I presented it at the architecture review meeting."
 
Result: "The team adopted the incremental approach. We extracted 
4 services in 6 months with zero customer-facing incidents. The 
remaining 8 services were migrated over the next year. The key 
lesson: I learned that proposing a concrete alternative is more 
effective than opposing someone's plan without one."

Das entscheidende Detail, das die meisten Kandidaten übersehen: genau zu erklären, was du konkret getan hast – nicht, was das Team getan hat. „Wir haben entschieden" sagt dem Interviewer nichts. „Ich habe X vorgeschlagen, weil Y" zeigt individuelles Urteilsvermögen.

Muster für Architekturdiskussionen

Manche Interviews ersetzen das Systemdesign durch eine Architekturbewertung – du bekommst ein bestehendes System vorgelegt und sollst es kritisieren oder verbessern.

tstypescript
// Given: Current architecture overview
interface CurrentSystem {
  api: 'Express monolith, single process';
  database: 'PostgreSQL, single primary, 500GB';
  cache: 'Application-level in-memory cache';
  queue: 'Cron jobs for async processing';
  deployment: 'Single EC2 instance, manual deploys';
}
 
// Task: "We're seeing 5-second response times during peak hours
// and had two outages last month. What would you change?"
 
// Framework: prioritize by impact and reversibility
const recommendations = [
  {
    change: 'Add Redis caching layer',
    impact: 'high',
    effort: 'low',
    reasoning: 'In-memory cache dies on restart. Redis survives deploys.',
    risk: 'Low — additive change, fallback to database on cache miss',
  },
  {
    change: 'Add read replica for PostgreSQL',
    impact: 'high',
    effort: 'medium',
    reasoning: '500GB DB with read-heavy load. Route analytics/reports to replica.',
    risk: 'Medium — need to handle replication lag for consistency-sensitive reads',
  },
  {
    change: 'Replace cron with proper job queue (BullMQ/SQS)',
    impact: 'medium',
    effort: 'medium',
    reasoning: 'Cron misses jobs if process crashes. Queue provides retry and visibility.',
    risk: 'Low — can migrate one job at a time',
  },
  {
    change: 'Containerize and deploy to ECS/K8s',
    impact: 'high',
    effort: 'high',
    reasoning: 'Single EC2 = single point of failure. Containers enable horizontal scaling.',
    risk: 'High — large infrastructure change, do this after quick wins',
  },
];

Die zentrale Erkenntnis: nach dem Verhältnis von Wirkung zu Aufwand priorisieren und mit reversiblen Änderungen beginnen. Eine vollständige Kubernetes-Migration als ersten Schritt vorzuschlagen, zeugt von schlechtem Urteilsvermögen. Einen Redis-Cache einzuführen lässt sich in einer Woche umsetzen und wirkt sofort.

Deine Geschichten vorbereiten

Bereite vor jedem Senior-Interview 8 bis 10 Geschichten vor, die diese Dimensionen abdecken. Jede Geschichte lässt sich auf mehrere Fragen anpassen.

markdownmarkdown
## Story Bank (prepare before interviews)
 
### Technical Leadership
- [ ] Led a major migration or refactoring effort
- [ ] Made a reversible architectural decision under uncertainty
- [ ] Introduced a new technology or practice to the team
 
### Conflict and Communication
- [ ] Disagreed with a manager or architect and resolved it
- [ ] Mediated between two teams with conflicting priorities
- [ ] Gave difficult feedback to a peer or direct report
 
### Impact and Growth  
- [ ] Mentored someone who grew significantly
- [ ] Identified and fixed a systemic issue (not just a bug)
- [ ] Reduced operational burden measurably (on-call, deploy time)
 
### Failure and Learning
- [ ] Project that failed — what you learned
- [ ] Decision you would make differently now
- [ ] Production incident you caused or resolved
 
## For each story, prepare:
- 30-second version (elevator pitch)
- 2-minute version (standard interview response)
- 5-minute version (deep-dive if asked to elaborate)

Gehaltsverhandlung

Bei Senior-Positionen gibt es deutlich mehr Verhandlungsspielraum als bei Junior-Rollen. Die eigene Verhandlungsmacht ist größer, weil der Kandidatenpool kleiner ist.

markdownmarkdown
## Negotiation Framework
 
1. Never give a number first
   - "I'd like to understand the full compensation package
     before discussing numbers."
 
2. Research the market range
   - levels.fyi, Glassdoor, Blind, ask your network
   - Know the 25th, 50th, and 75th percentile for your role
   
3. Negotiate on multiple dimensions
   - Base salary, equity/RSUs, signing bonus, remote flexibility,
     title, team placement, review timeline
 
4. Use competing offers honestly
   - "I have another offer at $X. I'd prefer to join your team,
     but I need the compensation to be competitive."
 
5. Get it in writing
   - Verbal offers mean nothing. Wait for the written offer
     letter before making any decisions.

Die wichtigsten Erkenntnisse

  1. Kläre zuerst die Anforderungen beim Systemdesign – die ersten 5 Minuten mit Fragen zu verbringen, ist der wichtigste Unterschiedsfaktor.
  2. Benenne Trade-offs explizit – Entscheidung, Gründe, anerkannte Nachteile und warum sie im jeweiligen Kontext vertretbar sind.
  3. Nutze das STAR-Format für Verhaltensfragen – betone, was du getan hast, nicht was das Team getan hat.
  4. Priorisiere nach dem Verhältnis von Wirkung zu Aufwand bei Architekturdiskussionen – beginne mit schnellen, reversiblen Erfolgen.
  5. Bereite 8 bis 10 vielseitige Geschichten vor, die technische Führung, Konflikte, Wirkung und Misserfolge abdecken.
  6. Verhandle über mehrere Dimensionen – das Gehalt ist nur ein Hebel unter vielen.
Wilfredo Rujel

Wilfredo Rujel

Full-Stack-Softwareentwickler

Diesen Beitrag teilenX