Tell Me About a Disagreement with a Backend Team
This question evaluates your technical design leadership and your understanding of system boundaries. A senior frontend engineer does not just accept whatever API the backend provides; they actively negotiate contracts that optimize performance, reduce payload sizes, and simplify client-side state.
The interviewer evaluates:
- API Architecture Sense: Do you advocate for proper REST/GraphQL practices, pagination, and data minimization?
- Negotiation & Trade-offs: Can you find standard middle grounds (like cursor pagination or BFF patterns) that minimize backend load while protecting the frontend user experience?
- Collaboration: How do you resolve tension across team domains?
The Monolithic Response vs. Client-Side Parsing
A classic disagreement occurs when the backend proposes sending a single large, unpaginated JSON payload (e.g., 5,000 product records, totaling 6MB) and expects the client application to handle sorting, filtering, and pagination locally.
┌─────────────────────────────────────────────────────────────┐
│ BACKEND PROPOSAL: Fetch all 5,000 items (6MB JSON payload) │
├─────────────────────────────────────────────────────────────┤
│ CLIENT IMPACT: High TTI, memory bloating on mobile devices. │
├─────────────────────────────────────────────────────────────┤
│ NEGOTIATION: Present packet analysis and performance data. │
├─────────────────────────────────────────────────────────────┤
│ COMPROMISE: Backend implements cursor-based paginated endpoint.│
└─────────────────────────────────────────────────────────────┘Structured Answer Blueprint (STAR)
1. Situation: The API Proposal
"We were building an enterprise search dashboard. The backend team proposed a design where their search API returned the entire list of 5,000 search results in a single payload. They argued this was easier to implement and cut database query complexities. But for the client, parsing a 6MB JSON file on mid-range mobile devices would freeze the main thread for over 800ms and severely hurt our page load speed."
2. Action: Data-Driven Advocacy
Describe how you negotiated a professional resolution:
-
Step 1: Gather Performance Data: "I set up a local benchmark simulating the proposed payload. I used Chrome DevTools performance audits to show that parsing this payload caused a huge block in Time-to-Interactive (TTI) and increased JS memory heap by 45MB, particularly on throttled mobile processors."
-
Step 2: Propose a Standard API Contract: "I scheduled a brief meeting with the backend tech lead. Instead of telling them their approach was bad, I presented the data. I proposed a cursor-based pagination contract (
limit,cursor,totalCount) which would reduce initial payload size from 6MB to less than 20KB."
// Proposed Paginated API Payload:
{
"data": [
{ "id": "prod_101", "name": "Enterprise Suite" }
],
"pagination": {
"limit": 10,
"nextCursor": "eyJpZCI6MTAxfQ==",
"hasMore": true
}
}- Step 3: Define Client-Server Ownership: "The backend team was concerned about db query performance for offset offsets. I suggested cursor-based pagination (indexing key IDs) which is database-efficient. I also offered to build the initial client-side search cache structure to minimize total server requests."
3. Result: Performance Gains & Team Alignment
"The backend team agreed to support cursor pagination. The change reduced the network load time from 3.2 seconds to under 150ms. It eliminated main thread blocking entirely. Furthermore, to smooth future integrations, our engineering group adopted OpenAPI/Swagger schemas, enabling both teams to collaborate on and lock API contracts before writing code."