Skip to main content

Hi, I'm
Daniel Bernardino de Souza

Daniel Bernardino de Souza

Daniel
Bernardino

Fullstack Developer

Let's Connect
Daniel Bernardino de Souza
  1. 2020–22

    Folhas Que Salvam ("Leaves That Save")

    Led a team impacting 90+ people

    Internal Control Manager — educational environmental project (Remote)

  2. 2022–23

    Driven Education

    Web Fullstack Development (Remote)

  3. 2023–25

    iForth Systems

    Delivery time 4 days → 1 day

    Software Engineer (Remote)

  4. 2025–26

    CodeSquare

    Main kanban board load 7s → 1.5s (team testers, browser Network tab)

    Mid-Level Fullstack Developer (Remote)

Full résumé

Mindset

Building more than software. My passions provide the discipline and focus I need to grow.

Focus & Discipline

Mastering body and mind is my path to excellence.

Criciúma Santa Catarina

28°40'44.110" S, 49°22'11.748" W- GMT-3

Craft

Building scalable apps, websites, and automations.

I understand what advantages modern tech can provide, helping me advise on the solutions a business actually needs.

React
React
Next.js
Next.js
TypeScript
TypeScript
Tailwind CSS
Tailwind CSS
Clerk
Clerk
Supabase
Supabase
Firebase
Firebase
React
React
Next.js
Next.js
TypeScript
TypeScript
Tailwind CSS
Tailwind CSS
Clerk
Clerk
Supabase
Supabase
Firebase
Firebase
Node.js
Node.js
NestJS
NestJS
PostgreSQL
PostgreSQL
MongoDB
MongoDB
Redis
Redis
Prisma
Prisma
Docker
Docker
CI/CD
CI/CD
AWS
AWS
Node.js
Node.js
NestJS
NestJS
PostgreSQL
PostgreSQL
MongoDB
MongoDB
Redis
Redis
Prisma
Prisma
Docker
Docker
CI/CD
CI/CD
AWS
AWS
Figma
Figma
Cursor
Cursor
OpenAI
OpenAI
Gemini
Gemini
Claude
Claude
Git
Git
VS Code
VS Code
Figma
Figma
Cursor
Cursor
OpenAI
OpenAI
Gemini
Gemini
Claude
Claude
Git
Git
VS Code
VS Code
Flutter
Flutter
React Native
React Native
Kotlin
Kotlin
Flutter
Flutter
React Native
React Native
Kotlin
Kotlin
Open to collaboration
Let's talk

Selected work

Projects

Things I've built — side projects, open source contributions, and professional work.

2026Featured

plaid-sync-ledger

Designed, directed and architected a system that keeps a per-user ledger of bank transactions in sync with Plaid and stays correct when things fail halfway, with every decision recorded in 13 ADRs. All 8 chaos scenarios, run as real processes — SIGKILL mid-pagination and mid-commit, every webhook delivered 10 times, two concurrent workers, 30% of Plaid calls answering 500 or timing out — end with the same ledger hash as the provider's ground truth.

8 of 8 chaos scenarios end with the oracle's ledger hash

  • TypeScript
  • Next.js
  • Cloudflare Workers
  • Node.js
  • PostgreSQL
  • Prisma
  • pnpm
  • Turborepo
  • Vitest
2026Featured

scholia

Designed and directed scholia, a self-hosted second brain for AI agents: a remote MCP server where Claude saves distilled notes from conversations (decisions, data with sources, positions, open questions) and searches them before answering, with hybrid search that fuses pgvector similarity and Postgres full-text through reciprocal rank fusion. AI agents implemented it under Daniel's direction, from first commit to a production deploy on Railway with GitHub OAuth in 2 days. Tested on his real knowledge base (14 notes in Portuguese, 13 of them distilled from a week of political conversations), with 24 questions written before any note was saved, 12 by meaning and 12 by exact term or acronym, by the same agent that wrote the notes: the right note came first in 23 and in the top 3 in all 24. The similarity floor was calibrated on real scores and left off, because related and unrelated notes overlapped.

23 of 24 searches ranked the right note first across 14 real notes, written before the notes were saved; plan to production in 2 days

  • Python
  • FastMCP
  • PostgreSQL (pgvector
  • full-text search)
  • Voyage AI
  • OpenAI embeddings
  • GitHub OAuth
  • Docker
  • Railway
Gestão Minha Nova.Casa: 'Os documentos montam o cadastro' beside a buyer record built from 4 files received over WhatsApp, each field tagged with the document it came from (da CNH, da conta de luz, do holerite 08/2026), and a warning that the income given in the conversation was 45% above the payslip.
2026Featured

Gestão Minha Nova.Casa

Gestão Minha Nova.Casa is an internal tool for a CAIXA Aqui correspondent, the partner that takes home buyers through CAIXA's mortgage process. The team drops a buyer's documents into the app; an LLM extracts the data, the app builds the buyer's record, checks it against a catalogue of 8 pre-submission rules (CPF check digit, postcode against address, validity of the proof of income, extracted income against declared income, highly variable income, maximum age, maximum term, income commitment), and, at one click, an agent drives Chrome on the attendant's own machine to run CAIXA's mortgage simulation and saves the result, which CAIXA's site does not keep — so nobody retypes anything. CAIXA changes its site's layout often but not its fields, as the correspondent confirmed, so the agent fills the form by reading the whole screen rather than relying on fixed selectors; when it cannot find a field or CAIXA rejects one, it stops, the attendant completes that step by hand, and the agent resumes. A simulation the correspondent estimates at about 2 minutes by hand took 15 seconds in live tests with the correspondent on real buyers' data, and when the documents are sent complete every form field is filled from them, never from the conversation with the buyer. Daniel chose the extraction model by measuring four of them on 16 real customer documents (82 fields): the one picked read 89% of fields correctly with 2 silent errors (a wrong value at confidence 0.9 or above), at about US$ 0.05 per buyer, over a model with the same accuracy that never answers "unreadable" and made more than three times the silent errors. Since no model read every photo right — all four got the same birth date wrong with high confidence — he designed the extraction to be verified, not just read: every field ends either confirmed by a check that cannot be wrong (CPF and CNH check digits, payslip arithmetic) or seen by a person with the document beside it, and all 13 wrong CPF and CNH readings in the test failed their check digit. Daniel ran the discovery with the correspondent and built the whole system — the Electron desktop app and its browser agent, the NestJS server with its AI gateway, the partner portal and the sales site — everything except the brand name and the visual identity, which came from a landing page designed by the CodeSquare team. It is in acceptance testing with the correspondent, in a staging environment, ahead of release.

CAIXA credit simulation ~2 min by hand (the correspondent's estimate) → 15 s in live tests on real buyers' data; every form field filled from the documents, checked by 8 pre-submission rules

  • TypeScript
  • Electron
  • Playwright
  • NestJS
  • Drizzle ORM
  • PostgreSQL
  • better-auth
  • Zod
  • React
  • TanStack Router
  • TanStack Start
  • OpenAI API
  • Docker
  • Caddy
  • CSS Modules
  • Zustand
  • TanStack Query
2026

Labs

Labs is Daniel's showcase and concept lab: a place for concept demos and anything else he wants to share, launched in September 2026 with five live demos in its first month — Bastidores, Conta de tokens, Curtailment BR, Pix na minha cidade and Raio de explosão, each built on public data. The demos were researched, designed and built by an orchestration of AI agents under Daniel's direction — 36 agents across 7 phases, with Daniel deciding at 5 points, as Bastidores replays from the orchestration's own logs.

5 concept demos live within its first month

  • Next.js
  • React
  • TypeScript
  • AI agent orchestration
  • Railway
2026

Radar Tech Sul SC

Radar Tech Sul SC is a Telegram bot that gathers the tech events of southern Santa Catarina (Criciúma and region), scattered today across Meetup groups, Sympla and institutional agendas, into a single channel. It collects from each Source (Meetup iCal feeds, Sympla's embedded JSON, the SATC events portal) plus links suggested in a private chat, keeps only tech events in the region, normalises title, date, time, venue, organiser, price and sign-up link, merges several announcements of one event into a single post, and routes open Sources through a review queue before publishing — then edits the post when the event changes, sends a reminder the day before and a weekly agenda on Mondays. It began on GitHub Actions and moved to an always-on process on Railway once the up-to-an-hour latency between approval and post proved unacceptable in real use.

  • Python
  • httpx
  • icalendar
  • Telegram Bot API
  • Railway
  • GitHub Actions
  • pytest
2026Featured

Square AI

Square AI is CodeSquare's own AI pre-analysis system for building-permit applications: it checks an application's documents, zoning indices and architectural plans against municipal law, and returns a checklist of compliant / non-compliant / not-applicable / inconclusive items with evidence and a suggested opinion — the AI does not approve or reject; the engineer decides. Daniel built everything except the legislation data collection and the RAG index: the API, the queue executor, PDF and DWG extraction, the deterministic rule checks, the phased LLM analysis constrained by JSON Schema, and a review phase that filters false alarms. DWG plans, a closed format, are converted with LibreDWG into one the system can read, so rules such as a balcony's maximum depth and area or a bathroom's minimum area are checked against the plan itself. The plan is read twice — by an LLM and by the LibreDWG reader, matched through the room labels the designers write — and a room the two do not agree on, or drawn outside the convention, is marked "cannot verify" and left to the engineer, who can explain how to read it; that explanation feeds a list of keywords per room type that grows as the system is used. In a test at the Uberlândia city hall, two engineers analysed the same application, one with the system and one without: pointing the engineer to what to verify cut a full analysis from 3-4 days to under a day. The system has been submitted to a public tender and awaits budget for implementation.

Engineer's full analysis 3-4 days → under 1 day in a side-by-side test at the Uberlândia city hall (two engineers, same application, one with the system)

  • Python
  • PostgreSQL (pgvector)
  • MinIO/S3
  • PyMuPDF
  • LibreDWG
  • LLM with JSON Schema
  • Docker
2026FeaturedYou're looking at it

Personal Website

A career Corpus that treats professional history as versioned source: Affiliations and Accomplishments stored as schema-validated markdown, read through a typed loader and rendered per audience. Daniel authored the three agent skills that drive it — capture interviews him to record an Accomplishment without ever inventing a number, generate turns a job posting into a structured Selection that a fixed template renders to PDF through Tectonic, and recon produces a verified dossier on a target company plus a direct approach to its decision-maker. The model never writes LaTeX and never asserts a fact absent from the Corpus: a malformed Selection fails to render rather than quietly producing a different document, and an Accomplishment with no metric is kept as an explicit draft instead of an embellished claim. Producing a résumé tailored to a posting went from about two hours of research and writing to three minutes. The public site is one Render Target of the same Corpus.

This is the site you're browsing right now — the source below is what builds this page.

Tailored résumé: ~2 hours to 3 minutes

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Tectonic (LaTeX)
  • Node.js
2026

dont-let-me-forget

dont-let-me-forget is a set of three Claude Code agent skills that turn "I don't want to forget this" into a resurfacing queue. The capture skill saves an idea, a reading or a maybe-project as a Note with the reason it was kept, in a single approval, and hands the session straight back to what was interrupted. Notes come back on a 1d → 3d → 1w → 2w → 4w ladder; at the last rung, the Wall, they can only be acted on or archived. The review skill walks the due Notes one at a time, opening with the real count and naming how many times a Note has already been postponed, and the browse skill lists the queue or draws one Note at random from everything ever saved, archive included. A session-start hook reports how many Notes are due, and nothing is ever deleted by automation.

  • Node.js
  • Claude Code skills
  • hooks
  • Git
2026

Café Cajubá — App

Café Cajubá — App is the customer-facing mobile app of the loyalty club of Café Cajubá, a coffee roaster founded over 55 years ago and first in the Top of Mind Uberlândia survey and reported by the Diário de Uberlândia in 2018 to account for up to 80% of coffee-segment sales. Members sign up, submit their purchase receipts, watch them turn into points, and spend those points on rewards, alongside an in-app store, order history and loyalty games; payment goes through Mercado Pago or Stripe and shipping through Melhor Envio, all behind the Café Cajubá REST API. Daniel built the app end to end, delivering 30 screens in roughly ten weeks — including two-step email verification, the Google sign-in path, and a design system of width bands and per-region ceilings that every screen is built against. It authenticates directly against Supabase and consumes the REST API with a bearer token, under an identity rule that keeps admin and customer accounts strictly disjoint on a shared user base. The client approved it; it has not been launched, pending the client's payment.

30 screens delivered in ~10 weeks, approved by the client, not yet launched

  • React Native
  • Expo
  • expo-router
  • TypeScript
  • Supabase Auth
  • Jest
  • Zustand
  • TanStack Query
2026

Latente

Latente seals each delivered photo with an invisible forensic watermark, so a preview that surfaces where it should not identifies which delivery it came from. Built it solo, end to end — the LSB steganography engine, the landing page, and a working Seal/Trace demo that runs entirely in the visitor's browser with no backend and no upload: a 256-byte block is written into the least significant bit of the R/G/B channels, repeats 1913 times across a 1400×933 image, and is recovered by bit-wise majority vote that reports a confidence score, moving each pixel at most one level in one channel. Also built a reproducible robustness bench with acceptance thresholds pre-registered before any measurement, which established that the seal absorbs heavy noise but zeroes on a one-column crop — a limit the project documents in the open rather than hides, and the reason the specified v2 engine moves to the frequency domain. Paused in August 2026 and kept as a portfolio piece.

2048-bit block repeated 1913x per 1400x933 image, recovered by bit-wise majority vote

  • Vanilla JavaScript
  • Vite
  • Canvas API
  • localStorage
2026

Café Cajubá — Painel de Fidelidade

Café Cajubá — Painel de Fidelidade is the admin web panel and REST API behind the loyalty programme of Café Cajubá, a coffee roaster founded over 55 years ago, first in the Top of Mind Uberlândia survey run by the city's commercial association (Aciub), and reported by the Diário de Uberlândia in 2018 to account for up to 80% of coffee-segment sales. The system closes the loop from customer receipt to audited invoice to points to redeemed reward. Daniel built 9 of its 10 modules over roughly ten weeks — Dashboard, Clientes, Produtos, E-commerce, Prêmios, Notificações, Conteúdo, Usuários and Configurações, everything except the invoice-audit module owned by a teammate — alongside the three-tier product catalogue (Produto → Variação → Oferta), the loyalty points ledger and customer statement, and the identity rule that keeps admin and app accounts disjoint on one shared Supabase user base. He integrated freight quotes and tracking through Melhor Envio, a Brazilian freight-quoting platform, and both Mercado Pago and Stripe, because the client wanted the choice. Daniel built the webhook handlers that receive the payment notifications and Melhor Envio's tracking updates. He designed the scheduled messaging for the client's estimate of 3,000 members (from its regional sales, assuming at least 40% capture): messages queue on Cloudflare Queues with a planned send time, each coupon is tied to its message and released by a Cron Trigger five minutes before the send, tests check the coupon's coverage, and if the release fails the message is not sent. The same codebase serves the REST API consumed by the Café Cajubá mobile app, and ships with a dedicated warm-up Worker to keep the serverless runtime out of cold start. Daniel wrote by hand, in SQL, the Supabase row-level security policies and a view of each customer's points balance. The client approved it; it has not been launched, pending the client's payment.

9 of the panel's 10 modules delivered in ~10 weeks, approved by the client, not yet launched

  • TanStack Start
  • React
  • TypeScript
  • Supabase
  • PostgreSQL
  • SQL
  • Drizzle ORM
  • Cloudflare Workers
  • Cloudflare Queues
  • Melhor Envio API
  • Mercado Pago
  • Stripe
  • Vitest
  • Tailwind CSS
  • Zustand
  • TanStack Query
2026

BaixarMusica

BaixarMusica is a minimal Windows GUI wrapper around spotdl that lets a user pick a folder, paste a Spotify or YouTube link (or a text search), and download audio as 320k mp3 without installing Python, spotdl, or ffmpeg separately. It self-updates its bundled spotdl and ffmpeg components in the background, verifies downloads via SHA256, falls back to the previous spotdl binary if an update breaks, and includes a duplicate-detection feature that compares ID3 tags (artist/title) within a folder rather than filenames.

  • Python
  • PowerShell (build.ps1)
  • spotdl
  • ffmpeg
  • pytest
2026

Danbel

Danbel is a planned offline-first React Native mobile app for tracking strength training workouts (exercises, sets, loads, reps, RIR) and progression over time, organized around a "planned vs. actual" concept across training cycles. As of the repo snapshot it is in the planning phase only, with product vision, domain model, specs, and ADRs written but no application code yet.

  • React Native
  • Expo
  • TypeScript
  • Drizzle
2023

Folhas Que Salvam Kanban

Built a Kanban system for the Folhas Que Salvam project to distribute tasks across teams, monitor progress, and reward contributors on a points basis, improving how project tasks were managed.

  • Next.js
  • Nest.js
  • Prisma
  • Clerk
  • Tailwind
  • Jest
  • TypeScript
2026

Wedding Gift List

A Next.js 15+ application for couples to manage wedding gift lists and for guests to contribute securely, built with a layered SOLID architecture (domain, repository, service, server-action layers) and dependency injection. It integrates Stripe Connect Express for direct payouts to couples' bank accounts, Prisma/PostgreSQL for persistence, better-auth for authentication, and Resend for contribution email notifications, plus cron jobs for abandoned-checkout cleanup.

  • Next.js 15/16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • shadcn/ui
  • Prisma ORM
  • PostgreSQL
  • better-auth
  • Stripe Connect
  • Resend
  • Zod
  • radix-ui
2023

PetriCar

PetriCar is a concept for an automotive quality-assessment API, designed to automate the verification of automotive parts by modelling the QA process on Carl Adam Petri's Petri nets. It reached the design and architecture stage — Node.js, Prisma, TypeScript, Clean Architecture — but was not built out into a working system.

2022Featured

Folhas Que Salvam

Led and guided a volunteer team on the Folhas Que Salvam educational environmental project, developing company policies and internal control procedures that secured the project's legal validity and financial transparency, and defining achievement metrics that raised the consistency and quality of weekly deliverables — work that impacted more than 90 people.

Led a team impacting 90+ people

17 projects shown

Labs

Where I build small, working demos on public data. Each one answers a single concrete question and cites every source it uses. They are concepts, not products for any company.

DeparturesDemo 1 of 6: Bot de WhatsApp: IA × Jev
  1. Bot de WhatsApp: IA × Jev preview: with a patient who writes badly and has no patience, GPT-6 Astra solved 88% of 26 cases and Jev 81%, while Jev with an LLM rewriting its messages solved 85%, above the clinic's service panel.Bot de WhatsApp: IA × JevShippedOCT 2026A concept demo that runs the same WhatsApp attendance bot for a fictional dental clinic, built five ways (Claude Sonnet 5, Claude Haiku 4.5, GPT-6 Astra, Jev with templates, and Jev with an LLM that only rewrites its message), through the same cases with a patient who writes badly, and shows how much each one solves, where it fails and what guardrails change. Its data comes from a validation round of zap-bench, Daniel's public benchmark, scored by code.
  2. Bastidores preview: 36 AI agents made 5 demos in 7 phases, and Daniel decided at 5 points — a swimlane timeline with one row per agent and hatched bands where the line stopped for him.BastidoresShippedSEP 2026A concept demo that replays how five Labs concept demos, this one included, were researched, designed and built by an orchestration of AI agents under Daniel's direction, drawn as a levelling board where every agent run is a card and every stop marks a decision Daniel made. Its data comes from the orchestration's own logs, stripped of private data.
  3. Conta de tokens preview: what 1 billion tokens a month costs — US$ 2,880 on Claude Sonnet 5 against US$ 91 on DeepSeek V4.1 Flash, shown on flip-counter digits.Conta de tokensShippedSEP 2026A concept demo that prices a team's monthly LLM token volume across models, with prompt caching as the one control, beside each provider's weekly share of the tokens that pass through OpenRouter. Its data comes from OpenRouter's public price catalog and CC BY 4.0 rankings, fetched once; the usage scenario is illustrative.
  4. Curtailment BR preview: on Sunday 16/08/2026 wind and solar plants in Brazil were ordered to curtail 400 GWh, almost as much as they generated — beside a map of the Northeast dotted with curtailed plants.Curtailment BRShippedSEP 2026A concept demo that replays, half-hour by half-hour, how much wind and solar generation Brazil's grid operator (ONS) ordered cut in the Northeast, plant by plant, and why: surplus energy or grid limits. Its data comes from ONS open data.
  5. Pix na minha cidade preview: a receipt-style card for São Paulo showing 38 Pix per user in August 2026 against a Brazilian average of 43, and a red seven-segment display ranking it 2605th of 5,571.Pix na minha cidadeShippedSEP 2026A concept demo that shows how often Pix users in any of Brazil's 5,571 municipalities pay with Pix against the national average, and prints the answer as a shareable queue ticket. Its data comes from Banco Central's open data (ODbL).
  6. Raio de explosão preview: 4 of ChainDrop's 444 packages came in through a single devDependency — concentric dependency rings around stylelint 17.14.1 with the infected path highlighted.Raio de explosãoShippedSEP 2026A concept demo that replays how the ChainDrop npm worm of 4 August 2026 could reach an install through ordinary version ranges, drawn as a zone chart where each ring is a dependency hop and each range is a gate that opens or stays shut. Its data comes from Datadog's published indicators of compromise, deps.dev and OSV.
labs.teamdbsolutions.comEvery demo, with its sources and method