Over the past few months, I’ve been interviewing for Senior Frontend and Full-Stack Developer roles across different companies. Many of the interviews followed a similar pattern: the technical round included 2–4 developers from the team, each with varying levels of experience.
What surprised me wasn’t the questions themselves — but how differently developers approached the conversation depending on their years in the industry.
Very quickly, I saw three clear layers of thinking emerge. This post breaks down those layers, the kinds of questions that came from each group, and what it reveals about how developers grow over time.
Layer 1: The Technical Lens (0–5 Years Experience)
Focus: Syntax, semantics, correctness
Developers in this range tend to be hands-on, close to the code, and deeply focused on how things are written. They’re usually building their foundation, so naturally they anchor their questions around language details.
These questions often sounded like:
Frontend Questions
- “What’s the difference between
let,var, andconstin JavaScript?”
- “How does event bubbling work?”
- “How do you memoize a component in React?”
- “Can you explain what
useEffectdependencies mean?”
- What is the difference between
useEffectanduseLayoutEffect?
- How does event bubbling and capturing work in the DOM?
- What does
keydo in React, and why is it important?
- How do you debounce an input in JavaScript?
- What’s the difference between controlled and uncontrolled components in React?
- Explain the difference between
==and===.
- What is the difference between
display: noneandvisibility: hidden?
- How does the CSS box model work?
- Explain how React’s reconciliation algorithm works at a basic level.
- How does
async/awaitwork under the hood?
Backend (BE) Questions
- What is the difference between
GET,POST,PUT, andDELETE?
- How do you handle async operations in Node.js?
- What is middleware in Express.js?
- What is the difference between
SQLandNoSQLdatabases?
- How does indexing work in a relational database?
- What is the
N+1query problem in ORM frameworks?
- How do you hash a password securely?
- What is the difference between threads and processes?
- Explain how
JWTauthentication works.
- How does
setTimeoutwork internally in Node.js?
Fullstack/System Questions
- How does
CORSwork and why do we need it?
- Explain the difference between client-side and server-side rendering.
- What is the difference between
RESTandGraphQL?
- How does the browser render a webpage (critical rendering path)?
- What’s the difference between HTTP 1.1, 2, and 3?
- What is a
cookievslocalStoragevssessionStorage?
Code Discussion
A typical question might involve optimizing an array operation:
// Example: Remove duplicates from an array const numbers = [1, 2, 2, 3, 4, 4]; const unique = [...new Set(numbers)]; console.log(unique); // [1, 2, 3, 4]
Or reasoning about asynchronous behavior:
async function fetchData() { const res = await fetch('/api/data'); return res.json(); }
At this level, the interviewer is trying to understand your core fundamentals — the nuts and bolts of writing code.
Layer 2: The Engineering Lens (5–12 Years Experience)
Focus: Architecture, patterns, trade-offs, maintainability
As developers grow, their focus expands beyond syntax. They start caring about:
- quality
- structure
- consistency
- patterns
- scalability
- developer experience
The questions I got from this group sounded more like:
Architecture & Structure
- How do you organize a large-scale React project for multiple teams?
- What are your strategies to avoid prop drilling (Context API vs Zustand vs Redux)?
- When do you choose
SSRvsCSRvsSSG vs ISR?
- How do you structure reusable UI components and shared libraries?
- How do you split the bundle to optimize loading speed?
- What patterns do you use for feature-based folder structure?
Performance
- How do you identify and fix performance bottlenecks in a React app?
- What is
React’sconcurrent rendering?
- How do you optimize re-renders?
- How do you use the browser Performance tab?
- How do you cache API results on the frontend?
State Management
- How do you decide between global state, server state, and local state?
- When do you use React Query vs Redux vs plain Context?
- How do you design a scalable store architecture?
Testing & Quality
- What’s your approach to writing integration tests for UI flows?
- How do you test React hooks or async components?
- What are common anti-patterns in React testing?
Architecture & API Design
- How do you design an API that is backward-compatible?
- How do you handle versioning in APIs?
- When do you de-normalize data?
- How do you structure your service layer, domain layer, repository layer?
- How do you handle validation across layers?
Database & Data Modeling
- How do you prevent deadlocks in SQL databases?
- How do you structure tables to support multi-tenancy?
- How do you decide between ACID vs eventual consistency?
- What strategies do you use for indexing large tables?
Caching & Performance
- How do you design caching at DB → service → client layers?
- When do you use Redis vs in-memory caches?
- How do you avoid race conditions when updating cached data?
Deployment & CI/CD
- How do you structure CI pipelines for efficient build/test/deploy cycles?
- How do you handle database migrations in production?
- How do you roll back safely?
System Thinking Discussion
A common question was:
“How do you scale a React app as the team grows?”
I often drew something like:
src/ ├─ app/ ├─ features/ │ ├─ payments/ │ │ ├─ components/ │ │ ├─ hooks/ │ │ └─ services/ │ └─ auth/ ├─ shared/ │ ├─ ui/ │ ├─ utils/ │ ├─ hooks/ │ └─ api/ └─ config/
Or a conversation on caching strategies:
export const fetchUser = () => queryClient.fetchQuery({ queryKey: ['user'], queryFn: () => fetch('/api/user').then(res => res.json()), staleTime: 1000 * 60 * 5, // 5 minutes cache });
At this level, the interviewer wants to see whether you can design maintainable systems — not just write correct code.
System Behavior
- How do you handle retries, backoff, and resilience in distributed systems?
- When do you use event-driven architecture vs REST?
- How do you avoid tight coupling between microservices?
Security
- How do you build a secure login flow?
- How do you store secrets?
- How do you avoid replay attacks with JWT?
Performance & Observability
- How do you log, trace, and profile services in production?
- What metrics do you track for healthy systems?
Layer 3: The System & Strategy Lens (12–20+ Years Experience)
Focus: big-picture clarity, cross-team collaboration, long-term architecture
This is where the perspective shifts massively.
Instead of syntax or patterns, the questions revolve around:
- system design
- architectural decision-making
- workflows
- team structure
- processes
- communication
- trade-offs at scale
The senior-most developers asked questions like:
Architecture at Scale
- How do you design a frontend platform used by multiple product teams?
- How do you enforce code quality across 50+ engineers?
- What patterns do you use to design micro-frontends?
- How do you ensure accessibility across all apps?
Performance at Scale
- How do you reduce TTFB or improve Core Web Vitals across an enterprise app?
- How do you design a strategy for code splitting across routes/features?
- What is your approach to controlling bundle size over time?
Team Processes
- How do you create a shared component library used across squads?
- How do you align FE architecture with backend and design teams?
- How do you set up RFC or ADR processes for frontend decisions?
Or evaluating trade-offs:
Code snippet example: choosing between REST and Event-driven
// REST: immediate response, synchronous POST /orders → create order → return orderId // Event-driven: async, decoupled publishEvent('ORDER_CREATED', payload);
Here, the interviewer evaluates how you think — not what you know.
Systems Thinking
- How do you design a distributed system that handles partial failures gracefully?
- How do you model domain boundaries using DDD?
- How do you migrate a monolith into modular domains without breaking everything?
- How do you design APIs for 10 years of maintainability?
Large-Scale Data & Infrastructure
- How do you handle data consistency across services?
- What’s your approach to shard large databases?
- How do you design event-driven pipelines for real-time workloads?
Reliability
- How do you design for zero-downtime deployment?
- How do you build a high-availability system with active-active failover?
- What’s your philosophy on SLOs, SLIs, and SLAs?
Security at Scale
- How do you design secure communication between microservices?
- How do you enforce RBAC and multi-tenant security models?
- How do you handle secret rotation and key management?
Architecture
- How do you design a digital platform for thousands of developers across an organization?
- How do you balance developer experience with system boundaries?
- How do you choose between monolith, modular monolith, microservices, or micro-frontends?
Communication & Leadership
- How do you communicate technical decisions across squads, product managers, and leadership?
- How do you handle disagreements about architecture?
- How do you mentor engineers across different levels?
Project-Level Strategy
- How do you plan a multi-year migration roadmap?
- How do you ensure backward compatibility during refactors?
- What’s your approach to handling tech debt at scale?
Company-Level Impact
- How do you translate business goals into architectural principles?
- How do you design team boundaries that match domain complexity?
- How do you prevent a system from becoming unmaintainable in 5+ years?
After interviewing with developers across a wide range of experience levels, one thing became very clear: the evolution of a developer is reflected in the questions they ask. Early-career engineers (0–5 years) focus on correctness and mechanics. Their questions revolve around syntax, APIs, and “how does this work?” They are mastering the foundations, and every detail matters.
Mid-career engineers (5–12 years) shift toward structure and decision-making. They start to care about architecture, patterns, maintainability, and the long-term health of a codebase. Their questions are rarely about syntax — they are about trade-offs, performance, testing, and how systems grow with teams and requirements.
Senior engineers (12–20+ years) operate at an entirely different altitude. Their questions explore system boundaries, resilience, domain modeling, scaling, team processes, and communication. They’ve lived through migrations, outages, and organizational change. They understand that architecture is not just code — it’s people, processes, and consequences.
What stood out to me is this: as developers grow, their questions mature from “How do I write this?” to “How should this system behave, evolve, and stay healthy over time?” Seniority isn’t defined by years, titles, or tools —it’s defined by the clarity and depth of the questions you ask.
