I'm Jônatas Gomes

I'm Jônatas Gomes

(but you can call me Johny)

and this is my portfolio 👨🏿‍💻

I'm a Senior Frontend Engineer at Pinterest, building React and TypeScript interfaces used by millions. On the side, I take products from zero to launch, from fintech tools to apps for street vendors. This site shows both sides of my work.

Creations

Use the left and right arrow keys to change slides. Home goes to the first slide and End goes to the last slide.

LojaPixCompleted (opens in a new tab)

Python
CSS
HTML
PostgresSQL
Vercel
SQLAlchemy
Pydantic
Pillow
FastAPI
CloudFlare R2
Sentry
Google AdSense
Cypress
Github Actions

LojaPix is a full-stack product for small businesses that sell via Pix. Sellers set up a branded storefront with products and photos, share a public link (or custom subdomain), and customers pick items on their phone. The app totals the cart and generates a Pix QR code for the exact amount — payments go straight to the seller’s Pix key.

Built with FastAPI and server-rendered Jinja2 templates, SQLAlchemy + Alembic, and Turso/libSQL in production on Vercel. Media lives on Cloudflare R2 behind a CDN; coverage includes pytest and Cypress, with GitHub Actions CI.

LojaPix 1
LojaPix 2
LojaPix 3

ContaCertaCompleted

Flutter
Dart
Riverpod
Dio
Hive
Google Cloud Service
Python
FastAPI
SQLAlchemy
Pydantic
Vercel
OpenCV
Pytest

ContaCerta is a privacy-focused Flutter app that automatically detects bills, boletos, and Pix payments in the user’s Gmail inbox and organizes them into a unified “accounts payable” list.

The mobile client authenticates exclusively via Google Sign-In and never reads Gmail directly. A Python FastAPI backend—deployed as serverless functions on Vercel—handles OAuth token exchange, incremental Gmail sync, sender whitelisting, and charge detection from email text, HTML, PDF attachments, and QR codes. Refresh tokens are encrypted at rest; local storage keeps only structured charge data, not full emails.

The architecture separates concerns cleanly: Flutter (Riverpod, go_router, Dio, Hive) on the client, and a layered API (routers → services → repositories → SQLAlchemy/Turso) on the server, with automated tests covering parsing and business logic.

ContaCerta 1
ContaCerta 2

DivideAíCompleted (opens in a new tab)

Next.js
React
TypeScript
Tailwind CSS
Radix UI/shadcn
Serwist (PWA)
Python
FastAPI
Pydantic
JWT
Google Auth
Turso/libSQL
SQLite
Celery
Redis
Playwright
BeautifulSoup
Jinja2
Pusher
Web Push/VAPID
Groq
OpenAPI
Vitest
Pytest
Uvicorn
Docker

DivideAI is a full-stack web app that makes splitting restaurant and bar bills fair and effortless. Friends open a shared session, invite others via QR code or link, add items from a live menu or manually, assign who consumed what, and settle the bill with service fees and couvert included — no spreadsheets, no awkward math.

The product is built as a monorepo: a Next.js frontend (React 19, TypeScript, Tailwind, PWA), a FastAPI backend with JWT and Google auth, and an async scraping stack (Celery, Redis, Playwright) that discovers venues and keeps menus up to date in a shared Turso/libSQL database. Real-time updates (Pusher) and web push keep everyone in sync while the bill is being built.

It showcases end-to-end product thinking: collaborative UX, typed API contracts from OpenAPI, anonymous and authenticated identity, and a production-minded data pipeline behind the scenes.

Rastro AppCompleted

Flutter
Dart
Provider
SQLite
sqflite
Android Notification Listener
FastAPI
Python
Uvicorn
SQLModel
SQLAlchemy
Turso
libSQL
Pydantic
Docker
Vercel

Rastro is an Android fintech app that builds daily financial awareness by capturing spending automatically from bank push notifications—no manual entry required.

When a Brazilian bank app notifies a purchase, Rastro’s notification listener parses the amount and merchant with regex patterns for major banks (Nubank, Inter, Bradesco, Itaú, C6, PicPay, and more), stores the transaction offline in SQLite, and syncs it to a FastAPI backend through an idempotent offline-first queue. The API authenticates users with JWT, persists data on Turso (libSQL), categorizes expenses, and can generate contextual insights with Anthropic’s Claude API.

The Flutter client presents a Portuguese (pt_BR) dashboard with spending progress, category breakdowns, and savings potential, while biometric unlock and local notifications support privacy and daily summaries. The architecture is designed for reliability on mobile networks: capture first, sync when online.

Rastro App 1
Rastro App 2
Rastro App 3

Project 1 of 4

Skills

  • LanguagesLinguagens

    • Python
    • Go
    • JavaScript
    • TypeScript
    • HTML5
    • CSS
    • Dart
  • Frontend

    • React
    • Context API
    • Redux
    • Zustand
    • Next.js
    • Tailwind CSS
    • Styled Components
  • Automated TestingTestes Automatizados

    • React Testing Library
    • Jest
    • Cypress
    • Playwright
  • Backend and DatabasesBancos de Dados

    • PostgreSQL
    • MySQL
    • FastAPI
    • Node.js
  • DevOps & Cloud

    • Kubernetes
    • Docker
    • AWS
  • Mobile

    • React Native
    • Flutter

Journey

Filter:

Loading

Frontend Developer

at Pinterest
03/2025 ~ Present
React
TypeScript
Tailwind CSS
Microfrontends
React Testing Library
Playwright
Kubernetes
  • Led the development of high-performance interfaces for the global platform, serving millions of daily users with a focus on scale and resilience.
  • Designed and implemented a microfrontend architecture using React and TypeScript, ensuring modularity and independent deployment.
  • Drove the complete feature lifecycle, from scope definition to deployment in a Kubernetes environment, utilizing CI/CD practices.
  • Increased E2E and unit test coverage of the codebase from 45% to over 70%, leveraging React Testing Library and Playwright.

Software Engineer

at Jusbrasil
07/2023 ~ 12/2024
Python
React
Go
Docker
Kafka
FastAPI
Pydantic
Google Cloud Platform
React Testing Library
  • Spearheaded full stack development of tools for the collection, processing (Python/Golang), and visualization of legal data for millions of
  • Optimized frontend performance with advanced techniques such as lazy loading, code splitting, and memoization, resulting in a 22% improvement in application loading time (LCP – Largest Contentful Paint).

Frontend Developer

at Knedle
03/2023 ~ 07/2023
Python
React
TypeScript
Chakra UI
Next.js
Styled Components
Jest
  • Developed an Interactive Data Visualization and Query Dashboard for Official Gazette (DODF) data using React.js with TypeScript, Next.js and ChakraUI.
  • Implemented advanced search features and visual queries based on the Neo4j database, including functionality for PDF data extraction.
  • Architected the project's institutional website and developed a reusable, customizable component system using Styled Components and ChakraUI.
  • Enhanced frontend code security and quality by adopting TypeScript and implementing unit tests using Jest.

Fullstack Developer

at Pencillabs
03/2021 ~ 03/2023
Python
TypeScript
AngularJS
React
Node.js
Figma
CSS
Docker
Django
Wagtail
  • Led the complete refactoring of a legacy system to AngularJS and TypeScript, and developed new modules in React, TypeScript and Node.js, resulting in a 28.5% increase in development efficiency.
  • Designed and constructed advanced layouts and animations (CSS) based on Figma prototypes and built reusable component libraries.

Fullstack Developer

at ProEPI
07/2020 ~ 03/2021
Javascript
TypeScript
React
Ruby on Rails
Metabase
  • Developed a responsive interface for an epidemiological surveillance system, focusing on usability and accessibility for healthcare
  • Integrated frontend applications with REST APIs, ensuring efficient data flow and designing appropriate visual feedback systems.

Software Developer

at ENAP (National School of Public Administration)
03/2017 ~ 01/2018
Express.js
Python
React
Docker
FastAPI
  • Developed automated solutions for data collection and processing, utilizing Python and web scraping techniques.
  • Implemented course integrity checkers, reducing repetitive manual checks and decreasing user complaints by 30%.
  • Integrated frontend applications with REST APIs, using Express.js, ensuring efficient data flow and designing appropriate visual feedback systems.