← Salesforce Interview Insights

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

Senior
May 2026

Summary

Salesforce system design round for a software engineer role. The whole thing centered on building a recommendation system end to end, which sounds manageable until you realize they want you to go deep on the ML side, the infrastructure, and the data layer all in one conversation.

Questions Asked (1)

Q1

Design a recommendation system for users and items. Walk through your model choice, how you'd handle data fetching across multiple servers with a reverse proxy, and how you'd structure the underlying data storage for users, items, and interactions.

System DesignData ModelingTechnical Trade-offs
Author's notes

This was a lot to hold in one question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (scale, latency, personalization needs) and then propose a hybrid recommendation model (e.g., collaborative filtering + content-based) with a two-stage architecture (candidate generation and ranking). Discuss data fetching via a reverse proxy that routes requests to appropriate microservices (user profile, item catalog, interaction history) and caches results. Finally, outline the data storage design: separate stores for users, items, and interactions, using a combination of SQL/NoSQL and a feature store for real-time recommendations.

Pro tip: Emphasize the trade-offs between model complexity and latency, and how you'd monitor and A/B test the system in production. Mention that at Salesforce scale, multi-tenancy and data isolation are critical considerations.

1. Clarify Requirements and Scope

Ask about scale (users, items, interactions per second), latency requirements, personalization goals, and whether real-time or batch recommendations are needed. This sets the stage for design decisions.

2. Choose Recommendation Model

Propose a hybrid approach: collaborative filtering (matrix factorization or neural networks) for personalization, content-based filtering for cold-start, and possibly a ranking model (e.g., gradient boosted trees) to combine signals. Discuss offline training and online serving.

3. Design Data Fetching with Reverse Proxy

Explain how a reverse proxy (e.g., Nginx, Envoy) routes requests to backend services: user service, item service, interaction service. Use caching (Redis) for frequently accessed data and consider API gateway patterns for authentication and rate limiting.

4. Structure Data Storage

Design storage for users (SQL/NoSQL for profiles), items (document store or search index for metadata), and interactions (time-series or wide-column store for events). Use a feature store to serve real-time features to the model.

5. Address Scalability and Trade-offs

Discuss partitioning, replication, and consistency trade-offs. Mention how to handle cold-start, feedback loops, and evaluation metrics (CTR, recall@k). Consider multi-tenancy if relevant.

Key Points to Mention

  • Hybrid recommendation model combining collaborative filtering and content-based filtering to handle cold-start and improve accuracy.
  • Two-stage architecture: candidate generation (fast, recall-oriented) and ranking (slower, precision-oriented).
  • Reverse proxy for routing, load balancing, and caching; use of API gateway for cross-cutting concerns.
  • Polyglot persistence: SQL for user profiles, NoSQL for item catalog, and a distributed store (e.g., Cassandra) for interactions.
  • Feature store for real-time feature serving and consistency between training and inference.
  • Monitoring, A/B testing, and feedback loops to continuously improve recommendations.

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