Katkat

practice a little every day, paws crossed ♡

Software Engineer Interview Questions

Practice 9403 coding, system design and machine learning questions from 546 companies, sorted by role, topic and interview round. Every question has step-by-step hints, a code runner that supports 8 languages and an AI mentor; members also get the full solution walkthrough.

9403
Questions
546
Companies
11
Topics
8
Languages

Showing 4381–4410 of 5874 results

  • PinterestMediumSoftware Engineer
    Design a Distributed Rate-Limiting Service

    Design a highly available, ultra-low-latency distributed rate-limiting service supporting multi-tier rules (user, tenant, route, global) across globally distributed edge gateways.

    System DesignOnline Assessmentsystem-designdistributed-systemsrate-limiting
  • PinterestHardSoftware Engineer
    Design a Google Photos–like service

    This question evaluates proficiency in designing large-scale distributed media systems, testing competencies in distributed storage and caching, ingest pipelines, CDN-backed delivery, indexing/search, sync/conflict resolution, access control/privacy compliance, and cost/operational planning.

    System DesignOnsite
  • PinterestMediumSoftware Engineer
    Design a Large-File Upload and Analysis Flow

    Tests the ability to design an end-to-end media ingestion system supporting chunked resumable uploads, asynchronous analysis pipelines, idempotency, and real-time client notifications.

    System DesignOnsitesystem-designcloud-storagedistributed-systems
  • PinterestMediumSoftware Engineer
    Design a Low-Latency Typeahead Service

    This problem tests the ability to design a high-throughput, low-latency search suggestion system that handles real-time updates and ranking at scale.

    System DesignOnsiteCachingDistributed SystemsSearch
  • PinterestHardSoftware Engineer
    Design a Merchant Catalog Update Pipeline with Bulk Files and Image Resizing

    Tests the ability to architect a scalable, asynchronous catalog ingestion pipeline that balances high-throughput bulk feed processing with low-latency single-item edits while prioritizing price and inventory updates over compute-heavy image processing.

    System DesignOnsiteDistributed SystemsData PipelinesMessage Queues
  • PinterestMediumSoftware Engineer
    Design a Multi-Channel Notification System

    Design an extensible, resilient multi-channel notification engine (push, email, SMS, in-app) supporting high throughput, deduplication, quiet hours, rate limiting, and provider fallbacks.

    System DesignOnline Assessmentsystem-designdistributed-systemsevent-driven
  • PinterestHardSoftware Engineer
    Design a Typeahead Service on an In-Memory Trie, Then Scale It Without New Services

    Design a typeahead autocomplete service that starts at a modest scale using an in-memory keyword trie, then scale it out without adding external services. It tests trie internals and keyword storage, read and write paths, score updates, rebuilds with hot swaps, and sharding strategy trade-offs.

    System DesignOnsite
  • PinterestEasySoftware Engineer
    Design a Typeahead Suggestion System

    Design a low-latency, real-time typeahead suggestion system that handles prefix search, query ranking, aggressive caching, and stale response mitigation.

    System DesignOnsitesystem-designtrietypeahead
  • PinterestHardSoftware Engineer
    Design a high-throughput distributed rate limiter

    Pinterest software-engineer onsite system-design question: design a multi-region, high-throughput distributed rate limiter targeting ~10M req/s with per-user, per-API, and global limits, burst tolerance, and an approximately-sliding window. It tests token-bucket/GCRA algorithm choice, an architecture of local in-process buckets fed by epoch-based token leases, consistent-hashing sharding with hot-key splitting, bounded-overshoot consistency, fault handling, fairness, capacity-planning math (including a 2× spike), backpressure, and observability.

    System DesignOnsite
  • PinterestMediumSoftware Engineer
    Design a violation log analyzer

    This question evaluates proficiency in data structures, in-memory indexing and query design, algorithmic time/space complexity analysis, and reasoning about state management for dynamic event streams.

    Coding & AlgorithmsTechnical Screen
  • PinterestMediumSoftware Engineer
    Design adjustable ID allocator

    A Pinterest software-engineer onsite coding problem: design an adjustable ID allocator over a fixed [0, 999] ID space with named, contiguous, non-overlapping bucket ranges. It covers initial allocation (packing from desired sizes and validating/normalizing proposed ranges), a resize operation that grows or shrinks a bucket by consuming adjacent free space and then minimally shifting or borrowing from neighbors under a deterministic policy, plus complexity analysis, boundary-case testing, and concurrency handling.

    Coding & AlgorithmsOnsite
  • PinterestHardSoftware Engineer
    Design an Ad Click Aggregator for Last-Year Counts Using an Existing Logging API

    A system design question about an ad click aggregator whose queries cover the last year rather than the last few minutes and which must take its click data from an existing logging API. It tests requirement clarification, checkpointed ingestion and backfill, deduplication, rollup storage, and correcting historical counts.

    System DesignOnsite
  • PinterestMediumSoftware Engineer
    Design an ads event reporting system

    This question tests the ability to design a high-throughput, fault-tolerant system for tracking ad interaction events, focusing on scalability, exactly-once processing, and analytical query performance.

    System DesignOnsiteScalabilityData PipelinesAnalytics
  • PinterestMediumSoftware Engineer
    Design highly available blob storage service

    This question evaluates a candidate's competency in designing scalable, durable, and highly available blob/object storage systems, encompassing distributed systems architecture, data modeling for buckets and objects, metadata management, partitioning and routing, fault tolerance strategies, consistency models, large-object transfer patterns, security controls, and operational concerns like monitoring and capacity planning. Commonly asked in the System Design domain to assess practical application of architectural patterns and trade-offs—horizontal scalability, durability versus latency, consistency guarantees, and operational resilience—it primarily tests practical system-design skills grounded in conceptual understanding of distributed systems.

    System DesignOnsite
  • PinterestMediumSoftware Engineer
    Determine equality of arbitrarily nested sets

    This question evaluates understanding of nested data structures and set semantics, including canonicalization, hashing, recursion, handling of edge cases, unit-test design, and time/space complexity analysis.

    Coding & AlgorithmsTechnical Screen
  • PinterestMediumSoftware Engineer
    Fewest Buses to Ride Between Two Stops on Looping Bus Lines

    A coding problem about bus lines that loop through fixed lists of stops: find the fewest buses a rider must board to travel from a source stop to a target stop, or report that the target cannot be reached. It tests modeling transfers between lines as a graph and keeping the search efficient when many lines share stops.

    Coding & AlgorithmsOnsite
  • PinterestMediumSoftware Engineer
    Find First Prefix-Matching Word

    This problem tests your ability to efficiently search through a collection of strings to find the first element that satisfies a specific prefix condition, emphasizing clean iteration and edge case management.

    Coding & AlgorithmsTechnical ScreenStringsArraysIteration
  • PinterestMediumSoftware Engineer
    Find minimum shuttle transfers

    Find minimum shuttle transfers evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

    Coding & AlgorithmsOnline Assessment
  • PinterestMediumSoftware Engineer
    Find the Minimum Number of Coins for an Amount

    Tests dynamic programming and breadth-first search techniques to find the minimum number of coin denominations required to reach a target value, including edge cases like zero and unreachable sums.

    Coding & AlgorithmsOnsitedynamic-programmingbfsarrays
  • PinterestMediumSoftware Engineer
    Generate Attribute Combinations

    Explain Cartesian-product generation for attribute choices while preserving mixed value types and making ordering, duplicates, and empty cases explicit.

    Software Engineering FundamentalsTechnical Screen
  • PinterestMediumSoftware Engineer
    Implement Hierarchical Region Access Overrides

    Design and implement a regional access control system that handles time-based access overrides on a static tree hierarchy with out-of-order updates.

    Software Engineering FundamentalsTechnical ScreenTreeBinary SearchData Structures
  • PinterestMediumSoftware Engineer
    Implement a min-heap column allocator

    This question evaluates a candidate's competency in data structures (priority queues/min-heaps), online algorithm design for stream processing, and complexity and memory analysis.

    Coding & AlgorithmsTechnical Screen
  • PinterestMediumSoftware Engineer
    Implement sparse matrix storage, addition, and multiplication

    This problem tests your ability to design a memory-efficient representation for sparse matrices and implement arithmetic operations while leveraging the sparsity of the data.

    Coding & AlgorithmsOnsiteArraysHash MapsLinear Algebra
  • PinterestMediumSoftware Engineer
    Implement stream line reader and settle balances

    This question evaluates streaming I/O and buffered string-processing competency for Part 1 and transaction netting with balance computation for Part 2, covering skills in memory-bounded parsing, data-structure bookkeeping, and algorithmic flow reasoning.

    Coding & AlgorithmsOnsite
  • PinterestMediumSoftware Engineer
    Implement string-based big integer multiplication

    Implement multiplyStrings(a, b) to multiply two non-negative integers given as decimal strings, returning the product as a string without any big-integer or arbitrary-precision library. The solution covers grade-school O(n*m) long multiplication with linear memory, the Karatsuba and FFT/NTT scaling alternatives, correct carry and leading/trailing-zero handling, and a full edge-case test plan.

    Coding & AlgorithmsOnsite
  • PinterestMediumSoftware Engineer
    Implement tap-to-infect color grid on iOS

    This question evaluates proficiency in mobile UI architecture, grid data structures, connected-component algorithm reasoning, and state management concerns such as undo and memory/stack safety within the mobile app development and iOS domain.

    Software Engineering FundamentalsOnsite
  • PinterestMediumSoftware Engineer
    Insert Operators to Reach a Target

    Tests backtracking with operator precedence handling and operand formatting to construct all valid arithmetic expressions evaluating to a target value.

    Coding & AlgorithmsOnsitebacktrackingrecursionstring
  • PinterestHardSoftware Engineer
    Keep Merchant Addresses, Social Followers, and Wiki Facts Up to Date

    Design a high-scale merchant data enrichment platform that ingests, reconciles, and maintains up-to-date business attributes (addresses, social metrics, wiki metadata) across heterogeneous third-party sources with strong provenance and fault tolerance.

    System DesignOnsitesystem-designdistributed-systemsdata-pipelines
  • PinterestHardSoftware Engineer
    List All Plus/Times Expressions Reaching a Target Under Operator Precedence

    Tests backtracking and state tracking with operator precedence to evaluate and enumerate arithmetic expressions using addition and multiplication.

    Coding & AlgorithmsOnsiteBacktrackingRecursionMath
  • PinterestMediumSoftware Engineer
    List Unallocated Experiment Buckets

    Determine all unassigned experiment bucket IDs in the range [0, total_buckets - 1] given lists of control and treatment bucket allocations.

    Coding & AlgorithmsTechnical Screenarrayhash-tablebit-manipulation