JavaScript & TypeScript
The language of the web and how it behaves in the browser.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
- == vs ===Loose equality with coercion vs strict equality.
- ES Modulesimport and export: JavaScript's standard module system.
- Fetch APIThe built-in way to make HTTP requests from JavaScript.
- JavaScriptThe programming language of the web.
- JSON.parse and JSON.stringifyConverting between JSON text and JavaScript values.
- Node.jsA JavaScript runtime for servers and tooling.
- Optional Chaining and Nullish Coalescing?. and ?? for handling missing values safely.
- Template LiteralsBacktick strings with interpolation.
- TypeScriptJavaScript with static types.
- var, let and constJavaScript's three ways to declare variables, and how they're scoped.
Mid-level
Own a feature end to end without hand-holding.
- CommonJSNode's older require/module.exports module system.
- Deno and BunNewer JavaScript runtimes with built-in tooling.
- ECMAScriptThe standard JavaScript implements, with a new version every year.
- Microtasks vs MacrotasksWhy promise callbacks run before setTimeout callbacks.
Senior
Own a system, its failure modes, and its trade-offs.
Nothing here yet.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- == vs ===Loose equality with coercion vs strict equality.
- DebounceWaiting until events stop before acting, e.g. for search boxes.
- DOM ManipulationReading and changing page elements with JavaScript.
- ES Modulesimport and export: JavaScript's standard module system.
- Event HandlingResponding to clicks, key presses and other user actions.
- Fetch APIThe built-in way to make HTTP requests from JavaScript.
- TypeScriptJavaScript with static types.
- var, let and constJavaScript's three ways to declare variables, and how they're scoped.
13 more junior concepts
- ECMAScriptThe standard JavaScript implements, with a new version every year.
- Event Bubbling and CapturingEvents travelling up (and down) the DOM tree.
- Event DelegationOne listener on a parent handling events for many children.
- HoistingDeclarations behaving as if moved to the top of their scope.
- JavaScriptThe programming language of the web.
- JSON.parse and JSON.stringifyConverting between JSON text and JavaScript values.
- Node.jsA JavaScript runtime for servers and tooling.
- Optional Chaining and Nullish Coalescing?. and ?? for handling missing values safely.
- preventDefault and stopPropagationCancelling default browser behavior or further event propagation.
- Template LiteralsBacktick strings with interpolation.
- this in JavaScriptHow this is determined by the way a function is called.
- ThrottleActing at most once per interval, e.g. for scroll handlers.
- Web APIsThe browser's built-in APIs: clipboard, geolocation, notifications and more.
Mid-level
Own a feature end to end without hand-holding.
Core: start here
- Microtasks vs MacrotasksWhy promise callbacks run before setTimeout callbacks.
6 more mid-level concepts
- CommonJSNode's older require/module.exports module system.
- Deno and BunNewer JavaScript runtimes with built-in tooling.
- History APIChanging the URL without reloading; the basis of client-side routing.
- Intersection ObserverDetecting when elements enter the viewport, e.g. for lazy loading.
- Resize ObserverReacting to an element changing size.
- structuredCloneThe built-in deep copy for JavaScript values.
Senior
Own an app's architecture, performance, and failure modes.
- Mutation ObserverWatching for changes to the DOM.
- Proxy and ReflectIntercepting operations on objects; how some reactivity systems work.
- SymbolA unique, non-string property key.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.