Skip to content

Stage 4 — Project 3: Admin Dashboard

Triết lý cốt lõi: Đóng vai Staff. Viết RFC, thiết kế API, set perf budget, mentor team. Cross-team contract.
Không còn là "implement feature", mà là thiết kế hệ thống, set policy, mentor team.

Phase: SIMULATE (5:95 | 15:85 | 20:80)
Teaching Model: 5% Teaching / 95% Questioning
Deliverable: Enterprise dashboard, RBAC, SSE, virtual scroll 10K+, Web Workers, Turborepo, canary deploy, OpenTelemetry + 1 ADR + 1 RFC mẫu

Mục tiêu

Đóng vai Staff Engineer. Tự quyết định architecture pattern, data flow, API contract, performance budget, deploy strategy. Mentor = interviewer/feedback provider.

  • RFC & ADR: Viết trước khi code. Architecture pattern, data flow, API contract, trade-off rõ ràng.
  • Performance Budget as Policy: Set budget cho team, không chỉ optimize 1 page. Có metric, có enforcement.
  • Cross-team contract: Thiết kế API với backend, set policy cho team, review code ở mức "bảo vệ kiến trúc".
  • Mentoring: Review = bảo vệ kiến trúc + grow người khác. Không fix hộ, hỏi câu hỏi để Junior tự tìm đáp án.

Tại sao Stage 4 tồn tại

  • Bối cảnh thực tế: Staff không viết nhiều code nhất, nhưng viết quyết định quan trọng nhất. 1 RFC sai có thể khiến team mất 3 tháng refactor.
  • Hậu quả nếu bỏ qua: Bạn sẽ mãi là Senior implement feature, không bao giờ own architecture. Không biết viết RFC, không biết set perf budget, không biết mentor.
  • Output của Stage 4: 1 enterprise dashboard production-ready, với RBAC, SSE realtime, virtual scroll 10K+ rows, Web Workers, Turborepo monorepo, canary deploy, OpenTelemetry observability, và khả năng viết RFC/ADR, set policy, mentor team.

Danh sách module

State Management & Data

ModuleNội dungMức độPhaseStatus
4.1.1 Redux Toolkit & RTK QueryconfigureStore, createSlice, RTK Query, State normalizationFoundationSIMULATE
4.1.2 Redux Saga & Normalizationcall, put, takeLatest, Cancellation, createSelector, PollingApplicationSIMULATE
4.4.1 Data Normalization & Offline SyncNormalizr, RTK Entity Adapter, Optimistic concurrency, Flat stateApplicationSIMULATE

Charts & Visualization

ModuleNội dungMức độPhaseStatus
4.2.1 Chart Libraries & RechartsRecharts 5+ types, Data aggregation, Performance, Theme integrationFoundationSIMULATE
4.2.2 D3.js Custom & CanvasD3 scale & data join, Chart.js Canvas, Custom interaction, ResponsiveApplicationSIMULATE

Performance & Threading

ModuleNội dungMức độPhaseStatus
4.3.1 Virtual ScrollWindowing, react-window, react-virtuoso, Dynamic height, 60fps scrollApplicationSIMULATE
4.3.2 Web Workers & Threadingnew Worker(), scheduler.yield(), SharedArrayBuffer, OffscreenCanvasApplicationSIMULATE

Realtime & Streaming

ModuleNội dungMức độPhaseStatus
4.4.2 Realtime & StreamingSSE, WebSocket vs SSE vs Long Polling, ReadableStream, NDJSONApplicationSIMULATE
4.4.3 Pagination & Conflict ResolutionCursor pagination, useInfiniteQuery, Conflict resolution, CRDT cơ bảnApplicationSIMULATE
4.9.1 SSE & Real-time MetricsEventSource, Auto-reconnect, last-event-id, Connection limitApplicationSIMULATE
4.9.2 Role-based UI & Real-time UpdateAdmin vs user view, Real-time role revoke, Data filteringApplicationSIMULATE

Monorepo & Tooling

ModuleNội dungMức độPhaseStatus
4.5.1 Turborepo & Workspacesturbo.json pipeline, pnpm workspaces, Remote caching, Task dependenciesApplicationSIMULATE
4.5.2 Storybook & ChromaticStorybook CSF 3, Chromatic visual regression, MDX docs, Package publishApplicationSIMULATE

API & Backend Contract

ModuleNội dungMức độPhaseStatus
4.6.1 BFF with Next.jsRoute Handler aggregate API, Auth proxy, Next.js vs standalone BFFApplicationSIMULATE
4.6.2 tRPC & API ComparisontRPC router & procedure, REST vs GraphQL vs tRPC, Type-safe end-to-endApplicationSIMULATE

Architecture & Patterns

ModuleNội dungMức độPhaseStatus
4.7.1 Frontend Architecture PatternsFeature-Sliced Design, Atomic Design, Vertical Slice, DDD FrontendFoundationSIMULATE
4.7.2 Folder Structure & BoundariesBarrel exports, ESLint import rules, Public API, Circular dependencyApplicationSIMULATE

Security & Access Control

ModuleNội dungMức độPhaseStatus
4.8.1 RBAC & Multi-tenancyPermission matrix, Route/UI/API guard, Multi-tenancy, Audit logApplicationSIMULATE
4.8.2 Feature Flags & ExperimentationLaunchDarkly/Unleash, Dark Launch, Progressive rollout, Kill switchApplicationSIMULATE

Observability

ModuleNội dungMức độPhaseStatus
4.10.1 Observability FundamentalsLogs, Metrics, Traces, RUM, Correlation ID, RED methodFoundationSIMULATE
4.10.2 OpenTelemetry & Alerting@opentelemetry/sdk-trace-web, Context propagation, Session Replay, AlertingApplicationSIMULATE

Deploy & Release

ModuleNội dungMức độPhaseStatus
4.11.1 Deploy StrategiesCanary deploy, Blue-Green, Feature flag deploy, Rollback drillApplicationSIMULATE
4.11.2 Release Workflow & ChangesetsGit Flow / Trunk Based, Changesets versioning, Preview deploy, Automated releaseApplicationSIMULATE

Accessibility

ModuleNội dungMức độPhaseStatus
4.12.1 Data Table AccessibilitySemantic table, aria-sort, Pagination aria-label, Keyboard navigationFoundationSIMULATE
4.12.2 Screen Reader & jest-axeNVDA/VoiceOver/TalkBack, jest-axe CI, sr-only, Live regionsApplicationSIMULATE

Staff Skills

ModuleNội dungMức độPhaseStatus
4.13 RADIO Practice #1RADIO framework, Mock interview, Scale 100 → 1M users, Record & reviewMasterySIMULATE
4.14 Mentoring via Code ReviewReview = bảo vệ kiến trúc + grow người khác. Architecture driftMasterySIMULATE
4.15 Performance Budget as PolicySet budget cho team, không chỉ optimize 1 page. SizeLimit, Lighthouse CI, Cost analysisMasterySIMULATE

Stage 4 Staff Checkpoint

Tự đánh giá trước khi sang Stage 5. Nếu trả lời "Không" ở bất kỳ câu nào, quay lại module tương ứng.

#Câu hỏiModule
1Tôi có viết được 1 RFC cho 1 feature không? (architecture pattern, data flow, API contract)4.13, 4.7.1
2Tôi có thiết kế được API contract với backend không? (BFF hoặc tRPC)4.6.1, 4.6.2
3Tôi có set được performance budget cho team không? (có metric, có enforcement)4.15
4Tôi có lead được 1 canary deploy + rollback drill không?4.11.1
5Tôi có review code ở mức "bảo vệ kiến trúc" + mentor 1 Junior không?4.14
6Tôi có viết được ADR cho 1 architectural decision không?4.7.1, 4.15

Nguyên tắc vàng

  • Staff viết trước khi code: RFC, ADR, Runbook. Không code rồi mới giải thích.
  • Performance Budget = Policy: Set cho team, không chỉ optimize 1 page. Có metric, có enforcement, có cost analysis.
  • Review = Bảo vệ kiến trúc + Grow người khác: Không fix hộ. Hỏi câu hỏi để Junior tự tìm đáp án. Phát hiện architecture drift sớm.
  • Cross-team contract: FE owns API shape. Thiết kế với backend, không nhận passively.