← Booking.com Interview Insights

Booking.com·Software Engineer·Technical Phone Screen·Intermediate

Intermediate
May 2026

Summary

Did a technical screen for a software engineer role at Booking.com. Mix of low-level CS fundamentals and higher-level system design questions, which felt a bit scattered but not brutal. Some of it was surprisingly basic.

Questions Asked (7)

Q1

What is the difference between heap and stack memory?

Algorithms & Data Structures
Author's notes

Classic CS fundamentals question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining stack and heap memory in terms of their purpose and management. Then contrast their key characteristics such as allocation, lifetime, size, and access speed. Finally, relate them to practical programming scenarios to show understanding beyond theory.

Pro tip: Mention that stack memory is automatically managed and faster due to contiguous allocation, while heap memory requires manual management (or garbage collection) and is prone to fragmentation. This shows awareness of performance and memory safety.

1. Define stack memory

Explain that stack memory is used for static memory allocation, stores local variables and function call information, and is managed automatically by the CPU.

2. Define heap memory

Explain that heap memory is used for dynamic memory allocation, stores objects and data structures that need to persist beyond function calls, and is managed manually or by a garbage collector.

3. Compare key characteristics

Contrast allocation speed, access speed, size limits, lifetime, and thread safety. Stack is faster, limited in size, and thread-specific; heap is slower, larger, and shared across threads.

4. Discuss management and errors

Mention that stack overflow occurs when stack memory is exhausted, while heap fragmentation and memory leaks are common issues in heap memory.

5. Relate to practical scenarios

Give examples: recursion uses stack, dynamic data structures like linked lists use heap. Explain how this impacts performance and design choices.

Key Points to Mention

  • Stack memory is automatically managed and faster due to contiguous allocation.
  • Heap memory is dynamically allocated and managed manually or via garbage collection.
  • Stack has limited size and is thread-specific; heap is larger and shared among threads.
  • Stack stores local variables and function call frames; heap stores objects and dynamic data.
  • Common errors: stack overflow vs. heap fragmentation and memory leaks.
  • Performance implications: stack access is faster, heap allocation is slower and can cause fragmentation.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How do Protobuf and JSON compare as serialization formats?

Technical Trade-offsAPI & Integrations
Author's notes

Went with the obvious angle: Protobuf is binary and faster, JSON is human-readable and easier to debug.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging that both are serialization formats but serve different purposes: JSON is human-readable and ubiquitous, while Protobuf is binary, schema-driven, and optimized for performance. Then compare them across key dimensions like performance, schema evolution, tooling, and use cases, and conclude with a recommendation based on the specific context (e.g., internal microservices vs. public APIs).

Pro tip: Mention that Protobuf's schema evolution rules (e.g., reserved fields, backward/forward compatibility) are a major advantage for long-lived APIs, but JSON's flexibility and zero-setup make it ideal for debugging and external integrations. This shows you understand real-world trade-offs beyond just performance.

1. Define the formats

Briefly explain that JSON is a text-based, human-readable format, while Protobuf is a binary, schema-based format developed by Google.

2. Compare performance and efficiency

Discuss that Protobuf is generally faster to serialize/deserialize and produces smaller payloads, which matters for high-throughput systems, whereas JSON is slower and larger but easier to inspect.

3. Discuss schema and evolution

Highlight that Protobuf requires a schema (.proto file) and supports strong typing and backward/forward compatibility, while JSON is schema-less (though JSON Schema exists) and more flexible but prone to errors.

4. Consider tooling and ecosystem

Note that JSON has universal support in every language and browser, while Protobuf requires code generation and has less native support in some environments (e.g., JavaScript).

5. Recommend based on use case

Conclude that Protobuf is ideal for internal microservices, gRPC, and performance-critical systems, while JSON is better for public APIs, configuration, and human-readable data exchange.

Key Points to Mention

  • Performance: Protobuf is more efficient in both speed and size due to binary encoding.
  • Schema: Protobuf enforces a schema and provides strong typing, while JSON is schema-less and more flexible.
  • Compatibility: Protobuf supports backward/forward compatibility with careful schema evolution; JSON requires manual versioning.
  • Readability: JSON is human-readable and easy to debug; Protobuf is binary and requires tools to inspect.
  • Ecosystem: JSON has ubiquitous support; Protobuf requires code generation and has varying support across languages.
  • Use cases: Protobuf for internal, high-performance systems (e.g., gRPC); JSON for public APIs and configuration.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

How does gRPC differ from traditional RPC approaches?

Technical Trade-offsSystem Design
Author's notes

Talked about HTTP/2 multiplexing, streaming support, and the tight Protobuf coupling.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining traditional RPC and its limitations, then explain how gRPC addresses these with modern technologies like HTTP/2 and Protocol Buffers. Highlight key differences in performance, streaming, and cross-language support, and relate them to real-world system design trade-offs.

Pro tip: Emphasize that gRPC is not a silver bullet: its benefits come with trade-offs like reduced browser support and steeper learning curve. Showing awareness of when to choose gRPC over REST or traditional RPC demonstrates maturity.

1. Define traditional RPC

Briefly explain what traditional RPC is (e.g., Sun RPC, XML-RPC, JSON-RPC) and its typical characteristics like synchronous request-response, platform-specific bindings, and text-based protocols.

2. Introduce gRPC

Describe gRPC as a modern, open-source RPC framework by Google that uses HTTP/2 for transport and Protocol Buffers for serialization, enabling efficient, cross-language communication.

3. Compare key technical differences

Contrast gRPC with traditional RPC on aspects like protocol (HTTP/2 vs HTTP/1.1), serialization (binary vs text), streaming support (bi-directional vs limited), and code generation.

4. Discuss performance and scalability

Explain how gRPC's use of HTTP/2 multiplexing, header compression, and binary serialization leads to lower latency and higher throughput, making it suitable for microservices.

5. Address trade-offs and use cases

Mention scenarios where gRPC excels (internal services, polyglot environments) and where traditional RPC or REST might be better (public APIs, browser clients).

Key Points to Mention

  • HTTP/2 vs HTTP/1.1: multiplexing, header compression, server push
  • Protocol Buffers vs JSON/XML: binary efficiency, schema evolution, code generation
  • Streaming: gRPC supports client, server, and bi-directional streaming; traditional RPC often doesn't
  • Cross-language support: gRPC's IDL and codegen for many languages
  • Performance: lower latency, higher throughput due to binary protocol and multiplexing
  • Trade-offs: browser support, debugging complexity, learning curve

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

In what situations would you use event streaming like Kafka?

System DesignTechnical Trade-offs
Author's notes

This one I actually felt okay about.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying that Kafka is a distributed event streaming platform, then explain that it's ideal for scenarios requiring high-throughput, fault-tolerant, real-time data pipelines. Structure your answer around specific use cases like event-driven architectures, stream processing, and data integration, and discuss trade-offs versus alternatives like message queues or batch processing.

Pro tip: Mention that Kafka is not a one-size-fits-all solution; highlight when simpler alternatives like RabbitMQ or direct API calls might be more appropriate, showing you understand trade-offs and avoid over-engineering.

1. Define event streaming and Kafka

Briefly define event streaming as continuous ingestion and processing of data events, and Kafka as a distributed, partitioned, replicated log service for high-throughput, fault-tolerant streaming.

2. Identify key use cases

List scenarios where Kafka excels: real-time data pipelines, event-driven microservices, stream processing, activity tracking, log aggregation, and IoT data ingestion.

3. Explain why Kafka fits these scenarios

Discuss Kafka's strengths: scalability, durability, ordering guarantees per partition, replayability, and decoupling of producers and consumers.

4. Discuss trade-offs and alternatives

Acknowledge when Kafka might be overkill: low-throughput, simple task queues, or when strong consistency and transactions are needed (consider RabbitMQ, cloud pub/sub, or databases).

5. Relate to Booking.com context

Connect to Booking.com's scale: handling millions of events (clicks, bookings, searches) in real-time for personalization, fraud detection, and analytics.

Key Points to Mention

  • High-throughput, low-latency data pipelines
  • Event-driven architecture and microservices decoupling
  • Stream processing with Kafka Streams or ksqlDB
  • Log aggregation and monitoring
  • Scalability and fault tolerance via partitioning and replication
  • Trade-offs: complexity, operational overhead, and when to use simpler solutions

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q5

When should you use a table join in SQL?

Data Modeling
Author's notes

Weirdly open-ended phrasing.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining what a table join is and its purpose: combining rows from two or more tables based on a related column. Then explain that joins are used when you need to retrieve data that is spread across multiple tables, typically due to normalization, and you want to combine them into a single result set. Finally, discuss different join types and when to use each, and mention performance considerations.

Pro tip: Demonstrate awareness that joins are not always the best solution; sometimes denormalization or application-side joins can be more efficient, especially in high-scale systems like Booking.com. Also, mention that understanding the data model and query execution plans is key to optimizing joins.

1. Define the purpose of joins

Explain that joins are used to combine rows from two or more tables based on a related column, typically a foreign key relationship.

2. Identify scenarios for using joins

Describe situations where joins are necessary, such as when data is normalized across multiple tables and you need to retrieve related information in a single query.

3. Discuss join types and their use cases

Mention INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, and CROSS JOIN, and explain when each is appropriate (e.g., INNER for matching rows, LEFT for all rows from left table).

4. Consider performance implications

Talk about how joins can impact performance, especially with large datasets, and the importance of indexing join columns and analyzing query plans.

5. Mention alternatives and trade-offs

Acknowledge that sometimes denormalization, application-side joins, or NoSQL databases might be better, depending on the use case and scale.

Key Points to Mention

  • Normalization and the need to combine data from multiple tables
  • Different join types (INNER, LEFT, RIGHT, FULL, CROSS) and their semantics
  • Performance considerations: indexing, query optimization, and execution plans
  • When to avoid joins: denormalization, application-side joins, or NoSQL alternatives
  • Real-world examples, such as joining bookings with users or hotels in a travel platform
  • The importance of understanding the data model and relationships

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q6

What does SQL stand for?

Data Modeling
Author's notes

Structured Query Language.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by directly stating that SQL stands for Structured Query Language, then briefly explain its purpose as the standard language for managing and querying relational databases. Since the role is at Booking.com and the category is Data Modeling, connect the answer to how SQL is used to define, manipulate, and query structured data in real-world systems.

Pro tip: Don't just stop at the expansion—mention that SQL is a declarative language, meaning you specify what data you want, not how to retrieve it, which is a key concept in data modeling and query optimization. This shows you understand its practical significance beyond the acronym.

1. State the full form

Clearly say that SQL stands for Structured Query Language. This directly answers the question and sets a confident tone.

2. Explain its purpose

Describe SQL as the standard language for interacting with relational database management systems (RDBMS) to store, retrieve, update, and delete data.

3. Highlight key characteristics

Mention that SQL is declarative, standardized (ANSI SQL), and supports both data definition (DDL) and data manipulation (DML).

4. Connect to the role and company

Relate SQL to data modeling and software engineering at Booking.com, e.g., how SQL is used to design schemas, write queries, and ensure data integrity in large-scale systems.

Key Points to Mention

  • SQL stands for Structured Query Language.
  • It is the standard language for relational database management systems.
  • SQL is declarative: you specify what data you want, not how to get it.
  • It includes sublanguages like DDL (Data Definition Language) and DML (Data Manipulation Language).
  • SQL is used for data modeling, querying, and maintaining data integrity.
  • ANSI SQL provides a standard, though many databases have proprietary extensions.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q7

What does CI/CD stand for?

Technical Trade-offs
Author's notes

Continuous Integration and Continuous Delivery (or Deployment depending on context).

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clearly stating that CI/CD stands for Continuous Integration and Continuous Delivery/Deployment. Then briefly explain each concept and how they work together to automate the software delivery pipeline, emphasizing the benefits for a fast-paced environment like Booking.com.

Pro tip: Mention that CI/CD is not just about tools but a cultural shift towards collaboration and shared responsibility. Highlight that at Booking.com, where rapid experimentation and frequent releases are key, CI/CD enables teams to deploy multiple times a day with confidence.

1. Expand the Acronym

State that CI/CD stands for Continuous Integration and Continuous Delivery (or Deployment). Clarify that the 'CD' can mean either, depending on context.

2. Define Continuous Integration

Explain that CI is the practice of frequently merging code changes into a shared repository, followed by automated builds and tests to detect integration issues early.

3. Define Continuous Delivery/Deployment

Describe Continuous Delivery as automating the release process so that code is always in a deployable state, and Continuous Deployment as automatically deploying every change that passes tests to production.

4. Explain the Synergy

Highlight how CI and CD work together: CI ensures code quality, while CD automates the path to production, enabling fast, reliable releases.

5. Connect to Business Value

Relate CI/CD to benefits like faster time-to-market, reduced risk, and improved collaboration, which are critical for a company like Booking.com that values rapid iteration.

Key Points to Mention

  • Continuous Integration: frequent code merges, automated testing, early bug detection.
  • Continuous Delivery: automated release process, always deployable code, manual approval for production.
  • Continuous Deployment: fully automated deployment to production, no manual intervention.
  • Tools commonly used: Jenkins, GitLab CI, CircleCI, GitHub Actions, etc.
  • Benefits: faster feedback, reduced integration problems, more frequent releases, lower risk.
  • Cultural aspect: collaboration between development and operations, shared responsibility for quality.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.