GreatFrontEnd (@greatfrontend) header
GreatFrontEnd (@greatfrontend) profile picture

For front end engineers to learn & connect. 🌬️Breeze thru your interviews w/ GreatFrontEnd Interviews 🚀Build project challenges w/ GreatFrontEnd Projects

Joined September 2022
Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)Photo by GreatFrontEnd (@greatfrontend)
5 ways to show senior level impact on a front end resume. Start with the formula. “Led front end development” names a role. Owned [scope] under [constraint], chose [direction], produced [result] names a scope, a risk and a decision.
1
1
161
“Built design system” becomes the APIs you owned plus who adopted them. A component count shows what you built; adoption shows how widely it’s used. And turn “mentored developers” into an artifact the team still uses, like a review checklist.
1
55
Every senior bullet becomes an interview question. What was the problem, what options did you consider, what tradeoff did you accept, how did you know it worked, who needed to agree? If you can’t answer those, rewrite the bullet first.
37
5 async patterns that sound similar and behave differently: Promise.all vs Promise.allSettled Promise.race vs Promise.any async await vs .then setTimeout vs setInterval a microtask vs a macrotask Follow for more. #javascript #async #promises #webdevelopment #frontend
1
2
215
Snowflake asked a front end candidate to build a grid game, reported in the GreatFrontEnd community. Model the board in state first: robot {row, col}, candy {row, col}, wins. The grid is data, the DOM just draws it. Arrow keys move the robot, so listen for keydown.
1
2
251
The robot can’t leave the grid, so clamp every move. Walking into a wall is a no-op, not an error. When the robot reaches the candy: store the score and the positions, derive the catch. Compare after each move, and if they match, increment and respawn.
1
56
The new candy goes to a random cell, never the robot’s. If it overlaps, pick again. The invariant is that the candy is always on an empty cell. When requirements grow, obstacles, more candy, a timer, the state shape follows what the UI renders.
46
Your CLAUDE.md is quietly running on instructions you wrote months ago. A path moves, a build command changes, you upgrade the model, a skill gets added. Nobody goes back to fix the line, so the stale one stays and steers every session.
2
3
289
Claude Code can read your instruction files and flag what’s stale. The normal /doctor checks your install; add prompt-audit and it reads your instructions instead. Needs v2.1.283 or later. It surfaces outdated lines and conflicting ones across files.
1
1
95
It won’t rewrite anything behind your back. The audit reports what it found and proposes changes for you to review before applying them. Run /doctor prompt-audit after every model upgrade and every few months. Instruction files are code your agent runs on every turn.
62
5 JavaScript cancellation patterns that look similar: xhr.abort() vs fetch() + AbortController setTimeout vs AbortSignal.timeout() manual signal chaining vs AbortSignal.any() signal.aborted vs the abort event one generic catch vs error.name Follow for more.
2
316
Node.js fixed a Brotli bug that can let attackers run code on a server. Five updates for front end engineers from the last two weeks. 01 Node bundles its own copy of Brotli, so it isn’t in package.json and npm audit can’t see it. Fixed in 22.23.4, 24.22.1 and 26.12.1.
1
266
03 Fake take-home assignments ship their own Tailwind plugin to run hidden code on your machine. npm install pulls a private package via the repo’s own .npmrc, and the dev server loads it. --ignore-scripts won’t stop it. Run take-homes in a container.
1
72
04 Developers are ranking what Interop 2027 should make work everywhere. Josh Comeau’s top three: @function, corner-shape, border-shape. 05 Chrome 156 lets a failed import() be retried. Before 156 it cached the failure and the retry failed instantly.
56
Modal vs popover: the difference is what happens to the rest of the page. A popover leaves it interactive. dialog.showModal() adds a ::backdrop and makes the rest of the document inert, so nothing outside the dialog can be interacted with.
1
1
3
268
A popover is always non-modal. popover="auto" closes on outside click or Esc, popover="manual" you toggle yourself. Both rise into the top layer, so neither needs a z-index. The z-index: 999 you were about to write does nothing for either one.
1
92
You can open a popover with no JavaScript: a button with popovertarget plus a div with the popover attribute. Ask one question. Must the user deal with this before anything else? No, popover. Yes, dialog plus showModal().
1
76
5 DOM event pairs that sound similar: Individual event listeners vs event delegation Event capturing vs event bubbling event.target vs event.currentTarget preventDefault() vs stopPropagation() removeEventListener() vs AbortController with signal Follow for more.
2
238