Skip to content
João Paulo HildebrandtSoftware engineer · Porto

1PPLAYER ONE · READY

João PauloHildebrandt

Competitive by nature. Cooperative by trade.

I'm João Paulo, a frontend-focused full-stack engineer based in Porto. I build React and TypeScript products, design systems and tested, accessible interfaces for teams like Hapimag, Betfair, Kantar and OLX.

SCROLL TO START

P1 CONNECTEDP1 CONNECTED · MOVE THE CURSOR, IT LEANS

01TEAMS I'VE PLAYED FOR

One player, five rosters.

Engagements through 99x, Aubay × Blip.pt (Flutter), Alter Solutions and Softo, plus Super Desenvolvedores, the venture I co-founded in Rio.

  • 2025 → NOWP1

    SWITZERLAND

  • 2023 → 2025

    UNITED KINGDOM

  • 2022 → 2023

    UNITED KINGDOM

  • 2018 → 2020

    BRAZIL

  • 2021 → 2022

    BRAZIL

Switzerland · United Kingdom · Portugal · Brazil

P1PLAYING NOW

02CONTROLS

Few buttons. No surprises.

A good controller has few buttons, and each one does exactly what you expect, every single time. I build interfaces the same way: small, well-tested components with clear APIs, composed into products that teams can keep growing, with no surprises mid-match.

Fig. 1 · The controls. Tap a line below and its button lights up.Fig. 1 · The controls. Point at a line below and its button lights up.
  • Interfaces

    Product UI in React, TypeScript and Next.js: responsive, accessible (WCAG) and pleasant to use.

    REACT TYPESCRIPT NEXT.JS TAILWIND

  • Design systems

    Storybook component libraries that keep teams consistent and ship UI faster.

    STORYBOOK RADIX UI MATERIAL UI

  • Testing

    Unit, end-to-end, visual and regression tests that catch bugs before users do.

    JEST VITEST PLAYWRIGHT CYPRESS

  • Performance

    Lean, fast interfaces: code splitting, prefetching on intent, fine-grained rendering.

    REACT COMPILER TANSTACK VITE

  • Full stack & migrations

    APIs and data when the product needs them, and legacy moves without drama: PHP → NestJS, MySQL → PostgreSQL, Angular → React.

    NODE.JS NESTJS POSTGRESQL

Fig. 2 · Player one, in eighteen colours. Point anywhere; the eyes follow.

03PLAYER ONE

Started in Rio. Playing from Porto.

My career started in Rio de Janeiro in 2018, as an apprentice at OLX: first automating audit spreadsheets, then building animated React panels that ranked the month's best support agents. Rio taught me to build from zero: I co-founded a small venture and led a fintech's move to a modern stack. Porto taught me to make things last: design systems, test suites and products that teams in Switzerland, the UK and Portugal keep growing.

I care about the parts nobody notices until they break: a component's API, the test that fails first, the page that stays fast on modest hardware. Give me ownership of a problem and I'll carry it from diagnosis to delivery, and leave the codebase easier for whoever comes next.

BASED IN
Porto, Portugal
LANGUAGES
Portuguese (native) · English (C1)
EDUCATION
B.Sc. Computer Information Systems at FIAP, 2019 to 2021
ALSO
ESL Communication Skills at Rice University, 2022 · Cisco IT Essentials

04SAVE FILE

Always chasing the top rank.

It started on a knock-off Polystation, then a real PlayStation. In every game I took seriously I wanted the highest rank there was, and the habits it took still run my work.

  1. STAGE 1

    Polystation → PlayStation

    The knock-off console first, then the real one. It still counts.

    TUTORIAL
  2. STAGE 2

    Call of Duty

    Played professionally. Black Ops and Modern Warfare 3 marked me most.

    CLEARED

    UNLOCKED

    TEAM PLAY

    The best player loses to the best team. I still work that way: clear calls, clear roles.

  3. STAGE 3

    League of Legends

    Since the beta. Diamond in season 2, and a real try at going pro.

    CLEARED

    UNLOCKED

    READING THE META

    Every patch changes the game; you adapt or you drop. Today the patches are new models, and I play every one.

  4. STAGE 4

    Switch & PS5

    Still competitive, but these days I mostly play for fun.

    NOW PLAYING
BONUS STAGE

Pokémon

I love Pokémon. No, I don't have a favourite.

05QUEST LOG

Two acts, one campaign.

IN PROGRESSCLEAREDNEWEST FIRST
ACT 2

Portugal

2022 → today

Made to last: systems, tests and teams across borders.

  1. 2025 → today

    IN PROGRESS

    Switzerland · remoteSwitzerland · remote

    Software Engineer

    99x for Hapimag

    Building a staff management platform from scratch for a Swiss company that runs resorts across Europe: React and TypeScript on the front, Python and FastAPI behind it, Contentful for content.Building a staff management platform from scratch for a Swiss company that runs resorts across Europe: React and TypeScript on the front, Python and FastAPI behind it, Contentful for content. Reusable components, performance, scalability and mentoring.

    REACT · TYPESCRIPT · TANSTACK · FASTAPIREACT · TYPESCRIPT · TANSTACK · FASTAPI · CONTENTFUL

  2. 2023 → 2025

    CLEARED

    Portugal · remotePortugal · remote

    Software Engineer

    Aubay for Blip.pt · Betfair

    Key frontend features for Betfair's sports betting platform, in React and React Native. Maintained a shared Storybook design system, covered by unit, E2E, visual and regression tests.Key frontend features for Betfair's sports betting platform, part of the Flutter group, in React and React Native. Maintained and scaled a shared Storybook design system and covered it with unit, E2E, visual and regression tests.

    REACT · REACT NATIVE · STORYBOOKREACT · REACT NATIVE · TYPESCRIPT · STORYBOOK · PLAYWRIGHT

  3. 2022 → 2023

    CLEARED

    UK · remoteUnited Kingdom · remote

    Software Engineer

    Alter Solutions for Kantar XTEL

    Modernized legacy systems, with Playwright tests inside Storybook and accessible (WCAG) features on Radix UI.Modernized legacy systems for a Kantar division, with Playwright end-to-end tests running inside Storybook and accessible (WCAG) features built on Radix UI.

    REACT · RADIX UI · PLAYWRIGHTREACT · RADIX UI · STORYBOOK · PLAYWRIGHT

LOADING ACT 2 · RIO → PORTO

A friend at Alter Solutions called me to interview. I got the job, and the campaign moved to Porto.

ACT 1

Rio de Janeiro

2018 → 2022

Built piece by piece: from apprentice to co-founder.

  1. 2021 → 2022

    CLEARED

    Rio · remoteRio de Janeiro · remote

    Full Stack Developer

    Softo for Doare

    For a fintech client: moved legacy PHP microservices into one NestJS API, rebuilt the data layer from MySQL to PostgreSQL, and single-handedly migrated the client app from Angular to React.For a fintech client: led the move of legacy PHP microservices into a single NestJS API, rebuilt the data layer from MySQL into a normalized PostgreSQL schema, and single-handedly migrated the client app from Angular to React. Shipped a Next.js micro frontend.

    NESTJS · POSTGRESQL · REACT · NEXT.JS

  2. 2020 → 2023

    CLEARED

    Rio · remoteRio de Janeiro · remote

    Co-founder & Full Stack Developer

    Super Desenvolvedores

    A venture to make tech education more accessible in Brazil, with finance tools and an e-commerce for tech lovers.A venture to make tech education more accessible in Brazil, with finance tools and an e-commerce for tech lovers. Responsive React interfaces for small businesses and for our own products.

    REACT · NEXT.JS · NODE.JS · REDUX

  3. 2018 → 2020

    CLEARED

    Rio · on-siteRio de Janeiro · on-site

    Apprentice → Intern

    OLX Brasil

    Joined through a national youth apprenticeship program. Automated audit spreadsheets, customized the Help Center, built animated React ranking panels.Joined through a national youth apprenticeship program. Automated the audit team's spreadsheets, customized the Help Center for UX and accessibility, and built animated React ranking panels.

    REACT · AUTOMATIONREACT · AUTOMATION · ACCESSIBILITY

06INVENTORY

Loot from every quest.

Every team left something in the bag, sorted into pockets. An item's level counts the teams it shipped with; its rarity reflects that history. Equipped items are in use on my current team.

LIBRARIES8

  • React

    LV 6SINCE 2018

    EQUIPPED
  • TanStack Query

    LV 2SINCE 2020

    EQUIPPED
  • Redux

    LV 2UNTIL 2025

  • Zod

    LV 2SINCE 2021

    EQUIPPED
  • Radix UI

    LV 1SINCE 2022

  • React Hook Form

    LV 1SINCE 2022

    EQUIPPED
  • TanStack Table

    LV 1SINCE 2022

    EQUIPPED
  • Material UI

    LV 2SINCE 2022

FRAMEWORKS5

  • Next.js

    LV 2SINCE 2020

  • NestJS

    LV 1UNTIL 2022

  • Tailwind CSS

    LV 0SINCE 2022

  • React Native

    LV 1UNTIL 2025

  • FastAPI

    LV 1SINCE 2025

    EQUIPPED

RUNTIME & DATA4

  • PostgreSQL

    LV 1SINCE 2018

  • Node.js

    LV 3SINCE 2020

  • GraphQL

    LV 1UNTIL 2025

  • Contentful

    LV 1SINCE 2025

    EQUIPPED

TESTING & TOOLING6

  • Cypress

    LV 1SINCE 2021

  • Playwright

    LV 3SINCE 2022

    EQUIPPED
  • Storybook

    LV 2SINCE 2022

  • Jest

    LV 4SINCE 2022

  • Vite

    LV 2SINCE 2022

    EQUIPPED
  • Vitest

    LV 0SINCE 2025

LANGUAGES3

  • JavaScript

    LV 6SINCE 2018

    EQUIPPED
  • TypeScript

    LV 5SINCE 2020

    EQUIPPED
  • Python

    LV 1SINCE 2025

    EQUIPPED
  • LEGENDARY · EVERY TEAM
  • RARE · TWO OR MORE
  • COMMON · ONE
  • BONUS · TOOLBOX

07PLAYER 2

Player 2, press start.

Tell me about your team, your product, or the problem you'd like solved.

Fig. 3 · A second controller, plugged in and blinking. Your move.
World