Jundiaí, SP · disponível para novos projetos

Oi, eu sou o Pedro. Construo produtos web de ponta a ponta.

Desenvolvedor full stack, estudante de Ciência da Computação e cofundador da Aithos Tech. Este site é meu diário de bordo: o que estou construindo, as decisões que tomei no caminho e para onde estou indo.

GitHubLinkedInInstagramReact · Next.js · TypeScript · Node · PostgreSQL
Trajetória

Como eu cheguei até aqui

Pedro Ribeiro
Pedro RibeiroJundiaí · SP

Sou desenvolvedor full stack júnior e gosto de contar essa história sem atalho: comecei pela faculdade, passei por uma empresa de software do setor farmacêutico e hoje divido meu tempo entre projetos próprios e a Aithos Tech, a startup que cofundei.

Em curso · 5º semestre

Ciência da Computação — UniAnchieta

Foi onde programar deixou de ser curiosidade e virou direção. A base teórica me deu vocabulário para as decisões que eu tomava no improviso: estrutura de dados, banco relacional, redes.

Até julho de 2026

Analista de Implantação — Fagron Tech

Implantar software para farmácias de manipulação me ensinou o que nenhum tutorial ensina: o que acontece quando o sistema encontra o usuário de verdade. Migração de dados, treinamento, suporte — vi de perto onde produto bom vira produto usado. Saí para apostar de vez no desenvolvimento.

Atual

Cofundador — Aithos Tech

Na Aithos, criamos soluções digitais para pequenos e médios negócios do Brasil. Aqui eu não só escrevo código: converso com cliente, levanto requisito, estimo prazo e respondo pelo resultado.

Próxima parada

Irlanda

O plano de longo prazo é ganhar mais estrada como dev e me mudar para a Irlanda em alguns anos. Cada projeto desta página é um passo nessa direção.

O que faço

O que eu entrego na prática

Sem lista infinita de tecnologia: estas são as ferramentas com que eu trabalho de verdade, agrupadas pelo que elas resolvem.

Interfaces

Telas responsivas e rápidas, com estados bem tratados e micro-interações que ajudam em vez de enfeitar. Do layout ao comportamento final.

ReactNext.jsTypeScriptTailwindVite

APIs e dados

Backends com regras de negócio no lugar certo, autenticação e modelagem relacional pensada antes da primeira linha de código.

Node.jsExpressPostgreSQLPrismaSupabase

Entrega e operação

Deploy que se repete sem susto: ambientes em contêiner, versionamento disciplinado e o projeto saudável depois da primeira entrega.

DockerVercelAWSGit / CI
Projetos

Cada projeto é uma história de decisão

Não é vitrine de tecnologia: cada um nasceu de um problema concreto, exigiu uma escolha técnica e me deixou uma lição. Conto as três coisas.

Interface do projeto Babilon
Projeto autoral · em produção

Babilon

O problema

Eu queria criar disciplina financeira de verdade, e planilha não cria hábito. A ideia veio do livro "O homem mais rico da Babilônia": transformar a rotina de controlar dinheiro em algo visual e acompanhável.

A decisão

Escolhi Supabase em vez de Firebase de propósito: dados financeiros são relacionais (contas, categorias, lançamentos), e eu queria Postgres com SQL de verdade para os relatórios. Row Level Security protege os dados de cada usuário no próprio banco, e o Realtime veio de brinde.

O que ficou

A pensar segurança desde o schema, não como camada colada no final. RLS mudou como eu modelo qualquer app multiusuário.

ReactTypeScriptViteTailwindSupabasePostgreSQLRecharts
Interface do projeto ShopSphere
E-commerce completo

ShopSphere

O problema

CRUD todo mundo faz. Eu queria entender o que sustenta uma loja de verdade: catálogo com busca e filtros, carrinho que não perde estado e um fluxo de pagamento seguro.

A decisão

Separei frontend e backend em serviços independentes — API Node/Express com PostgreSQL, autenticação JWT e Docker para o ambiente subir igual em qualquer máquina. As regras de negócio moram no backend, não espalhadas na interface.

O que ficou

Que a parte difícil de e-commerce não é a tela, é o estado: estoque, carrinho e pagamento precisam concordar entre si o tempo todo.

ReactTypeScriptNode.jsExpressPostgreSQLDockerJWT
Interface do projeto Stratix
Gestão de tarefas

Stratix

O problema

Eu queria passar pelo ciclo completo de um SaaS simples: usuários se cadastram, cada um enxerga só as próprias tarefas, e os dados sobrevivem a qualquer refresh.

A decisão

Prisma como camada de dados foi a escolha central — schema declarativo, migrations versionadas e tipos gerados que atravessam o TypeScript de ponta a ponta. Autenticação com JWT por usuário.

O que ficou

O valor de tipagem compartilhada entre banco e código: uma mudança no schema quebra o build antes de quebrar em produção.

ReactTypeScriptViteNode.jsExpressPrismaJWT
Interface do projeto Palazzo Travel
Painel administrativo

Palazzo Travel

O problema

Uma agência de viagens organizando pacotes e clientes em planilhas soltas — o tipo de operação que a Aithos encontra direto em negócio pequeno. Faltava um painel central.

A decisão

TypeScript de ponta a ponta e TypeORM no lugar do Prisma — de propósito, para comparar as duas abordagens de ORM na prática. JWT nos fluxos administrativos e dados modelados em PostgreSQL.

O que ficou

A comparar ferramentas com critério próprio: entities e decorators do TypeORM versus o schema declarativo do Prisma. Hoje sei dizer quando cada um vale a pena.

ReactTypeScriptStyled-ComponentsNode.jsTypeORMPostgreSQL
Interface do projeto API Petshop
Operação de serviço

API Petshop

O problema

Um petshop precisa de leitura rápida no balcão: quem é o cliente, qual pet, qual serviço, que horas. Cadastro e consulta não podem atrapalhar o atendimento.

A decisão

Frontend e backend separados com responsabilidades claras — a API Express com Prisma cuida do CRUD de pets, clientes e serviços; a interface React foca em consulta rápida.

O que ficou

Fundamentos bem feitos: rotas REST organizadas, validação no lugar certo e uma API que outra pessoa consegue ler e evoluir.

ReactNode.jsExpressPrismaCSS
Interface do projeto GitHub Finder
Frontend · consumo de API

GitHub Finder

O problema

Busca de perfis do GitHub parece trivial até você tratar o que acontece entre o clique e a resposta: carregando, erro, usuário inexistente, lista vazia.

A decisão

Sem backend de propósito — React com Vite consumindo a API pública do GitHub, com cada estado da interface desenhado explicitamente em vez de deixado ao acaso.

O que ficou

Que estado de interface é design, não detalhe: loading, erro e vazio são metade da experiência de qualquer busca.

ReactTypeScriptViteAPI do GitHub
Processo

Como eu trabalho

O mesmo caminho nos projetos próprios e nos da Aithos — pensado para quem contrata entender o andamento sem precisar ler código.

Entender o problema

Converso até conseguir explicar o problema com as minhas palavras. Só então escrevo escopo — curto, em linguagem que o cliente também entende.

Desenhar a solução

Modelagem de dados, fluxos e as decisões técnicas justificadas por escrito: o que entra agora, o que fica para depois e por quê.

Construir em ciclos curtos

Entregas pequenas e frequentes, com demo a cada ciclo. Quem acompanha vê o produto crescer, não só recebe no final.

Acompanhar depois

Documentação, monitoramento e estrutura para evoluir. Entregar é o começo da conversa, não o fim.

Bora construir alguma coisa?

Vaga full stack júnior, projeto para a Aithos ou só uma conversa sobre uma ideia — me chama direto. Sem formulário: eu leio e respondo.

Email: pedroribeiro.contato1914@gmail.comGitHub: pedroavv1914Instagram: _pedroavvJundiaí · SP · Brasil (UTC−3)