● Complete Senior Track
A five-stage curriculum built the way real engineers grow — through depth, deliberate practice, pattern recognition, and production-grade assignments. Every stage leaves you with something in your portfolio.
any vs unknown vs never<T>, constraints, conditional types, inferPartial, Required, Pick, Omit, ReturnType, Parameterstsconfig.json flags and why they matterimport/export, barrel files, circular dependenciesasync/await, error handling chainsfetchAPI<T>(url, options) function that infers response shape from a type parameter. Add error narrowing. No any allowed anywhere.Partial, Required, Readonly, Pick, Omit, ReturnType from scratch without using the built-in versions.EventEmitter<Events> class whecode>Events is a record mapping event names to payload types. on(), emit(), off() must all be fully typed.bootstrapApplication@Input transforms, model() signal inputs (v17+)withComponentInputBindingsignal(), computed(), effect() — the modern reactivity modelChangeDetectionStrategy.OnPush actually works in the framework is worth more than 10 tutorials.<app-autocomplete> component using ControlValueAccessor. Must integrate with both template-driven and reactive forms. Add keyboard navigation.canActivate, canMatch), an HTTP interceptor that attaches the token, and an interceptor that handles 401 refresh logic.BehaviorSubject entirely with Signals. Measure and document the difference in change detection cycles using Angular DevTools.switchMap, mergeMap, concatMap, exhaustMap — when to use eachSubject, BehaviorSubject, ReplaySubject, AsyncSubjectcatchError, retry, retryWhen patternstakeUntilDestroyed(), AsyncPipe, subscription managementTestScheduler)switchMap on paper, you'll never misuse it again. RxJS Marbles (rxmarbles.com) is your training tool.webSocket(). Handle reconnection with retry and exponential backoff. Display live charts. Unsubscribe cleanly.forkJoin, sequential with concatMap.OnPush everywhere.@defer blocks (v17+)TestBed, component harnessesng generate your-name:feature user-management generates the folder structure, barrel files, tests, and routes.OnPush trees, signal-basedsource-map-explorer@angular/ssr. Hydration.ng-packagr-based libraries teaches secondary entrypoints, peer deps, and semver discipline.ng-packagr, write JSDoc, add a demo app, and publish to npm with proper versioning.Mental Models
@Input or Signals. Events bubble up via @Output or callbacks. Never reach up and grab parent state directly.Interview Preparation
switchMap, mergeMap, and concatMap?providedIn options, InjectionToken, tree-shaking of services, and multi-providers.takeUntilDestroyed(), AsyncPipe, no manual subscribe in services without cleanup, Subject.complete() in ngOnDestroy.Portfolio Checklist