FreeExam

Frontend system design

A senior frontend engineer interview on designing large web frontends, from state ownership and data fetching to performance budgets, offline sync, security, and safe rollouts.

These prompts are original practice. They are not questions from a named employer or a live hiring loop.

  1. 1.You are asked to design the frontend for a ride dispatch map used by dispatchers. Before picking any libraries, what do you ask first?

  2. 2.A clinic booking site learns that most patients book on older Android phones over slow mobile networks. Which design decision does this most directly drive?

  3. 3.You are designing the diff view for a code review tool. Which clarifying question changes the design the most?

  4. 4.Product asks for real-time charts on a factory sensor dashboard. What should you clarify before choosing a transport?

  5. 5.During a design round the interviewer will not give a number for daily users. What should you do?

  6. 6.A payroll export screen will be used by about 40 internal accountants on office laptops. A teammate proposes edge rendering, CDN page caching, and a service worker. What is your view?

  7. 7.In a design round for a photo backup web app, you propose server rendering. The interviewer asks what tradeoff you are choosing. What is the best answer?

  8. 8.A ticket sale page must be usable within 5 seconds on a 1.6 megabit per second link. You allow 1 second for connection setup and 1.5 seconds for script parsing and running. About how many compressed bytes can the page download?

  9. 9.On a travel deals page, the server responds at 0.8 s, the hero image request starts only after the app script runs at 1.9 s, the image takes 0.9 s to download, and painting takes 0.1 s. What is the best first fix for Largest Contentful Paint (LCP)?

  10. 10.Field data for a recipe site shows that 70 percent of page loads have Largest Contentful Paint under 2.5 seconds. Does the page meet the good threshold?

  11. 11.On a grocery app, a tap waits 40 ms for the main thread, the handler runs 120 ms, rendering takes 90 ms, and the browser needs 30 ms to show the next frame. About what does Interaction to Next Paint (INP) record, and how is it rated?

  12. 12.A late cookie banner on a bakery site shifts content. The moved elements affect half of the viewport, and they move by a fifth of the viewport height. What is the layout shift score for this one shift?

  13. 13.A log viewer team plans to load 1 million rows into the browser, each about 200 bytes as a JavaScript object. Roughly how much memory is that, and what follows?

  14. 14.A ride dispatch map shows 2,000 vehicles, and each position update is about 100 bytes, sent once per second for every vehicle. What is the download rate per client, and what do you do?

  15. 15.A cooking magazine home page has 30 card images of 150 KB each, and only 6 are visible on first load. What is the image payload on first load with lazy loading of offscreen images, versus loading them all?

  16. 16.Six product teams share one storefront app. Each team keeps adding a little JavaScript, and load time creeps up every quarter. What keeps a performance budget from eroding?

  17. 17.Two pages each send 300 KB compressed: one is mostly JavaScript, the other mostly JPEG images. Which costs more on a low-end phone, and why?

  18. 18.An email client's message composer is used in three places and now takes 25 boolean props to switch features on and off. What is the better design?

  19. 19.In a photo backup app, each of 200 thumbnails in an album grid fetches its own metadata on mount, making 200 requests. What is a better boundary?

  20. 20.A design system must support three brands with the same combobox behavior and very different looks. How should the component be structured?

  21. 21.A furniture store product page has a long static description and a small interactive color picker. With React server components, where do you draw the client boundary?

  22. 22.A shared Table component takes a mode prop with nine values, and a new mode is added almost every sprint. What should the owning team do?

  23. 23.A hotel search page has a filter panel, a results list, and a map. All three must react when a filter changes. Which design keeps them decoupled?

  24. 24.On a concert ticket sale site, where should the chosen price range filter for the event list live?

  25. 25.A team copies every API response into a global Redux store and hand-writes reducers for loading flags, errors, and refetching. What would you change?

  26. 26.After a user edits an item's name on its detail page in an inventory app, the list page still shows the old name. What is the right fix?

  27. 27.Which piece of state in a code review tool belongs in the URL?

  28. 28.A reviewer types a long comment in a code review tool, then closes the tab by mistake and loses it. What is a good design?

  29. 29.A factory sensor dashboard stores the whole selected sensor object in component state. After the list refetches, the detail panel shows stale readings. What fixes this?

  30. 30.A cookbook app's server cache refetches every list each time the window regains focus, and API traffic rises fivefold. Recipes change rarely. What helps?

  31. 31.A multi-step mortgage application is 6 steps long. Users who refresh midway lose everything. What is a sound design?

  32. 32.A mobile web home page makes 7 API calls to 5 services over networks with about 300 ms round trips, and some calls wait on others. What helps most?

  33. 33.In a news feed, opening an article from the list takes about 600 ms because its data loads only after the click. What is a good improvement?

  34. 34.Three components on a dashboard each request the current user, and the network panel shows three identical calls on every load. What is the best fix?

  35. 35.After a 10-minute outage, 200,000 open clients of a parcel tracking app all retry every 2 seconds at once, and the recovering API falls over again. What should the client do?

  36. 36.On a train timetable app, a request sometimes hangs for two minutes on flaky networks and the screen spins forever. What is the best change?

  37. 37.A team proposes GraphQL for a large marketplace frontend to fix overfetching. What cost should they plan for?

  38. 38.A city events page shows a list that takes 3 seconds to load on slow networks. Users often bounce. What is the best loading design?

  39. 39.In an infinite news feed, a user opens a post and presses Back, and the feed reloads at the top. What is the best fix?

  40. 40.A car parts catalog shows search results that buyers compare, revisit, and share with colleagues. Which list pattern fits best?

  41. 41.A craft marketplace uses infinite scroll, and users can never reach the footer links for help and returns. What is the best fix?

  42. 42.A team chat app virtualizes its message list, but messages vary in height and the scroll position jumps as users scroll. What is the fix?

  43. 43.Users of an inventory table with 50,000 virtualized rows complain that the browser's find-in-page misses most items. What is the right response?

  44. 44.A virtualized list has a 900 px viewport, fixed 36 px rows, and an overscan of 5 rows above and 5 below. About how many rows are rendered at once?

  45. 45.In a support chat window, loading older messages above the current view pushes the visible messages down. What is the fix?

  46. 46.An admin audit log shows Page 1 of 48,213, and the exact count query takes 6 seconds on a huge table. What is the best change?

  47. 47.After an hour of scrolling a pet photo feed, the tab uses 1.5 GB and starts to stutter. What is the best fix?

  48. 48.A warehouse sensor dashboard gets one-way updates every few seconds, and many users sit behind strict corporate proxies. Which transport fits best?

  49. 49.A payroll export job takes from 30 seconds to 10 minutes. The page must show when the file is ready. What is the simplest sound design?

  50. 50.A team messaging app reconnects its WebSocket after a network drop, and users report missing messages from the gap. What is the fix?

  51. 51.After a reconnect, a customer support inbox shows some messages twice, because pushed and refetched messages overlap. What is the fix?

  52. 52.A live auction board receives about 500 price updates per second, and the page freezes. What should the client do?

  53. 53.When the chat server restarts, about 100,000 WebSocket clients reconnect within the same second and overload it. What client change helps most?

  54. 54.A live energy usage dashboard keeps drawing charts while its tab is in the background, draining laptop batteries. What is the best fix?

  55. 55.A project tracker gets pushed task updates, but the board, the task page, and the sidebar counts sometimes disagree. What is the best design?

  56. 56.In a shared to-do app with optimistic updates, a user toggles an item twice quickly, and the two server responses arrive out of order. What prevents a wrong final state?

  57. 57.For an event ticketing site, which action is the poorest fit for an optimistic update?

  58. 58.A field inspection app for bridge inspectors must keep working offline for hours and sync later. What is the core client design?

  59. 59.When an offline outbox replays after a flaky reconnect, some field reports are created twice on the server. What fixes this?

  60. 60.Two nurses edit the same appointment note while offline. Both sync later. What is the safest conflict handling for free-text clinical notes?

  61. 61.A shared notes editor wants concurrent offline text edits to merge automatically with no lost keystrokes. What fits?

  62. 62.An offline-capable news reader uses a service worker. Which caching plan fits the app shell and the article API?

  63. 63.Data that a hiking trail app stores offline in IndexedDB sometimes disappears on phones low on space. What should the design do?

  64. 64.An offline notes app orders edits by each device's clock, and some edits apply in the wrong order. What is the better approach?

  65. 65.A product documentation site has 5,000 pages that change about once a week and must load fast worldwide. What rendering strategy fits?

  66. 66.A server-rendered bike rental page shows content at 1.2 seconds, but buttons do nothing until 4 seconds. What is the likely cause, and the fix?

  67. 67.A server-rendered flight status page shows times in UTC on the server and local time in the browser, causing hydration mismatch warnings. What is the best fix?

  68. 68.A team moves server rendering of a banking dashboard to edge locations, but all its data lives in one database region. Pages get slower. Why?

  69. 69.A server-rendered marketplace page is cached at the CDN, and one user sees another user's name in the header. What went wrong, and the fix?

  70. 70.A logged-in analytics dashboard for small shops is heavy on charts, needs no search ranking, and every view is per user. Where should optimization effort go?

  71. 71.In a single-page app for a museum, screen reader users do not notice when a link loads a new view. What should the router do?

  72. 72.A virtualized list of 10,000 contacts renders about 30 rows at a time, and screen readers announce only 30 items. What fixes the count?

  73. 73.A busy community forum's live thread announces every new reply through a live region, and screen reader users find it overwhelming. What is a better design?

  74. 74.A shopping cart builds the text 'You have ' + n + ' items' in code. The app is launching in Polish and Arabic. What is the right approach?

  75. 75.After adding German, many buttons and table headers in a permit portal overflow because strings are about 35 percent longer. What prevents this next time?

  76. 76.An international clinic booking app formats dates and prices with hand-written string code, and users in several countries report confusing results. What fixes this?

  77. 77.A travel booking app ships translations for 30 languages in its main bundle, about 80 KB each. How much does that add, and what should change?

  78. 78.A city directory sorts place names with a plain comparison, and names with accents land after Z. What is the fix?

  79. 79.The design system team must make a breaking change to the Button API, which 30 apps use. What is the best rollout?

  80. 80.Brand colors and spacing values are hardcoded in hundreds of places across web and mobile apps. A rebrand is coming. What is the best foundation?

  81. 81.Teams keep forking design system components because they cannot customize small details. What should the system offer?

  82. 82.A web page loads two copies of the design system, version 3 and version 4, adding 140 KB. What is the fix?

  83. 83.A design system has 120 components. How do you catch unintended visual changes before release?

  84. 84.A team of 8 engineers builds one product and wants to split it into micro-frontends to feel modern. What do you advise?

  85. 85.In a micro-frontend shop, each of three parts bundles its own copy of React, and the page loads three of them. What is the usual fix?

  86. 86.Micro-frontends in an insurance portal talk by reading and writing one shared global store, and a change in one part breaks another. What is better?

  87. 87.A team splits a single page into eight micro-frontend widgets owned by four teams. Page load suffers and bugs cross widget lines. What split works better?

  88. 88.Micro-frontends in a banking portal drift in look and keyboard behavior, and users notice. What keeps the experience consistent?

  89. 89.A fleet maintenance dashboard has one error boundary at the root. A failing weather widget blanks the whole page. What is the better design?

  90. 90.Production error reports for a fitness app show only minified stack traces. What is the best fix?

  91. 91.A podcast site gets 3 million page views a day, each sending about 8 telemetry events. You sample 10 percent. About how many events per second reach the collector on average?

  92. 92.An error tracker for a wedding planning site receives 50,000 errors a day, most from browser extensions and third-party scripts. What helps most?

  93. 93.Analytics events sent when users leave a quiz site page are often lost. What is the reliable way to send them?

  94. 94.What is a good service level indicator for the checkout flow of a flower delivery site?

  95. 95.A banking app shows raw API error text such as 'NullReferenceException at line 214' to customers. What is the better design?

  96. 96.A single-page app on app.example.com calls an API on api.example.com and today keeps OAuth tokens in JavaScript memory and local storage. What design reduces token theft risk most?

  97. 97.You must add a strict Content Security Policy (CSP) to an old forum app with many inline scripts. What is the safest rollout?

  98. 98.A charity donation page loads a third-party analytics script from the vendor's servers. What reduces the supply-chain risk most?

  99. 99.A money transfer page in a credit union app can be loaded inside an iframe on any site. What should you add?

  100. 100.An app for a tenants' union uses cookie sessions. What protects its state-changing requests from cross-site request forgery?

  101. 101.An embeddable booking widget listens for postMessage and acts on any message it receives. What should it do?

  102. 102.A password reset link puts its token in the URL. The landing page loads analytics, and the token shows up in third-party logs. What is the fix?

  103. 103.You are shipping a redesigned checkout for an online pharmacy with 2 million monthly users. What is the safest rollout?

  104. 104.A wellness app evaluates feature flags with a client fetch after load, so users see the old UI flash before the new one. What is the fix?

  105. 105.A frontend codebase for a recipe delivery service has 300 feature flags, many fully rolled out a year ago. What practice prevents this?

  106. 106.During an A/B test on a language learning site, users see the new UI on one visit and the old UI on the next. What is the fix?

  107. 107.A new search feature on a used car site starts causing errors for 5 percent of users. A deploy takes 40 minutes. What do you do first?

  108. 108.After each deploy of a web game portal, users with open tabs hit chunk load errors when they navigate. What is the fix?

  109. 109.A frontend and its API for a moving company deploy separately. The frontend needs a new field from the API. What order is safest?