João Paulo Hildebrandt
Built piece by piece. Made to last.Built piece by piece. Made to last.
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.
Teams I've built for
Engagements through 99x, Aubay × Blip.pt (Flutter), Alter Solutions and Softo, plus Super Desenvolvedores, the venture I co-founded in Rio.
One tile, four turns, a whole wall.One tile, four turns, a whole wall.
An azulejo wall starts with a single tile. Turn it, repeat it, and a whole façade appears. I build interfaces the same way: small, well-tested components with clear APIs, composed into products that teams can keep growing without the wall cracking.
P-01
Interfaces
Product UI in React, TypeScript and Next.js: responsive, accessible (WCAG) and pleasant to use.
REACT · TYPESCRIPT · NEXT.JSREACT · TYPESCRIPT · NEXT.JS · TAILWIND
P-02
Design systems
Storybook component libraries that keep teams consistent and ship UI faster.
STORYBOOK · RADIX UI · MATERIAL UI
P-03
Testing
Unit, end-to-end, visual and regression tests that catch bugs before users do.
JEST · VITEST · PLAYWRIGHT · CYPRESS
P-04
Performance
Lean, fast interfaces: code splitting, prefetching on intent, fine-grained rendering.
REACT COMPILER · TANSTACK · VITE
P-05
Full stack & migrations
APIs and data when the product needs them, and legacy moves without drama.APIs and data when the product needs them, and legacy moves without drama: PHP → NestJS, MySQL → PostgreSQL, Angular → React.
NODE.JS · NESTJS · POSTGRESQL · FASTAPI
Grounded in Rio. Building in Porto.Grounded in Rio. Building in 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
Two coasts, one craft.
Since 2018: from Rio de Janeiro's classifieds and startups to remote teams across Europe. Most recent first.
Portugal
Made to last: systems, tests and teams across borders.
2025 → today
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
2023 → 2025
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
2022 → 2023
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
PORTO · 8,000 KM OF ATLANTIC · RIOPORTO · ABOUT 8,000 KM OF ATLANTIC · RIO DE JANEIRO
The crossing.
A friend who had joined Alter Solutions, in Portugal, called me to interview there too. I got the job and crossed the Atlantic, taking Rio's habit of building from zero to a city tiled to last.
Rio de Janeiro
Built piece by piece: from apprentice to co-founder.
2021 → 2022
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
2020 → 2023
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
2018 → 2020
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
React in every team. The rest, tile by tile.React in every team. The rest, tile by tile.
Every technology I've shipped, sorted by kind. Read the wall by year to see how long I've used each one, or by team to see where it shipped.
| Rio de Janeiro | Portugal | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | ||
| Libraries | ||||||||||
| In use | In use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | In use | In use | In use | In use | In use | In use | Not in use | ||
| Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Frameworks | ||||||||||
| Not in use | Not in use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | In use | In use | Not in use | Not in use | Not in use | Not in use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | In use | Not in use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | ||
| Runtime & data | ||||||||||
| In use | In use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | In use | Not in use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | ||
| Testing & tooling | ||||||||||
| Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | ||
| Languages | ||||||||||
| In use | In use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | In use | In use | In use | In use | In use | In use | In use | ||
| Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | Not in use | In use | In use | ||
| Rio de Janeiro2018 → 2022 | Portugal2022 → today | ||||||
|---|---|---|---|---|---|---|---|
| OLX2018 | Super Dev2020 | Doare2021 | Kantar2022 | Betfair2023 | Hapimag2025 | ||
| Libraries | |||||||
| Shipped | Shipped | Shipped | Shipped | Shipped | Shipped | Every team since 2018. | |
| Not used | Shipped | Not used | Not used | Not used | Shipped | ||
| Not used | Shipped | Not used | Not used | Shipped | Not used | ||
| Not used | Not used | Shipped | Not used | Not used | Shipped | ||
| Not used | Not used | Not used | Shipped | Not used | Not used | ||
| Not used | Not used | Not used | Not used | Not used | Shipped | ||
| Not used | Not used | Not used | Not used | Not used | Shipped | ||
| Not used | Shipped | Shipped | Not used | Not used | Not used | ||
| Frameworks | |||||||
| Not used | Shipped | Shipped | Not used | Not used | Not used | ||
| Not used | Not used | Shipped | Not used | Not used | Not used | Rio: full stack, end to end. PHP, MySQL and Angular retired on the way. | |
| Not used | Not used | Not used | Not used | Shipped | Not used | ||
| Not used | Not used | Not used | Not used | Not used | Shipped | ||
| Runtime & data | |||||||
| Not used | Not used | Shipped | Not used | Not used | Not used | ||
| Not used | Shipped | Shipped | Not used | Shipped | Not used | ||
| Not used | Not used | Not used | Not used | Shipped | Not used | ||
| Not used | Not used | Not used | Not used | Not used | Shipped | ||
| Testing & tooling | |||||||
| Not used | Shipped | Not used | Not used | Not used | Not used | ||
| Not used | Not used | Not used | Shipped | Shipped | Shipped | ||
| Not used | Not used | Not used | Shipped | Shipped | Not used | Portugal: design systems and their tests became the job. | |
| Not used | Shipped | Shipped | Shipped | Shipped | Not used | ||
| Not used | Not used | Shipped | Not used | Not used | Shipped | ||
| Languages | |||||||
| Shipped | Shipped | Shipped | Shipped | Shipped | Shipped | ||
| Not used | Shipped | Shipped | Shipped | Shipped | Shipped | ||
| Not used | Not used | Not used | Not used | Not used | Shipped | Now: TypeScript in front, Python and FastAPI behind it. | |
- Every team since 2018.
- Rio: full stack, end to end. PHP, MySQL and Angular retired on the way.
- Portugal: design systems and their tests became the job.
- Now: TypeScript in front, Python and FastAPI behind it.
Also in the toolbox
By year: first to last year in use, at work or on my own projects. By team: where it shipped.















