Skip to content

gabpaesschulz/gabpaesschulz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Gabriel Paes Schulz — Fullstack Developer · Open-source Builder · Product-minded Engineer

LinkedIn Email


I build backend systems that don't fall apart, frontend interfaces that don't feel like an afterthought, and developer tools that remove the boring glue between good libraries.

4+ years modernizing corporate systems — legacy migrations, financial workflows, REST integrations, query optimization, internal tools and production support. Off the clock, I ship my own products and open-source tooling, usually around one theme: turning repetitive engineering pain into something cleaner, typed and reusable.

I care about code that communicates intent, architecture that survives its own growth, and products that feel like someone actually thought about the person using them.


✦ Selected Work

FilterBridge — schema-first filters for React admin screens

npm demo release

Admin dashboards repeat the same filter logic across React state, URL params, backend DTOs and table filters. Declare it once — reuse the typed schema everywhere.

const filters = defineFilters({
  search: text(),
  status: select(["draft", "pending", "paid", "failed"]),
  tags:   multiSelect(["urgent", "recurring", "manual-review"]),
})

const dto    = toQueryDto(filters, state)     // → backend
const params = toSearchParams(filters, state) // → URL

Shipped as a pnpm monorepo of 5 packages (core · react · browser · tanstack · next), with ESM/CJS output, type declarations, Vitest smoke tests and a live demo.


hookform-action — the missing layer between React Hook Form and your server

npm docs

Every project re-writes the same wiring to connect a form to a server action: useTransition, FormData serialization, Zod error mapping, setError() calls, pending state. I abstracted it away.

const { register, handleSubmit, formState } =
  useActionForm(loginAction, { validationMode: "onChange" })

Full TypeScript inference, optimistic UI with rollback, multi-step wizard persistence, a floating DevTools panel and automated tests.

npm i hookform-action-core

Aprovado.ai — PDF → Anki flashcards in under 60s, powered by LLMs

live

Built end-to-end: Next.js + TypeScript, LLM API integration, freemium model with three tiers, payment gateway (card · PIX · boleto) and CI/CD on Vercel.

Not a tutorial clone. Not just a landing page. A real product with pricing and a full payment flow.


✦ Also in the Lab

Project What it is
🪦 Graveyard A digital memorial for abandoned projects — death certificates, epitaphs, a funeral wizard. Next.js 15 · Prisma · Postgres · Framer Motion. "The projects that didn't work taught me more than the ones that did."
💰 FreedomCalc Local-first FIRE & compound-interest planner. Zero servers, AES-256 in localStorage, PIN lock, PWA-ready.
🎬 Watch Planner Turns any Letterboxd list into a personalized watch schedule. TMDB enrichment · drag-and-drop calendar · .ics export.
🎤 Setlist Concert & festival lifecycle planner with budget guardrails and predictive alerts. IndexedDB-first, offline-capable.

✦ Stack

Backend   Java Quarkus Spring Boot Node.js

Frontend   TypeScript React Next.js Angular Tailwind

Data   PostgreSQL MySQL MongoDB Prisma

Craft & DevOps   Docker Jenkins Git Vercel  ·  TDD · SOLID · Hexagonal Architecture


✦ What I care about technically

Library design and developer experience · Architecture decisions that age well · Testing as a design tool · Local-first and offline-capable patterns · The product side of engineering


LinkedIn  ·  gabriel_paes@live.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors