Episode 2 — React Frontend Architecture NextJS / 2.13 — Global State Management
2.13.e — Avoiding overengineered state logic
Learning outcomes
- Name smells of over-abstraction in state code.
- Refactor toward boring maintainable patterns under time pressure.
- Write a short ADR for state boundaries your team agrees on.
Smells
- Abstraction with one usage site (generic “state engine” used once).
- Sync
useEffectchains keeping two stores aligned. - Impossible onboarding: new hire cannot trace how a button updates the screen.
- Global state for values that never leave one file.
Refactor playbook
- Identify the smallest owner for each piece of state.
- Move read paths first; keep writes behind one function per domain.
- Delete unused layers; add tests around the new boundary.
Team practices
- State review in PR template (local vs global justification).
- Examples in repo: one golden pattern for modals, one for filters.
Appendix — Scenario bank (basic → advanced)
Each card: symptom → cause → fix → interview phrase. Drill five cards daily and explain aloud without reading.
GS4-001 — Overengineering #1
- Level: Beginner
- Symptom: subtree re-renders
13% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-002 — Overengineering #2
- Level: Beginner+
- Symptom: subtree re-renders
26% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-003 — Overengineering #3
- Level: Intermediate
- Symptom: subtree re-renders
39% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-004 — Overengineering #4
- Level: Intermediate+
- Symptom: subtree re-renders
52% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-005 — Overengineering #5
- Level: Advanced
- Symptom: subtree re-renders
65% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-006 — Overengineering #6
- Level: Advanced+
- Symptom: subtree re-renders
78% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-007 — Overengineering #7
- Level: Beginner
- Symptom: subtree re-renders
91% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-008 — Overengineering #8
- Level: Beginner+
- Symptom: subtree re-renders
104% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-009 — Overengineering #9
- Level: Intermediate
- Symptom: subtree re-renders
117% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-010 — Overengineering #10
- Level: Intermediate+
- Symptom: subtree re-renders
130% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-011 — Overengineering #11
- Level: Advanced
- Symptom: subtree re-renders
143% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-012 — Overengineering #12
- Level: Advanced+
- Symptom: subtree re-renders
156% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-013 — Overengineering #13
- Level: Beginner
- Symptom: subtree re-renders
169% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-014 — Overengineering #14
- Level: Beginner+
- Symptom: subtree re-renders
182% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-015 — Overengineering #15
- Level: Intermediate
- Symptom: subtree re-renders
195% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-016 — Overengineering #16
- Level: Intermediate+
- Symptom: subtree re-renders
8% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-017 — Overengineering #17
- Level: Advanced
- Symptom: subtree re-renders
21% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-018 — Overengineering #18
- Level: Advanced+
- Symptom: subtree re-renders
34% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-019 — Overengineering #19
- Level: Beginner
- Symptom: subtree re-renders
47% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-020 — Overengineering #20
- Level: Beginner+
- Symptom: subtree re-renders
60% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-021 — Overengineering #21
- Level: Intermediate
- Symptom: subtree re-renders
73% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-022 — Overengineering #22
- Level: Intermediate+
- Symptom: subtree re-renders
86% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-023 — Overengineering #23
- Level: Advanced
- Symptom: subtree re-renders
99% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-024 — Overengineering #24
- Level: Advanced+
- Symptom: subtree re-renders
112% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-025 — Overengineering #25
- Level: Beginner
- Symptom: subtree re-renders
125% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-026 — Overengineering #26
- Level: Beginner+
- Symptom: subtree re-renders
138% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-027 — Overengineering #27
- Level: Intermediate
- Symptom: subtree re-renders
151% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-028 — Overengineering #28
- Level: Intermediate+
- Symptom: subtree re-renders
164% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-029 — Overengineering #29
- Level: Advanced
- Symptom: subtree re-renders
177% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-030 — Overengineering #30
- Level: Advanced+
- Symptom: subtree re-renders
190% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-031 — Overengineering #31
- Level: Beginner
- Symptom: subtree re-renders
3% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-032 — Overengineering #32
- Level: Beginner+
- Symptom: subtree re-renders
16% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-033 — Overengineering #33
- Level: Intermediate
- Symptom: subtree re-renders
29% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-034 — Overengineering #34
- Level: Intermediate+
- Symptom: subtree re-renders
42% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-035 — Overengineering #35
- Level: Advanced
- Symptom: subtree re-renders
55% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-036 — Overengineering #36
- Level: Advanced+
- Symptom: subtree re-renders
68% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-037 — Overengineering #37
- Level: Beginner
- Symptom: subtree re-renders
81% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-038 — Overengineering #38
- Level: Beginner+
- Symptom: subtree re-renders
94% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-039 — Overengineering #39
- Level: Intermediate
- Symptom: subtree re-renders
107% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-040 — Overengineering #40
- Level: Intermediate+
- Symptom: subtree re-renders
120% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-041 — Overengineering #41
- Level: Advanced
- Symptom: subtree re-renders
133% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-042 — Overengineering #42
- Level: Advanced+
- Symptom: subtree re-renders
146% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-043 — Overengineering #43
- Level: Beginner
- Symptom: subtree re-renders
159% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-044 — Overengineering #44
- Level: Beginner+
- Symptom: subtree re-renders
172% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-045 — Overengineering #45
- Level: Intermediate
- Symptom: subtree re-renders
185% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-046 — Overengineering #46
- Level: Intermediate+
- Symptom: subtree re-renders
198% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-047 — Overengineering #47
- Level: Advanced
- Symptom: subtree re-renders
11% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-048 — Overengineering #48
- Level: Advanced+
- Symptom: subtree re-renders
24% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-049 — Overengineering #49
- Level: Beginner
- Symptom: subtree re-renders
37% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-050 — Overengineering #50
- Level: Beginner+
- Symptom: subtree re-renders
50% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-051 — Overengineering #51
- Level: Intermediate
- Symptom: subtree re-renders
63% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-052 — Overengineering #52
- Level: Intermediate+
- Symptom: subtree re-renders
76% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-053 — Overengineering #53
- Level: Advanced
- Symptom: subtree re-renders
89% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-054 — Overengineering #54
- Level: Advanced+
- Symptom: subtree re-renders
102% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-055 — Overengineering #55
- Level: Beginner
- Symptom: subtree re-renders
115% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-056 — Overengineering #56
- Level: Beginner+
- Symptom: subtree re-renders
128% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-057 — Overengineering #57
- Level: Intermediate
- Symptom: subtree re-renders
141% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-058 — Overengineering #58
- Level: Intermediate+
- Symptom: subtree re-renders
154% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-059 — Overengineering #59
- Level: Advanced
- Symptom: subtree re-renders
167% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-060 — Overengineering #60
- Level: Advanced+
- Symptom: subtree re-renders
180% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-061 — Overengineering #61
- Level: Beginner
- Symptom: subtree re-renders
193% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-062 — Overengineering #62
- Level: Beginner+
- Symptom: subtree re-renders
6% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-063 — Overengineering #63
- Level: Intermediate
- Symptom: subtree re-renders
19% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-064 — Overengineering #64
- Level: Intermediate+
- Symptom: subtree re-renders
32% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-065 — Overengineering #65
- Level: Advanced
- Symptom: subtree re-renders
45% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-066 — Overengineering #66
- Level: Advanced+
- Symptom: subtree re-renders
58% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-067 — Overengineering #67
- Level: Beginner
- Symptom: subtree re-renders
71% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-068 — Overengineering #68
- Level: Beginner+
- Symptom: subtree re-renders
84% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-069 — Overengineering #69
- Level: Intermediate
- Symptom: subtree re-renders
97% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-070 — Overengineering #70
- Level: Intermediate+
- Symptom: subtree re-renders
110% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-071 — Overengineering #71
- Level: Advanced
- Symptom: subtree re-renders
123% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-072 — Overengineering #72
- Level: Advanced+
- Symptom: subtree re-renders
136% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-073 — Overengineering #73
- Level: Beginner
- Symptom: subtree re-renders
149% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-074 — Overengineering #74
- Level: Beginner+
- Symptom: subtree re-renders
162% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-075 — Overengineering #75
- Level: Intermediate
- Symptom: subtree re-renders
175% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-076 — Overengineering #76
- Level: Intermediate+
- Symptom: subtree re-renders
188% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-077 — Overengineering #77
- Level: Advanced
- Symptom: subtree re-renders
1% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-078 — Overengineering #78
- Level: Advanced+
- Symptom: subtree re-renders
14% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-079 — Overengineering #79
- Level: Beginner
- Symptom: subtree re-renders
27% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-080 — Overengineering #80
- Level: Beginner+
- Symptom: subtree re-renders
40% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-081 — Overengineering #81
- Level: Intermediate
- Symptom: subtree re-renders
53% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-082 — Overengineering #82
- Level: Intermediate+
- Symptom: subtree re-renders
66% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-083 — Overengineering #83
- Level: Advanced
- Symptom: subtree re-renders
79% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-084 — Overengineering #84
- Level: Advanced+
- Symptom: subtree re-renders
92% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-085 — Overengineering #85
- Level: Beginner
- Symptom: subtree re-renders
105% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-086 — Overengineering #86
- Level: Beginner+
- Symptom: subtree re-renders
118% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-087 — Overengineering #87
- Level: Intermediate
- Symptom: subtree re-renders
131% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-088 — Overengineering #88
- Level: Intermediate+
- Symptom: subtree re-renders
144% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-089 — Overengineering #89
- Level: Advanced
- Symptom: subtree re-renders
157% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-090 — Overengineering #90
- Level: Advanced+
- Symptom: subtree re-renders
170% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-091 — Overengineering #91
- Level: Beginner
- Symptom: subtree re-renders
183% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-092 — Overengineering #92
- Level: Beginner+
- Symptom: subtree re-renders
196% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-093 — Overengineering #93
- Level: Intermediate
- Symptom: subtree re-renders
9% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-094 — Overengineering #94
- Level: Intermediate+
- Symptom: subtree re-renders
22% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-095 — Overengineering #95
- Level: Advanced
- Symptom: subtree re-renders
35% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-096 — Overengineering #96
- Level: Advanced+
- Symptom: subtree re-renders
48% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-097 — Overengineering #97
- Level: Beginner
- Symptom: subtree re-renders
61% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-098 — Overengineering #98
- Level: Beginner+
- Symptom: subtree re-renders
74% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-099 — Overengineering #99
- Level: Intermediate
- Symptom: subtree re-renders
87% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-100 — Overengineering #100
- Level: Intermediate+
- Symptom: subtree re-renders
100% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-101 — Overengineering #101
- Level: Advanced
- Symptom: subtree re-renders
113% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-102 — Overengineering #102
- Level: Advanced+
- Symptom: subtree re-renders
126% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-103 — Overengineering #103
- Level: Beginner
- Symptom: subtree re-renders
139% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-104 — Overengineering #104
- Level: Beginner+
- Symptom: subtree re-renders
152% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-105 — Overengineering #105
- Level: Intermediate
- Symptom: subtree re-renders
165% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-106 — Overengineering #106
- Level: Intermediate+
- Symptom: subtree re-renders
178% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-107 — Overengineering #107
- Level: Advanced
- Symptom: subtree re-renders
191% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-108 — Overengineering #108
- Level: Advanced+
- Symptom: subtree re-renders
4% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-109 — Overengineering #109
- Level: Beginner
- Symptom: subtree re-renders
17% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-110 — Overengineering #110
- Level: Beginner+
- Symptom: subtree re-renders
30% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-111 — Overengineering #111
- Level: Intermediate
- Symptom: subtree re-renders
43% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-112 — Overengineering #112
- Level: Intermediate+
- Symptom: subtree re-renders
56% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-113 — Overengineering #113
- Level: Advanced
- Symptom: subtree re-renders
69% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-114 — Overengineering #114
- Level: Advanced+
- Symptom: subtree re-renders
82% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-115 — Overengineering #115
- Level: Beginner
- Symptom: subtree re-renders
95% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-116 — Overengineering #116
- Level: Beginner+
- Symptom: subtree re-renders
108% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-117 — Overengineering #117
- Level: Intermediate
- Symptom: subtree re-renders
121% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-118 — Overengineering #118
- Level: Intermediate+
- Symptom: subtree re-renders
134% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-119 — Overengineering #119
- Level: Advanced
- Symptom: subtree re-renders
147% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-120 — Overengineering #120
- Level: Advanced+
- Symptom: subtree re-renders
160% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-121 — Overengineering #121
- Level: Beginner
- Symptom: subtree re-renders
173% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-122 — Overengineering #122
- Level: Beginner+
- Symptom: subtree re-renders
186% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-123 — Overengineering #123
- Level: Intermediate
- Symptom: subtree re-renders
199% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-124 — Overengineering #124
- Level: Intermediate+
- Symptom: subtree re-renders
12% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-125 — Overengineering #125
- Level: Advanced
- Symptom: subtree re-renders
25% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-126 — Overengineering #126
- Level: Advanced+
- Symptom: subtree re-renders
38% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-127 — Overengineering #127
- Level: Beginner
- Symptom: subtree re-renders
51% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-128 — Overengineering #128
- Level: Beginner+
- Symptom: subtree re-renders
64% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-129 — Overengineering #129
- Level: Intermediate
- Symptom: subtree re-renders
77% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-130 — Overengineering #130
- Level: Intermediate+
- Symptom: subtree re-renders
90% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-131 — Overengineering #131
- Level: Advanced
- Symptom: subtree re-renders
103% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-132 — Overengineering #132
- Level: Advanced+
- Symptom: subtree re-renders
116% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-133 — Overengineering #133
- Level: Beginner
- Symptom: subtree re-renders
129% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-134 — Overengineering #134
- Level: Beginner+
- Symptom: subtree re-renders
142% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-135 — Overengineering #135
- Level: Intermediate
- Symptom: subtree re-renders
155% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-136 — Overengineering #136
- Level: Intermediate+
- Symptom: subtree re-renders
168% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-137 — Overengineering #137
- Level: Advanced
- Symptom: subtree re-renders
181% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-138 — Overengineering #138
- Level: Advanced+
- Symptom: subtree re-renders
194% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-139 — Overengineering #139
- Level: Beginner
- Symptom: subtree re-renders
7% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-140 — Overengineering #140
- Level: Beginner+
- Symptom: subtree re-renders
20% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-141 — Overengineering #141
- Level: Intermediate
- Symptom: subtree re-renders
33% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-142 — Overengineering #142
- Level: Intermediate+
- Symptom: subtree re-renders
46% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-143 — Overengineering #143
- Level: Advanced
- Symptom: subtree re-renders
59% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-144 — Overengineering #144
- Level: Advanced+
- Symptom: subtree re-renders
72% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-145 — Overengineering #145
- Level: Beginner
- Symptom: subtree re-renders
85% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-146 — Overengineering #146
- Level: Beginner+
- Symptom: subtree re-renders
98% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-147 — Overengineering #147
- Level: Intermediate
- Symptom: subtree re-renders
111% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-148 — Overengineering #148
- Level: Intermediate+
- Symptom: subtree re-renders
124% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-149 — Overengineering #149
- Level: Advanced
- Symptom: subtree re-renders
137% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-150 — Overengineering #150
- Level: Advanced+
- Symptom: subtree re-renders
150% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-151 — Overengineering #151
- Level: Beginner
- Symptom: subtree re-renders
163% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-152 — Overengineering #152
- Level: Beginner+
- Symptom: subtree re-renders
176% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-153 — Overengineering #153
- Level: Intermediate
- Symptom: subtree re-renders
189% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Premature micro-stores per component reconciled by sync effects (double truth).
- Primary remediation: Pick one source of truth; delete sync effects after migration.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-154 — Overengineering #154
- Level: Intermediate+
- Symptom: subtree re-renders
2% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Abstraction layers (
useStoreFacadeFactory) unreadable to new hires. - Primary remediation: Template repos reviewed quarterly; remove unused slices and deps.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-155 — Overengineering #155
- Level: Advanced
- Symptom: subtree re-renders
15% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Redux middleware chain for a prototype with three screens.
- Primary remediation: ADR for state boundaries; onboarding doc with examples.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-156 — Overengineering #156
- Level: Advanced+
- Symptom: subtree re-renders
28% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: FSM library introduced for a two-state toggle.
- Primary remediation: Use boolean state or simple reducer until complexity proves itself.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-157 — Overengineering #157
- Level: Beginner
- Symptom: subtree re-renders
41% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Every team invents a new state taxonomy without design review.
- Primary remediation: Start with Context or colocated hooks; migrate when pain is measured.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.
GS4-158 — Overengineering #158
- Level: Beginner+
- Symptom: subtree re-renders
54% more than expected after a small unrelated UI change. - Architecture smell: unclear ownership of who may mutate shared state.
- Root cause class: Copy-paste Redux Toolkit setup from blog without deleting unused boilerplate.
- Primary remediation: Prefer boring patterns with grep-friendly names over clever meta-programming.
- Proof: React DevTools highlight updates; split providers and re-measure.
- Interview one-liner: The best state architecture is the simplest one the whole team can maintain under pressure.