Lessons Learned

What failed, what changed, and what stuck.

A running log of decisions that improved my product thinking after they first went wrong.

PariPassuProduct DesignerJun 2025 - Nov 2025

Propose Broad, Ship Narrow

The Problem

At PariPassu, working as one of two designers on two products, I drafted a broader set of new components than the team actually needed, hoping to anticipate edge cases across Rastreador and CliCQ. Over a few weeks it became clear that a chunk of those variants were never touched. They added cognitive overhead without real payoff, and the perceived bloat slowed adoption.

What I Tried

My approach was completionist: "Let's anticipate all use cases and build them upfront." I mapped many button states, card variants, input types, and edge cases based on design thinking exercises, past templates, and patterns from mature design systems at larger companies.

Why It Failed

The premise was flawed. PariPassu was a fast-moving foodtech serving traceability and quality inspection. Actual near-term needs were a fraction of what I'd drafted. "Should I use CardStandard, CardCompact, or CardMinimal?" Without solving real problems, I was designing for hypothetical futures instead of validating current demand.

The Lesson

Design systems should grow organically with the product, not precede it. The best systems I've seen at larger companies (Bridge, Multidrop) didn't ship complete on day one; they started small and scaled as patterns emerged from real usage. Staying lean meant: (1) engineers understood every component because they used all of them. (2) We iterated faster, fewer decisions meant faster PRs. (3) When new patterns appeared, we added them deliberately.

The Outcome

Together with the other designer, I pruned the proposal to the components the team was actually using, kept documentation focused on those, and paired with devs to adjust tokens. The collaborative pruning made adoption easier and let us add new components only when real usage demanded them.

Impact

Faster design-to-engineering handoff, less decision paralysis, and a system that reflected how the product was being built instead of how I thought it should be built.

Laboratório Bridge (MEC)UX/UI DesignerJul 2022 - Jul 2025

Solving for 14M Users When You Can't Change the Rules

The Problem

At Bridge, I inherited a hard constraint: the Jornada do Estudante app had to use the federal government's DSGov design system exactly as provided. DSGov had serious accessibility issues, which blocked WCAG compliance for millions of students.

What I Tried

I started with the official route. I documented the failures with audit reports, automated scans, and manual screen-reader testing, then escalated the issues to MEC stakeholders asking for permission to override specific components.

Why It Failed

Escalation changed nothing. Accessibility was not treated as urgent enough to justify touching the mandated system, so waiting for institutional approval would only prolong the problem for users.

The Shift

Before

Failed WCAG 2.1 AA on 8+ criteria due to DSGov limitations

After

Passed WCAG 2.1 AA across all tested scenarios, 0% visual deviation from spec

The Lesson

When you can't change the system, you change the implementation. I worked with developers on semantic HTML, ARIA labels, and focus management so the UI could remain visually faithful to DSGov while becoming functionally accessible.

The Outcome

The app moved from failing WCAG 2.1 AA criteria to passing them while keeping full visual fidelity to DSGov. That friction point later became the foundation of my published accessibility research.

Impact

14M students now use a more accessible app, and the work proved that accessibility constraints can be solved through implementation strategy instead of visual compromise.

Made withbyThiago Xikota