Accessibility in React Native
VoiceOver and TalkBack, accessibility props and their aria-* forms, grouping and hiding, focus and announcements, font scaling, touch targets, reduce motion, testing
VoiceOver and TalkBack, accessibility props and their aria-* forms, grouping and hiding, focus and announcements, font scaling, touch targets, reduce motion, testing
Big O, Omega and Theta, complexity classes, abstract data types, arrays, linked lists, stacks, queues, hash tables, trees, heaps, graphs, sorting, search and common algorithmic techniques
Animated values, timing / spring / decay, interpolate, composition, the native driver, LayoutAnimation, why not to animate with setState
AppState states and events, refresh on return, hiding content in the app switcher, why JS stops in the background, expo-background-task, Headless JS, foreground services
File conventions of the app/ directory, segments, route groups, parallel and intercepting routes
Array methods by group, mutating and non-mutating, common pitfalls
Authentication vs authorization, sessions vs JWT, OAuth and OIDC
Sessions in cookies, Data Access Layer, Proxy, protecting Server Actions
OAuth and OIDC in the system browser, expo-auth-session and react-native-app-auth, native Apple and Google sign-in, token lifecycle and refresh, biometric login
Naming, DRY / KISS / YAGNI and when DRY hurts, Clean Code principles, code smells
bind(), call(), apply()
Content, padding, border and margin, box-sizing, margin collapsing, block vs inline, block formatting context, overflow, logical properties
Gitflow, GitHub Flow and trunk-based development, which one to choose
Cookies vs localStorage vs sessionStorage, cookie attributes and security
Bundle analysis, tree shaking, code splitting and lighter imports
exec, execFile, spawn and fork, buffered vs streamed output, shell injection, IPC with fork
CI vs continuous delivery vs continuous deployment, pipeline stages, caching, preview environments, a GitHub Actions example, CI/CD for mobile apps
Legacy class components, lifecycle methods and their hook equivalents
Class syntax, inheritance, private fields and static methods
'use client' as a boundary, Server Components as children, serializable props, context providers
A function that remembers the variables of the scope it was created in
Why code review exists, what to look at, how to give and receive feedback
An index of live-coding tasks - bind, call/apply, Promise.all, debounce, deep copy, memoize, flat, event emitter, LRU cache - and where each is solved
Composition, conditional rendering, compound components, render props and HOCs
Transitions, useDeferredValue, Suspense and use
Content-Security-Policy header, directives and source values, strict CSP with nonces and strict-dynamic, Report-Only, frame-ancestors
LCP, INP and CLS, thresholds, field vs lab data, how to improve each metric
Same-Origin Policy, what an origin is, preflight and credentials
The critical rendering path, render-blocking resources, resource hints and fetchpriority, images, fonts, compression and caching
How CSRF works, why CORS does not stop it, SameSite cookies, CSRF tokens, Origin and Fetch Metadata checks
Stored, reflected and DOM-based XSS, escaping by context, sanitization, XSS in React, Trusted Types
CSS variables, var() with a fallback, cascade and inheritance, invalid at computed-value time, @property, theming with light-dark() and color-mix(), vs Sass variables
Tracks and fr, repeat() with auto-fill vs auto-fit, line placement and grid areas, implicit grid, subgrid, Grid vs Flexbox
Transitions vs keyframe animations, why to animate transform and opacity, will-change, CSS vs JavaScript animations, reduced motion
getStaticProps, getStaticPaths, getServerSideProps, ISR and on-demand revalidation, client-side fetching
Fetching in Server Components, waterfalls, parallel requests, streaming, preload, passing a promise to the client
What data types exist in modern JS
Debounce vs throttle, where to use each, an implementation of both and how to use them in React
React Native DevTools and its panels, LogBox, native logs from Xcode and logcat, crash reporting in production with source maps
Console, breakpoints, DevTools panels, React and Redux DevTools
Custom URL schemes vs Universal Links and App Links, linking config, cold start vs a running app, opening a screen from a notification
Creational, structural and behavioral design patterns with frontend examples, Observer vs Pub/Sub, Factory Method vs Simple Factory
Capturing and bubbling, target vs currentTarget, delegation, listener options
Numeric, string and const enums, and why unions often replace them
Environment variables in React Native and Expo, why values in the JS bundle are not secret, where to keep real secrets
NEXT_PUBLIC_ variables inlined at build time vs server variables read at runtime, .env file order, one Docker image for several environments
What error boundaries catch and what they don't, where to place them, how to reset them and react-error-boundary
throw, try...catch...finally, custom errors and errors in async code
Operational vs programmer errors, system errors and codes, error handling in callbacks, promises and EventEmitter, unhandled errors, Express middleware
import and export, live bindings, modules in the browser, dynamic import, top-level await, import maps and import attributes
Call stack, tasks and microtasks, and the order of execution
libuv event loop phases, process.nextTick and microtasks, setImmediate vs setTimeout, timers in Node.js
EventEmitter, synchronous listeners, the special error event, once and promises, listener leaks, EventEmitter vs EventTarget
What the engine creates to run code, hoisting and the scope chain
What fastlane automates for iOS and Android releases, lanes, match, fastlane vs EAS
Main and cross axes, container and item properties, flex-grow / shrink / basis and flex 1, gap and wrapping, the min-width trap, order
Pure functions, side effects, referential transparency, immutability, higher-order functions, closures, currying vs partial application, composition, functors and monads
Function Declarations, Function Expressions, and Arrow Functions
How memory is freed in JavaScript and where leaks come from
Type parameters, constraints, defaults and generic React components
Gesture Responder System, Pressable, PanResponder, React Native Gesture Handler and gesture composition
pushState and replaceState, the popstate event, hash vs history routing, and the Navigation API
Built-in hooks at a glance, the Rules of Hooks and custom hooks
From a URL to pixels - DNS, connection, parsing, the rendering pipeline
Methods, status codes, caching, HTTP versions and requests with fetch
Creating an HTTP server with node:http, request and response as streams, reading the body, headers, making requests with fetch
What an index is, B-tree and other index types, composite, partial and expression indexes, when an index is not used, EXPLAIN
IntersectionObserver, ResizeObserver and MutationObserver, when their callbacks run, lazy loading, infinite scroll and the ResizeObserver loop error
The iteration protocols, generator functions, iterator helpers and async iteration
KeyboardAvoidingView per platform, Android adjustResize / adjustPan, keyboardShouldPersistTaps, Keyboard API, react-native-keyboard-controller, moving to the next field
Rendering only the visible part of a long list or grid
Rendering lists with map, choosing a key, an index as a key, resetting state with a key
ScrollView vs FlatList vs SectionList vs FlashList, virtualization, FlatList optimization props
Map vs plain objects, Set and set methods, WeakMap and WeakSet and when to use them
Merge vs rebase, fast-forward and merge commits, squash, interactive rebase, cherry-pick and conflicts
Metadata API (metadata vs generateMetadata, merging, title templates), OG images, sitemap and robots, viewport, streaming metadata
Threat model of a mobile app, OWASP MASVS and Mobile Top 10, what the bundle reveals, HTTPS and SSL pinning, root detection vs attestation, sensitive data on screen and in logs, WebView
CommonJS vs ES modules in Node.js, how Node.js picks the module type, require(esm), module.exports vs exports, resolution and caching
Link and prefetching, useRouter, usePathname, useSearchParams, redirect and where to redirect
React Navigation vs Expo Router, stack / tabs / drawer, screens that stay mounted, navigate vs push vs popTo, typed params, auth flow
NoSQL data models (key-value, document, wide-column, graph), SQL vs NoSQL, transactions and consistency, CAP theorem, when to choose which
Cloning objects, accessing properties, iterating, Object static methods
NetInfo and expo-network, isConnected vs isInternetReachable, cached reads, queued writes, offline-first, TanStack Query onlineManager and focusManager, conflicts and idempotent requests
Encapsulation, inheritance, polymorphism and abstraction with TypeScript examples, composition over inheritance
Code splitting and next/dynamic, next/image, next/font, next/script
When to optimize, component structure, memo, useMemo, useCallback and React Compiler
What over-the-air updates can change without the store, EAS Update, runtime versions, what happened to CodePush, store rules
npm, pnpm, Yarn and Bun, lockfiles, semver ranges, dependency types, workspaces, Corepack, install scripts
Why a React Native app lags, the frame budget of the JS and UI threads, measuring in release builds, common causes and fixes, startup time
Runtime permissions on iOS and Android, permission statuses, blocked permissions and settings, libraries
createPortal, event bubbling through portals, modal accessibility
position values, containing block, why sticky does not stick, stacking context and z-index, top layer, anchor positioning, ways to center an element
Imperative vs declarative programming, with examples in JavaScript
Promise states and chaining, Promise.all vs allSettled vs race vs any, async/await, errors and cancellation
The prototype chain, __proto__ vs prototype, what new does
What Proxy (formerly Middleware) is, where it runs in a request, matcher, NextResponse, what it is for and not for
Publishing to the App Store and Google Play, signing, provisioning profiles, Play App Signing, test tracks, review and staged rollout
How push notifications work, device tokens, notification vs data messages, foreground / background / quit behavior, APNs keys, libraries
createContext, providers, useContext and use, re-renders of consumers
createRoot, hydrateRoot, hydration, StrictMode and flushSync
Legacy bridge vs New Architecture (JSI, Fabric, TurboModules, Codegen), threads, rendering pipeline, native libraries and autolinking
React Router modes, nested routes, navigation hooks, loaders and protected routes
Polling, long polling, Server-Sent Events and WebSocket, how each works and when to choose it
Reanimated 4 shared values, worklets and the UI thread, animated styles, layout animations, CSS animations, why it is faster than Animated
Store, actions and reducers, Redux Toolkit slices, React Redux hooks and memoized selectors
useRef, DOM refs, callback refs, ref as a prop and useImperativeHandle
Creating regular expressions, flags, methods and basic syntax
One-to-one, one-to-many and many-to-many relationships, how each is built with foreign keys, junction tables, querying with JOIN
Render and commit phases, virtual DOM, diffing heuristics and Fiber
SSG, ISR, SSR and CSR in the Pages Router, automatic static optimization
When rAF and idle callbacks run in a frame, scheduler.yield() and postTask, which one to use for animation, background work and long tasks
Mobile-first media queries and range syntax, CSS units, clamp() / min() / max(), container queries, srcset and sizes vs picture, user preference queries
REST vs GraphQL - over- and under-fetching, caching, errors, N+1, versioning, and where tRPC fits
route.ts, HTTP methods, dynamic segments, Route Handler vs Server Action
Insets for the notch, status bar and navigation bar, react-native-safe-area-context, edge-to-edge on Android 15+, navigators and insets
'use server', forms and useActionState, validation, revalidation, why an action is a public endpoint
RSC vs SSR, what Server Components can't do, static and dynamic rendering, streaming, hydration
Server state with TanStack Query, query keys, staleTime and gcTime, mutations, invalidation and optimistic updates
Service worker as a network proxy, registration and scope, lifecycle and updates, caching strategies, offline and PWA
useEffect dependencies, cleanup order, StrictMode, race conditions and useLayoutEffect
Socket.IO vs WebSocket, transports, events and acknowledgements, rooms and namespaces, scaling with adapters
The five SOLID principles with frontend interpretations and TypeScript examples
Cascade order, specificity, :is() / :where() / :has(), nesting, @layer, inheritance and the inherit / initial / unset / revert keywords
useState and useReducer, state as a snapshot, batching, immutable updates
AsyncStorage, MMKV, SecureStore and SQLite, where each kind of data goes on the device, tokens in Keychain / Keystore, persisting app state
Readable, Writable, Duplex and Transform streams, backpressure, pipeline vs pipe, async iteration, stream events
CSS Modules, Tailwind, CSS-in-JS and Sass compared
Event handlers, SyntheticEvent, event delegation on the root and differences from DOM events
Types of tests, pyramid vs trophy, test doubles, coverage, AAA, TDD and BDD, test runners and E2E tools
React Testing Library queries, user-event, async tests and hooks
What the `this` keyword refers to in JavaScript
ACID, BEGIN / COMMIT / ROLLBACK and savepoints, isolation levels and read anomalies, how PostgreSQL actually implements them, lost updates and locking
What strict enables, useful flags beyond strict, new defaults in TypeScript 6 and a config for an app with a bundler
The as syntax, as const, satisfies, non-null assertion and when a type guard is safer
typeof, instanceof, in, equality, discriminated unions, type predicates and assertion functions
keyof, typeof, indexed access, mapped, conditional and template literal types, infer
Declaration merging, extends vs intersection, implicit index signatures and which one to choose
Props, children, events, hooks, context, wrapping native elements and ref as a prop in React 19
Parts of a URL, new URL and URLSearchParams, percent-encoding, encodeURI vs encodeURIComponent
Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, NonNullable, ReturnType, Parameters, Awaited and NoInfer
var, let and const, hoisting and the temporal dead zone
WCAG and its levels, semantic HTML, accessible names, keyboard and focus, ARIA rules, contrast, testing
Custom elements, Shadow DOM, templates and slots, what crosses the shadow boundary, Declarative Shadow DOM, forms, Web Components with frameworks
Dedicated and shared workers, postMessage and structured clone, transferable objects, SharedArrayBuffer, when a worker helps
Actions, use, ref as a prop and other changes of React 19 and its minor versions; removed APIs and migration
What makes a component re-render, what does not, why children re-render and how to find the cause
Kinds of state and where each belongs, client vs server state, when a store is needed, Zustand
Worker threads for CPU-heavy work, messaging and shared memory, thread pools, worker_threads vs cluster and child_process
Controlled and uncontrolled inputs, form Actions in React 19, form libraries