<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Stacktrick: frontend interview notes</title><description>Friendly, precise study notes and a practice room for JavaScript, TypeScript, React, Angular, Node.js and frontend system design interviews.</description><link>https://stacktrick.com/</link><item><title>Frontend System Design: Build an Autocomplete</title><link>https://stacktrick.com/notes/frontend-system-design-autocomplete/</link><guid isPermaLink="true">https://stacktrick.com/notes/frontend-system-design-autocomplete/</guid><description>A structured walkthrough of the autocomplete design round: requirements, architecture, race-free fetching, caching, rendering, the ARIA combobox and metrics.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate><category>system-design</category><category>system-design</category><category>autocomplete</category><category>caching</category><category>accessibility</category><category>performance</category></item><item><title>Closures, Scope &amp; the Classic setTimeout Loop</title><link>https://stacktrick.com/notes/closures-settimeout-loop/</link><guid isPermaLink="true">https://stacktrick.com/notes/closures-settimeout-loop/</guid><description>What lexical scope and closures really are, why the var + setTimeout loop prints 3 3 3, three ways to fix it, and where closures earn their keep in real code.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>closures</category><category>scope</category><category>settimeout</category><category>memory</category></item><item><title>TypeScript Generics, Explained Through Interview Questions</title><link>https://stacktrick.com/notes/typescript-generics-interview-questions/</link><guid isPermaLink="true">https://stacktrick.com/notes/typescript-generics-interview-questions/</guid><description>Ten generics questions, from constraints and keyof to infer, distributive conditional types and variance, each with a short answer and code you can reproduce.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate><category>typescript</category><category>generics</category><category>types</category><category>conditional-types</category><category>inference</category></item><item><title>The Event Loop: Microtasks vs Macrotasks</title><link>https://stacktrick.com/notes/event-loop-microtasks-macrotasks/</link><guid isPermaLink="true">https://stacktrick.com/notes/event-loop-microtasks-macrotasks/</guid><description>How the call stack, task queue and microtask queue fit together, where rendering happens, how async/await schedules work, and output puzzles with answers.</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>event-loop</category><category>promises</category><category>async-await</category><category>microtasks</category></item><item><title>useEffect Pitfalls Interviewers Love to Ask</title><link>https://stacktrick.com/notes/useeffect-pitfalls/</link><guid isPermaLink="true">https://stacktrick.com/notes/useeffect-pitfalls/</guid><description>Stale closures, missing cleanup, fetch races, Strict Mode&apos;s double run, infinite loops and effects you don&apos;t need, plus how useLayoutEffect differs in timing.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate><category>react</category><category>hooks</category><category>useeffect</category><category>closures</category><category>rendering</category></item><item><title>The this Keyword: Four Binding Rules and One Exception</title><link>https://stacktrick.com/notes/this-keyword-binding-rules/</link><guid isPermaLink="true">https://stacktrick.com/notes/this-keyword-binding-rules/</guid><description>How JavaScript decides what this refers to: default, implicit, explicit and new binding, the order they win in, why arrow functions ignore them, and the bugs that follow.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>this</category><category>functions</category><category>arrow-functions</category><category>bind</category></item><item><title>Angular Change Detection, OnPush &amp; Signals Demystified</title><link>https://stacktrick.com/notes/angular-change-detection-onpush-signals/</link><guid isPermaLink="true">https://stacktrick.com/notes/angular-change-detection-onpush-signals/</guid><description>How Angular decides when to update the DOM: the tree walk, what Zone.js did, what marks an OnPush component dirty, and how signals make zoneless apps possible.</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><category>angular</category><category>change-detection</category><category>onpush</category><category>signals</category><category>zoneless</category></item><item><title>Hoisting, the TDZ and var vs let vs const</title><link>https://stacktrick.com/notes/hoisting-tdz-var-let-const/</link><guid isPermaLink="true">https://stacktrick.com/notes/hoisting-tdz-var-let-const/</guid><description>What the engine sets up before your code runs, why var reads as undefined while let throws, how the temporal dead zone works, and why const doesn&apos;t mean immutable.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>hoisting</category><category>tdz</category><category>scope</category><category>variables</category></item><item><title>type vs interface: When It Actually Matters</title><link>https://stacktrick.com/notes/type-vs-interface/</link><guid isPermaLink="true">https://stacktrick.com/notes/type-vs-interface/</guid><description>Declaration merging, extends vs intersections, what only type aliases can express, and the few differences that change behavior, with a clear rule of thumb.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>typescript</category><category>types</category><category>interfaces</category><category>type-aliases</category></item><item><title>React Reconciliation &amp; Keys: What Really Happens</title><link>https://stacktrick.com/notes/react-reconciliation-and-keys/</link><guid isPermaLink="true">https://stacktrick.com/notes/react-reconciliation-and-keys/</guid><description>Render vs commit, the diffing rules React relies on, why index keys break inputs, how a key resets state, and what Fiber and batching change about updates.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>react</category><category>reconciliation</category><category>keys</category><category>rendering</category><category>fiber</category></item><item><title>Prototypes &amp; Inheritance Without the Headache</title><link>https://stacktrick.com/notes/prototypes-and-inheritance/</link><guid isPermaLink="true">https://stacktrick.com/notes/prototypes-and-inheritance/</guid><description>How the prototype chain resolves properties, what __proto__ and prototype each mean, what new and class do under the hood, and how to wire up inheritance by hand.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>prototypes</category><category>inheritance</category><category>classes</category><category>objects</category></item><item><title>switchMap vs mergeMap vs concatMap vs exhaustMap</title><link>https://stacktrick.com/notes/rxjs-switchmap-mergemap-concatmap-exhaustmap/</link><guid isPermaLink="true">https://stacktrick.com/notes/rxjs-switchmap-mergemap-concatmap-exhaustmap/</guid><description>The four RxJS flattening operators differ in one thing: what happens when a new value arrives while the previous inner observable is still running.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>angular</category><category>rxjs</category><category>operators</category><category>observables</category><category>http</category></item><item><title>Implement Debounce and Throttle From Scratch</title><link>https://stacktrick.com/notes/debounce-throttle-from-scratch/</link><guid isPermaLink="true">https://stacktrick.com/notes/debounce-throttle-from-scratch/</guid><description>Build debounce and throttle the way interviewers expect: timelines, this and args, cancel(), leading and trailing edges, and how to test them.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><category>javascript</category><category>debounce</category><category>throttle</category><category>performance</category><category>timers</category></item><item><title>Build TypeScript&apos;s Utility Types From Scratch</title><link>https://stacktrick.com/notes/utility-types-from-scratch/</link><guid isPermaLink="true">https://stacktrick.com/notes/utility-types-from-scratch/</guid><description>Reimplement Partial, Pick, Omit, Exclude, ReturnType, Awaited and friends with mapped and conditional types, plus modifiers, key remapping and template literals.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate><category>typescript</category><category>utility-types</category><category>mapped-types</category><category>conditional-types</category><category>template-literals</category></item><item><title>memo, useMemo and useCallback: When They Actually Help</title><link>https://stacktrick.com/notes/react-memo-usememo-usecallback/</link><guid isPermaLink="true">https://stacktrick.com/notes/react-memo-usememo-usecallback/</guid><description>Why components re-render, what memo really compares, how referential equality decides everything, when memoization is wasted, and where the React Compiler fits.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><category>react</category><category>memoization</category><category>performance</category><category>hooks</category><category>rendering</category></item><item><title>Angular Dependency Injection: Providers, Scopes &amp; inject()</title><link>https://stacktrick.com/notes/angular-dependency-injection/</link><guid isPermaLink="true">https://stacktrick.com/notes/angular-dependency-injection/</guid><description>How Angular finds a dependency: element and environment injectors, providedIn root, provider recipes, InjectionToken, resolution modifiers and duplicate singletons.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><category>angular</category><category>dependency-injection</category><category>providers</category><category>services</category><category>inject</category></item><item><title>The Node.js Event Loop Phases, Explained</title><link>https://stacktrick.com/notes/node-event-loop-phases/</link><guid isPermaLink="true">https://stacktrick.com/notes/node-event-loop-phases/</guid><description>What libuv does on each turn of the loop, where nextTick, promises, setImmediate and timers really run, and how to keep CPU-heavy work from blocking everything.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><category>node</category><category>event-loop</category><category>libuv</category><category>async</category><category>performance</category></item><item><title>The Cascade, Specificity &amp; the Box Model</title><link>https://stacktrick.com/notes/css-cascade-specificity-box-model/</link><guid isPermaLink="true">https://stacktrick.com/notes/css-cascade-specificity-box-model/</guid><description>How the browser decides which CSS rule wins (origin, @layer, specificity, order), how inheritance and box-sizing work, and why z-index sometimes seems broken.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate><category>html-css</category><category>css</category><category>cascade</category><category>specificity</category><category>box-model</category></item><item><title>Write Promise.all (and Friends) From Scratch</title><link>https://stacktrick.com/notes/promise-all-polyfill/</link><guid isPermaLink="true">https://stacktrick.com/notes/promise-all-polyfill/</guid><description>Implement Promise.all with native semantics, then allSettled, race, any and a concurrency-limited pool, plus the edge cases interviewers probe.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><category>javascript</category><category>promises</category><category>async</category><category>polyfill</category><category>concurrency</category></item></channel></rss>