Frontend Engineering interview guide
Every question carries the same frame: the production situation behind it, what it is actually testing, what a strong answer sounds like, and the flags on both sides. The red flags are specific wrong answers a confident engineer really gives — not 'has not heard of the API'.
A dashboard with a dense results table behind the panel. The animation is smooth on the developer's laptop and on the reviewer's laptop. It was shipped, and support started getting "the filters are laggy" reports from field staff on company-issued phones.
An analytics tool. The handler sets `loading = true`, then formats 40,000 rows into CSV, then sets `loading = false` and triggers a download. Users have learned to click Export twice because "the first click does nothing".
The current implementation puts all of it in one global store, because "then anything can read it". Two bugs are open: sharing a link to filtered results shows unfiltered results, and going back after opening a row loses the filters.
A team standardising on one rendering strategy for everything they build. The admin tool is used all day by 200 staff; the marketing site is mostly first-time visitors arriving from search and social.
A content site rendering "posted 3 hours ago" server-side. The warning appears only for some users, mostly in the evening, and QA cannot reproduce it. The suppression was added in a sprint labelled "cleanup".
A B2B application. The complaint arrives through account management as a churn risk. The team has already spent a sprint reducing bundle size and nobody reported an improvement.
A design system team is replacing twelve ad-hoc modals across a product. The existing ones are absolutely-positioned divs with an overlay, and one of them is used for a destructive confirmation.
A B2B collaboration tool. Comments are visible to everyone in a workspace, including admins. The workspace has SSO and an admin panel on the same origin.
An internal API that a new dashboard on a different subdomain needs to call. The API uses cookie-based sessions. The change was made in a config file and shipped the same afternoon.
A SPA using a data-fetching library with cached queries. The mutation succeeds; the server is correct. The team's current fix in similar cases has been to refetch on window focus.
A storefront search. The bug is intermittent, worse on mobile, and the last engineer who looked at it added a debounce, which reduced the frequency without removing it.
An internal tool people keep open in a background tab for days. The API change renamed a field and dropped the old one. Error rates are low, persistent, and concentrated in a handful of users.
A single-page dashboard with a chart library, a rich-text editor used on one settings page, a date picker, a PDF export, and an internationalisation bundle carrying every locale. Everything is imported at the top of the app entry.
A logistics tool. Users sort by column, scroll to find a shipment, edit a cell, and occasionally use the browser's find-in-page to locate an order number. Product will not accept pagination.
A document tool used on office wifi and on trains. The star also appears in a sidebar count, a "starred" filter view, and a recently-starred list on the home page.
An internal ops tool. It is behind a corporate proxy at some customer sites, deployed behind a load balancer, and users keep it open in a background tab all day.
A shared component library. Each request was reasonable, each was implemented as a boolean or a callback prop, and the component now has branches that only one consumer exercises. Changing it is frightening.
An insurance quote form with conditional sections, cross-field validation, a repeating address block, and a "save draft" that runs while the user types.
A documentation site converted from server-rendered pages to a SPA. Nothing looks different. A screen-reader user reports that following a link "does nothing", and a keyboard user reports that Tab after navigating goes to the site header again from the top.
An agent console. Users navigate between hundreds of ticket views in a session, each with a chart, a live-updating status subscription and a resize-aware layout. The team cannot reproduce it in a normal working session.
A team choosing a framework for a new data-heavy internal product, with a candidate who has used one of the three professionally.
A data import tool. Today the whole thing runs in the drop handler; the tab freezes and users think it crashed. A previous attempt to move it to a worker was abandoned because "it was not any faster".
Technicians work in basements and rural sites. A job form has a status, notes, parts used and photos. Two technicians occasionally work the same job, and dispatch can also change a job from the office while a technician is offline.
An assistant panel inside a larger application. Answers can take a while, cite documents, call tools that modify data, and users frequently switch tabs or navigate mid-answer.