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.
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.
STAGE 1
Polystation → PlayStation
The knock-off console first, then the real one. It still counts.
TUTORIAL
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.