Dentsu Quality View (DQV)
Enterprise media intelligence platform for planning, validating, and optimizing digital campaigns across YouTube, Meta, DV360, Twitch, and more.
Role: Senior Frontend Developer (with a mid-level dev) — architecture, feature delivery, modernization, and developer experience.
Note: DQV is a proprietary internal product. No confidential business logic, client data, or implementation details are shown. This case study focuses on engineering, architecture, and impact.
Overview
Dentsu Quality View is a large-scale enterprise web application used internally at Dentsu to plan, validate, and optimize digital advertising campaigns across multiple platforms (YouTube Video, YouTube Audio, Display/DV360, Meta, Twitch, and more). It connects diverse data sources to surface the most relevant and brand-safe advertising environments, with a strong focus on brand safety, suitability, and media performance.
As the senior frontend engineer, I own the architecture, feature delivery, modernization, and developer experience, collaborating with a mid-level dev and cross-functional teams.
My Role & Responsibilities
- Senior FE ownership of a production application serving internal media specialists across multiple markets.
- Feature design & delivery: Translating product requirements into shippable, well-architected React features end-to-end.
- Architecture & technical direction: Defining patterns, conventions, and reusable abstractions for a codebase spanning 25+ business domains.
- Maintenance & modernization: Upgrading dependencies (React 18→19, MUI X v8, Vite 7), removing tech debt, and keeping the build healthy.
- Cross-functional collaboration: Working directly with backend, product, QA, and design to align contracts, UX, and delivery.
- Quality & observability: Datadog RUM/Logs integration, error tracking, and code quality tooling (ESLint, Prettier, Husky, lint-staged, commitlint).
The Product (in broad strokes)
- Advertiser & Campaign management — Hierarchical configuration of advertisers, campaigns, and partners.
- Campaign Activation — Multi-step wizards to activate campaigns on YouTube, DV360, Meta, Twitch.
- Channel curation & validation — Composing and curating YouTube channel lists, with advertiser-specific validation logic.
- DV360 Keywords & Sitelists / Meta Lists — Targeting list authoring tools.
- Brand Guidelines & Controls — Codifying client brand-safety rules.
- Asset Library & Creative tools — ABCD Checker, banner generator, creative QA wizards.
- Reporting & Optimization Plans — Campaign performance and optimization recommendations.
- Admin — User, role, and permission management.
Architecture & Stack
- React 19 + TypeScript with strict typing across interfaces, schemas, and store contracts.
- Vite 7 for dev server and production builds, with route-level code splitting via
React.lazy. - Redux Toolkit + RTK Query as the single source of truth for server state, with per-domain endpoint injection and tag-based cache invalidation.
- MUI v5 + MUI X (DataGrid, Charts, DatePickers, TreeView) for UI primitives, extended with a custom theme (light/dark).
- React Hook Form + Yup for performant, schema-validated forms across complex multi-step flows.
- React Router v7 with a centralized route registry and a
CustomSecureRoutewrapper for Okta-protected pages. - Storybook 10 for component documentation and isolated UI development.
- Okta (OAuth2 / OIDC) integration for secure authentication and role-based access.
- Datadog RUM + Logs + Session Replay for observability and error tracking.
Wizard Framework
A custom wizard framework powers every multi-step authoring flow (campaign activation, banner generation, ABCD Checker, etc.):
- Context-driven state (
WizardContext) with draft management. - Declarative
StepConfiggraph supporting conditional branching and step tracing utilities. - Per-step validation hooks for granular control and error handling.
- One
Wizardcomponent renders any flow defined as a step graph — keeping all wizards consistent in UX, navigation, and error handling.
This abstraction is a productivity multiplier: new multi-step flows are composed from existing primitives, not rebuilt from scratch.
Engineering Challenges
- Owning a large product with only two FE devs: prioritizing, investing in abstractions, and enforcing consistent structure.
- Domain complexity: campaign flows involve many interdependent fields, conditional steps, and platform-specific rules. The wizard + schema-driven validation pattern encodes this complexity declaratively.
- Keeping bleeding-edge dependencies stable: React 19, MUI X v8, Vite 7, Storybook 10 — careful upgrade work and dependency overrides keep the build green.
- Performance at scale: lazy-loaded routes, RTK Query caching, MUI DataGrid virtualization, and split bundles keep the app responsive.
- Production observability: Datadog RUM + Session Replay for real user metrics and error diagnosis.
Impact
- Maintained and grown a mission-critical internal product as the senior FE, shipping features continuously since Jan 2025.
- Established architectural patterns (wizard framework, RTK Query conventions, RBAC, theming, schema-driven forms) that make new feature delivery faster and more predictable.
- Kept the codebase on modern, supported versions of the React ecosystem, avoiding upgrade debt.
- Delivered production observability that lets a small FE team operate a real enterprise app safely.
Tech Highlights
React 19 · TypeScript · Vite 7 · Redux Toolkit · RTK Query · MUI v5 · MUI X v8 (DataGrid, Charts, DatePickers, TreeView) · React Hook Form · Yup · React Router v7 · Okta OIDC · Datadog RUM/Logs/Session Replay · Storybook 10 · Three.js / model-viewer · @react-pdf/renderer · PapaParse · JSZip · Framer Motion · Sass/Emotion · ESLint · Prettier · Husky · commitlint