← Adobe Interview Insights

Adobe·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

Adobe system design round focused entirely on a multi-modal embedding pipeline. One big open-ended question, lots of rabbit holes, and I left unsure if I covered enough ground on the retrieval side.

Questions Asked (1)

Q1

Design a system that generates embeddings for user-uploaded documents, images, and videos (each under a size limit) and stores them in a database. Walk through ingestion, preprocessing, model selection, scalability, storage schema, and retrieval.

System DesignTechnical Trade-offsData Modeling
Author's notes

I started with ingestion and spent way too long there.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints (file types, size limits, latency, scale). Then walk through the pipeline: ingestion, preprocessing, model selection, storage, and retrieval, highlighting trade-offs and scalability at each stage. Emphasize modularity and extensibility for future modalities.

Pro tip: Discuss how you would handle failures and retries in the ingestion pipeline, and how you would monitor embedding quality and drift over time. This shows production maturity beyond just the happy path.

1. Clarify Requirements and Constraints

Ask about expected scale (number of users, documents per day), latency requirements, file size limits, supported formats, and retrieval needs (e.g., similarity search, filtering).

2. Design Ingestion and Preprocessing

Outline how files are uploaded (e.g., direct to object storage via signed URLs), validated, and queued for processing. Describe preprocessing steps per modality: text extraction/chunking, image resizing/normalization, video frame sampling/audio extraction.

3. Select Embedding Models

Choose models per modality (e.g., BERT for text, ResNet/CLIP for images, VideoMAE for video). Discuss trade-offs between accuracy, latency, cost, and whether to use pre-trained or fine-tuned models.

4. Design Storage Schema and Retrieval

Store embeddings in a vector database (e.g., Pinecone, Milvus) with metadata in a relational DB. Describe schema: document ID, user ID, modality, embedding vector, metadata. Explain retrieval via approximate nearest neighbor search with filtering.

5. Address Scalability and Reliability

Discuss horizontal scaling of ingestion workers, model serving via batch or real-time endpoints, caching, and handling failures with retries and dead-letter queues. Mention monitoring and cost optimization.

Key Points to Mention

  • Use of asynchronous processing and message queues (e.g., Kafka, SQS) to decouple ingestion from embedding generation.
  • Trade-offs between using a single multi-modal model (e.g., CLIP) vs. separate specialized models per modality.
  • Vector database selection criteria: scalability, latency, support for metadata filtering, and hybrid search.
  • Storage schema design: separating metadata (relational DB) from embeddings (vector DB) for flexibility and performance.
  • Handling large files: chunking for text, frame sampling for video, and dimensionality reduction for images.
  • Monitoring embedding quality, drift, and system performance; implementing retries and idempotency.

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