Overview
Across three roles — Sophos, SmartBeemo, and House Edge — the same pattern kept showing up while I was building features: a screen was slow, or an endpoint didn’t return quite what the UI needed. The easy move is to patch it in the frontend. The better move is usually somewhere else.
Challenge
When a feature underperforms, the symptom appears in the UI, so that’s where teams often try to fix it — adding client-side workarounds, extra requests, or defensive reshaping of data. That masks the problem instead of solving it, and it compounds over time.
Architecture
The habit I developed is to diagnose which layer owns the problem, then fix it there. The method is consistent every time:
- Understand what the consumer — usually the frontend — actually needs.
- Analyze the endpoint and the query behind it.
- Find the over-fetching or the inefficiency.
- Fix it at the layer that owns it.
- Confirm the frontend still behaves.
Being genuinely full-stack is the enabling condition: you can’t fix at the right layer if you can only see one layer.
Implementation
- At Sophos, when banking-dashboard endpoints didn’t return what the frontend needed or queries were slow, I made backend and API adjustments rather than forcing workarounds into the UI.
- At SmartBeemo, performance work meant reviewing queries and trimming what the API sent to the frontend — sometimes reaching into the MongoDB data model itself — which cut page load times about 25%.
- At House Edge, I optimized backend queries running over very large datasets.
The concrete, measured outcome is the ~25% page-load reduction at SmartBeemo; the others were qualitative improvements — faster, cleaner systems, and fixes that removed problems instead of hiding them.
Lessons
Two things stuck with me. First, solve where the problem actually is — a fix in the API or data layer usually beats three workarounds in the UI. Second, being full-stack is what makes this possible. It’s the same instinct behind how I like to work in general: owning a feature end to end, across every layer it touches.