Retrospective
A curated archive of work that doesn't fit neatly into a single case study — dashboards, design system decisions, recruitment challenges, internal brand work, early-career projects, and the occasional game jam. Honest, varied, and worth a look.
The dashboards in use had accumulated years of inconsistency — mismatched visual hierarchies, unclear primary actions, and navigation patterns that made it hard for users to extract meaning quickly. The audit mapped all active dashboards against a set of UX heuristics, flagging friction points and ranking them by impact on user flow and decision-making speed.
Redesigned templates introduced clearer information architecture: a consistent top-level summary, progressive disclosure for detailed data, and stronger visual signposting for the metrics that drove decisions. Interactive prototypes were used to test the revised flows with stakeholders before implementation, reducing back-and-forth at development handoff. The outcome was a set of reusable dashboard layouts and component patterns validated against real use cases.
Alongside the visual work, a documentation structure was built in Confluence covering the full design language for dashboards: typographic scale, colour system, grid definitions, iconography standards, and component usage guidelines. The goal was to make the system self-sustaining — any new dashboard built by any team should naturally align without needing a designer in the room.
Three design systems were in concurrent use across teams — each with genuine strengths, but none with full coverage. The task was to evaluate all three against criteria including component breadth, token architecture, accessibility compliance, and maintainability, then select a foundation and enrich it with the best patterns from the other two.
Strong token foundation and well-documented typographic scale. Limited component library and no motion guidelines. Good base layer, weak surface coverage.
Most complete component set and best accessibility baseline. Token naming inconsistencies resolved during consolidation. Reinforced with grid patterns and interaction states from the other two systems.
Best-in-class data visualisation patterns and a strong grid system. Weak on form components and brand alignment. Key patterns extracted and merged into the chosen system.
UX board — Assumptions, Questions and Opportunities
High fidelity wireframes
Final designs
A full onboarding redesign exercise for a (fictional) app product — covering user registration, identity verification, and first-value moment. Delivered as a Figma prototype with annotated decisions.
Final designs
Given a brief with a competitor service, the task was to propose a redesign within 48 hours. Focused on hierarchy, data density, and actionable insight.
Interactions
Payment screen
Dark mode
Color tests
An audit of a provided payment system, identifying inconsistencies and gaps, then proposing a rationalised structure and a set of missing components with usage guidelines.
The internal brand work ranged from event posters and recruitment advertising to social assets and presentation templates — all aimed at helping a smaller consultancy punch above its weight visually in a competitive Porto tech market.
Invited to present at a Porto Tech Hub session to a class of junior developers — making the case for why UI decisions matter in engineering-led teams. Covered visual hierarchy, component thinking, and how design and dev can share a language. One of the more energising things I've done outside of day-to-day product work.
The work at LV Engine was wide-ranging by necessity — a small team serving a diverse client base meant learning to move quickly between disciplines. That range is part of what makes this period worth showcasing: it represents the foundation on which everything else was built.


















The theme for Ludum Dare 53 was "Delivery" — which led to a game about the most consequential delivery in history. Built in collaboration with a friend who handled the development while I covered all UI, visual design, character art, and level layout.
Working to a 72-hour limit with a collaborator on a completely different kind of brief is a good reminder of what the design instincts that never turn off — layout, legibility, feedback, tone. The constraints were unusually honest.
View entry on Ludum Dare