← Salesforce Interview Insights

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

Senior
Jun 2026

Summary

Salesforce system design round for a software engineering role. Heavy focus on cloud fundamentals and making real architectural decisions, not just reciting definitions. Felt like they wanted to see how you reason under pressure more than whether you had the perfect answer.

Questions Asked (4)

Q1

Walk me through the core building blocks of a public cloud: the different compute models (VMs, containers, serverless), storage options, and networking primitives.

System DesignTechnical Trade-offs
Author's notes

I started with VMs and worked outward which felt logical to me but in hindsight I spent too long on stuff they probably already knew.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer around the three pillars—compute, storage, and networking—and for each, briefly describe the main models, then highlight trade-offs like control vs. abstraction, cost, and operational overhead. Use a concrete example (e.g., a web app) to tie the building blocks together and show how they interact.

Pro tip: Emphasize that the right choice depends on workload characteristics and team maturity—demonstrating that you consider non-functional requirements like scalability, cost, and operational burden will set you apart. Also, mention that these primitives are consistent across major clouds (AWS, Azure, GCP), showing you understand the underlying concepts rather than just one vendor.

1. Set the Stage

Briefly state that public clouds are built on three fundamental pillars: compute, storage, and networking, and that each offers a spectrum of abstraction levels. This frames your answer and shows you can organize complex topics.

2. Compute Models

Describe VMs (full control, manual scaling), containers (portable, efficient, need orchestration), and serverless (event-driven, auto-scaling, no server management). For each, mention a typical use case and a key trade-off (e.g., cost vs. control).

3. Storage Options

Cover object storage (unstructured, scalable, cheap), block storage (low-latency, attached to VMs), and file storage (shared, hierarchical). Highlight when to use each, such as object for static assets, block for databases, file for shared configs.

4. Networking Primitives

Explain VPCs (isolated networks), subnets (public/private segmentation), security groups (instance-level firewalls), and load balancers (traffic distribution). Mention how they enable secure, scalable architectures.

5. Tie It Together with a Use Case

Walk through a simple web application: serverless functions for APIs, object storage for static content, a VPC with public/private subnets, and a load balancer. This demonstrates how the building blocks compose in practice.

Key Points to Mention

  • VMs vs. containers vs. serverless: trade-offs in control, scalability, and operational overhead.
  • Object storage (e.g., S3) for durability and scale; block storage (e.g., EBS) for low-latency I/O; file storage (e.g., EFS) for shared access.
  • VPC, subnets, security groups, and load balancers as core networking primitives for isolation and traffic management.
  • Auto-scaling and managed services reduce operational burden but may increase cost or reduce control.
  • Multi-cloud portability: core concepts are similar across providers, but implementation details differ.
  • Security considerations: network isolation, IAM, and encryption at rest/in transit.

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

Q2

You're deploying a new microservice. How do you decide between running it on a VM, in a container, or as a serverless function, and what are the trade-offs?

System DesignTechnical Trade-offsAdaptability & Ambiguity
Author's notes

This is where it got interesting.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the service's requirements—traffic patterns, latency sensitivity, scaling needs, and team operational maturity—then map those to the strengths of VMs, containers, and serverless. Walk through the trade-offs explicitly and conclude with a recommendation that balances technical fit with organizational constraints.

Pro tip: Acknowledge that the 'right' answer depends on context and that many production systems use a mix; showing you can reason about trade-offs rather than dogmatically pick one technology signals senior-level judgment.

1. Clarify requirements and constraints

Ask about expected traffic volume, latency requirements, scaling patterns, statefulness, and team expertise. These factors will drive the decision more than any generic best practice.

2. Evaluate each option against requirements

For VMs, consider full control, legacy compatibility, and predictable pricing. For containers, consider portability, density, and orchestration overhead. For serverless, consider auto-scaling, pay-per-use, and cold-start latency.

3. Analyze trade-offs

Discuss operational complexity, cost model, scalability, cold starts, vendor lock-in, and debugging/monitoring differences. Be explicit about which trade-offs matter most for this service.

4. Consider hybrid or evolutionary approaches

Mention that the choice isn't permanent—you might start with containers for flexibility and later move to serverless for spiky workloads, or use VMs for stateful components alongside containers.

5. Make a recommendation and justify it

State your preferred option based on the clarified requirements, and explain why it's the best fit. Acknowledge any residual risks and how you'd mitigate them.

Key Points to Mention

  • Operational overhead: VMs require patching and scaling management; containers need orchestration (e.g., Kubernetes); serverless abstracts infrastructure but limits control.
  • Scaling characteristics: VMs scale vertically or via manual horizontal scaling; containers scale horizontally with orchestration; serverless scales automatically but may have cold starts.
  • Cost model: VMs are fixed cost; containers share resources; serverless is pay-per-invocation, which can be cheaper for sporadic traffic but expensive at high volume.
  • Latency and performance: Serverless cold starts can impact latency-sensitive services; VMs and containers offer more predictable performance.
  • Team expertise and ecosystem: Consider existing tooling, CI/CD pipelines, and team familiarity with each technology.
  • Vendor lock-in and portability: Serverless often ties you to a cloud provider; containers and VMs offer more portability.

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

Q3

How would you design a testing strategy for a cloud-based service, covering unit tests through to chaos and canary deployments?

System DesignTechnical Trade-offs
Author's notes

Went unit to integration to load to chaos to canary in order.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer as a layered testing pyramid, starting with fast unit tests and progressing to integration, end-to-end, and finally production-focused techniques like canary deployments and chaos engineering. Emphasize how each layer balances cost, speed, and confidence, and how they work together to catch issues early while validating real-world resilience.

Pro tip: Tie each testing layer to a specific failure mode it addresses and the trade-off it makes (e.g., unit tests are fast but don't catch integration issues; chaos tests are expensive but reveal systemic weaknesses). This shows you think in terms of risk and ROI, not just tools.

1. Clarify requirements and constraints

Ask about the service's criticality, SLOs, compliance needs, and deployment frequency to tailor the strategy. This ensures your answer is context-aware and not generic.

2. Define the testing pyramid layers

Describe unit, integration, and end-to-end tests, including what each covers, typical tools (e.g., JUnit, TestContainers, Selenium), and how they fit in CI/CD. Mention the goal of fast feedback and high coverage at lower layers.

3. Incorporate production testing techniques

Explain canary deployments (gradual rollout to a subset of users with automated rollback) and chaos engineering (fault injection to test resilience). Highlight how they complement pre-production testing by validating in real environments.

4. Address observability and feedback loops

Discuss monitoring, logging, and tracing to detect issues during canary and chaos experiments. Emphasize automated rollback and alerting to minimize impact.

5. Summarize trade-offs and continuous improvement

Conclude by weighing cost, speed, and risk for each layer, and mention iterating on the strategy based on incident learnings and evolving business needs.

Key Points to Mention

  • Testing pyramid: unit tests (fast, isolated), integration tests (service interactions), end-to-end tests (user flows)
  • Canary deployments: gradual traffic shifting, automated rollback, A/B testing
  • Chaos engineering: fault injection (e.g., network latency, instance failure), game days, blast radius control
  • CI/CD integration: automated test execution, gating, and artifact promotion
  • Observability: metrics, logs, traces, and SLOs to validate canary and chaos experiments
  • Trade-offs: cost vs. coverage, speed vs. confidence, and risk of production testing

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

Q4

Compare equivalent managed services between GCP and AWS for a given workload. How do you think about portability and avoiding vendor lock-in?

System DesignTechnical Trade-offsProduct Strategy
Author's notes

Honestly the vendor lock-in piece is where I had the most to say.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the workload's requirements (e.g., compute, storage, messaging, data) and then map each component to equivalent managed services on GCP and AWS. Discuss portability by evaluating abstraction layers, open standards, and trade-offs between using managed services and maintaining multi-cloud flexibility.

Pro tip: Emphasize that portability is a spectrum and that the goal is to minimize lock-in where it matters most (e.g., data gravity, proprietary APIs) while leveraging managed services for productivity. Mention that Salesforce often operates in multi-cloud environments, so demonstrating awareness of both providers' strengths is key.

1. Clarify workload requirements

Ask questions to understand the workload's needs: expected scale, latency, consistency, data volume, and budget. This ensures the comparison is relevant and grounded in real constraints.

2. Map to equivalent managed services

For each component (compute, storage, database, messaging, etc.), identify the closest managed services on GCP and AWS. Note differences in features, pricing models, and operational characteristics.

3. Assess portability and lock-in risks

Evaluate each service for vendor lock-in: proprietary APIs, data formats, and migration effort. Consider using open-source or multi-cloud abstractions (e.g., Kubernetes, Terraform, Kafka) to reduce coupling.

4. Propose a balanced architecture

Recommend a design that leverages managed services for productivity but isolates critical components behind abstractions or open standards. Discuss trade-offs between cost, performance, and portability.

5. Summarize and justify decisions

Conclude with a clear recommendation, highlighting how it aligns with business goals and mitigates lock-in. Acknowledge that some lock-in may be acceptable for strategic benefits.

Key Points to Mention

  • Equivalent services: Compute (GCE vs EC2, GKE vs EKS), Storage (GCS vs S3), Databases (Cloud SQL vs RDS, Spanner vs DynamoDB, BigQuery vs Redshift), Messaging (Pub/Sub vs SNS/SQS), Serverless (Cloud Functions vs Lambda).
  • Portability strategies: Use containers (Kubernetes), infrastructure-as-code (Terraform), open-source software (Kafka, PostgreSQL), and abstraction layers (e.g., Dapr, Crossplane).
  • Lock-in risks: Proprietary APIs (e.g., BigQuery, DynamoDB), data egress costs, and managed service-specific features that are hard to replicate.
  • Trade-offs: Managed services offer lower operational overhead and better integration but increase lock-in; self-managed or open-source alternatives increase portability but require more effort.
  • Salesforce context: Salesforce operates on multiple clouds (AWS, GCP, Azure) and values multi-cloud strategies; mention relevant Salesforce acquisitions or products (e.g., MuleSoft, Tableau) that emphasize integration and portability.
  • Decision framework: Consider factors like team expertise, time-to-market, cost, compliance, and strategic partnerships when choosing between providers.

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