PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches
|Home/Software Engineering Fundamentals/Chime

Design browser history across tabs

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design stateful data structures and manage per-tab navigation history, testing competencies in data structures, algorithmic complexity analysis, and system modeling.

  • medium
  • Chime
  • Software Engineering Fundamentals
  • Backend Engineer

Design browser history across tabs

Company: Chime

Role: Backend Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Technical Screen

Design a browser-history component. Start with a single tab and support these operations: - `visit(url)`: navigate to a new URL from the current page. If the user had gone back earlier, all forward history for that tab is discarded. - `back(steps)`: move backward up to `steps` pages and return the current URL. - `forward(steps)`: move forward up to `steps` pages and return the current URL. - `haveVisited(url)`: return whether this URL has been visited before. Follow-up: 1. Explain how you would support multiple tabs, where each tab has its own independent back/forward state. 2. Explain how to answer whether a URL has been visited in any tab. 3. Discuss the main data structures, edge cases, and time/space complexity.

Quick Answer: This question evaluates a candidate's ability to design stateful data structures and manage per-tab navigation history, testing competencies in data structures, algorithmic complexity analysis, and system modeling.

Related Interview Questions

  • Explain sync/async, Go concurrency, SQL vs NoSQL - Chime (easy)
Chime logo
Chime
Feb 26, 2026, 12:00 AM
Backend Engineer
Technical Screen
Software Engineering Fundamentals
1
0
Loading...

Design a browser-history component.

Start with a single tab and support these operations:

  • visit(url) : navigate to a new URL from the current page. If the user had gone back earlier, all forward history for that tab is discarded.
  • back(steps) : move backward up to steps pages and return the current URL.
  • forward(steps) : move forward up to steps pages and return the current URL.
  • haveVisited(url) : return whether this URL has been visited before.

Follow-up:

  1. Explain how you would support multiple tabs, where each tab has its own independent back/forward state.
  2. Explain how to answer whether a URL has been visited in any tab.
  3. Discuss the main data structures, edge cases, and time/space complexity.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Chime•More Backend Engineer•Chime Backend Engineer•Chime Software Engineering Fundamentals•Backend Engineer Software Engineering Fundamentals
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.