PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches
|Home/System Design/Google

Design executable notebook service APIs

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's competence in designing secure, scalable systems for executing user-supplied code, covering API design, sandboxing and isolation, dependency management, resource limits, scheduling, and streaming proxies for logs/results.

  • hard
  • Google
  • System Design
  • Software Engineer

Design executable notebook service APIs

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design a collaborative, editable code notebook service with an execution service and a proxy that fetches execution results and returns them to the browser. Users may upload custom function JAR files with a fully qualified class and method name, then submit requests to run that function with arguments. Define RESTful endpoints and request and response schemas for uploading code, submitting executions, fetching logs and results, and cancelling. Discuss sandboxing, dependency management, resource limits, concurrency, and result streaming.

Quick Answer: This question evaluates a candidate's competence in designing secure, scalable systems for executing user-supplied code, covering API design, sandboxing and isolation, dependency management, resource limits, scheduling, and streaming proxies for logs/results.

Related Interview Questions

  • Design an Online Coding Judge Platform - Google (medium)
  • Design Calendar Event Conflict Handling - Google (medium)
  • Design a pub-sub replay system - Google (hard)
  • How to host many domains on one IP? - Google (medium)
  • Design street-view image ingestion and storage system - Google (hard)
Google logo
Google
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
4
0

Design: Collaborative Notebook with Executable User Functions (JAR Upload)

Context

Design a collaborative, browser-based code notebook service. The system must support real-time editing, execution of user-submitted functions, and a proxy that fetches execution results/logs and returns them to the browser.

Users can upload custom Java JARs, specify a fully-qualified class and method as the entrypoint, and submit executions with arguments. The system must be secure, scalable, and support streaming logs/results.

Requirements

  • Define RESTful endpoints and request/response schemas for:
    1. Uploading user code (JARs) and registering entrypoints
    2. Submitting executions (sync/async, with args)
    3. Fetching logs and results (polling and streaming)
    4. Cancelling executions
  • Discuss:
    • Sandboxing and isolation for untrusted code
    • Dependency management for user JARs (Maven coordinates, shading, etc.)
    • Resource limits and quotas
    • Concurrency model and scheduling
    • Streaming logs/results to the browser via a proxy

Make minimal assumptions where the prompt is ambiguous (e.g., use Java 17, JSON over HTTP, and an API Gateway/Proxy).

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Google•More Software Engineer•Google Software Engineer•Google System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.