#0 jotave.dev · Full-Stack Developer · UTFPR · Nobuntu Tecnologia

João VictorPiloni

Construo APIs e ferramentas com NestJS, TypeScript, Angular e GCP. Gosto de resolver problemas com código limpo e soluções bem pensadas, do backend à infraestrutura.

bash · ~
$ whoamijotave$ cat stack.txtnestjs · typescript · angular · postgresql · gcp

#1 Sobre

Do backend à infra

Retrato de João Victor Piloni Vilhegas, processado com dithering
Algoritmo
Troque o algoritmo de dithering aplicado ao retrato. Floyd–Steinberg

Sou o João Victor Piloni Vilhegas, ou só jotave. Formado em Ciência da Computação pela UTFPR, trabalho como desenvolvedor Full-Stack na Nobuntu Tecnologia, onde construo APIs e ferramentas com NestJS, TypeScript, Angular e Google Cloud.

Gosto de resolver problemas com código limpo e soluções bem pensadas. Isso vale para o caminho inteiro: modelar o banco, desenhar a API, montar a interface e deixar a infraestrutura de pé em produção, com alta disponibilidade quando o sistema pede.

Fora do expediente mantenho projetos próprios: um jogo que ajuda gatos a serem adotados, um GitHub App que automatiza o fluxo de issues até o release e um rastreador IoT de paletes. Cada um começou com a mesma pergunta: dá pra fazer isso melhor?

Ficha

Formação
Ciência da Computação · UTFPR
Atualmente
Full-Stack Developer · Nobuntu Tecnologia
Foco
APIs, ferramentas internas e infraestrutura em GCP
Stack diária
NestJS · TypeScript · Angular · PostgreSQL

#2 Projetos

Coisas que construí

Cinco projetos, do sistema sob encomenda em produção ao experimento com sensores. Screenshots passam pelo mesmo dithering do resto do site.

Tela de lotes do ERP de leilão, com dithering#2.1

#2.1

ERP de Leilão de Gado

Sistema de gestão de leilões de gado sob encomenda, rodando em produção com infraestrutura de alta disponibilidade.

  • Java Spring Boot
  • Angular
  • PostgreSQL
  • Redis
  • RabbitMQ
  • GCP
  • Docker
  • EvolutionAPI
Privado
  • Tela do jogo Meawdle, com dithering#2.2

    Meawdle

    #2.2

    Wordle com tema de gatos, conectado a uma ONG de adoção para dar visibilidade a gatos que ainda esperam por um lar.

    • NestJS
    • Prisma
    • PostgreSQL
    • Redis
    • Angular 18
    • Puppeteer
    • GitHub Actions
  • Hero da landing page do nutricionista, com dithering#2.3

    LP Nutricionista

    #2.3

    Landing page para nutricionista com um mini backend de auditoria que rastreia acessos e cliques de contato: quem clicou e por onde.

    • HTML
    • CSS
    • TypeScript
  • $ kanban-provisioner --watch[webhook]  issues.opened          #142[graphql]  createRef              feature/142[graphql]  createPullRequest      #143 → main[webhook]  pull_request.merged    #143[graphql]  createRelease          v1.8.0[ok]       issue → branch → pr → release
    #2.4

    Kanban Provisioner

    #2.4

    GitHub App que automatiza o fluxo Issue → Branch → PR → Release via webhooks e a API GraphQL do GitHub.

    • NestJS
    • Cloud Run
    • GitHub GraphQL API
    • Webhooks
    Privado
  • Dashboard do LogTrack, com dithering#2.5

    LogTrack

    #2.5

    Rastreamento automático de lotes e paletes via IoT: sensores e microcontroladores conversam diretamente com a API.

    • IoT
    • Microcontroladores
    • RFID UHF
    • Next.js

#3 Stack

Ferramentas

O que uso no dia a dia e o que já coloquei em produção.

  • #3.1 Linguagens

    • TypeScript
    • JavaScript
    • Python
    • SQL
  • #3.2 Back-end

    • NestJS
    • Node.js
    • Java (Spring Boot)
    • REST APIs
    • Microsserviços
    • RabbitMQ
    • Redis
  • #3.3 Front-end

    • Angular
    • RxJS
    • Next.js
    • HTML
    • CSS
  • #3.4 Bancos de dados

    • PostgreSQL
    • MongoDB
    • Prisma
    • TypeORM
  • #3.5 DevOps & Cloud

    • Docker
    • Git
    • GitHub Actions
    • GitHub Apps / API
    • Linux (PopOS User Btw)
    • GCP
    • AWS
  • #3.6 Outros

    • Puppeteer
    • EvolutionAPI (WhatsApp)
    • IoT / RFID UHF
    • Microcontroladores

#4 Contato

Vamos conversar

Sem formulário. Escolha o canal e me chame.

bash · ~
$ curl -s jotave.dev/contact{  "handle":   "jotave",  "email":    "jvpiloni@gmail.com",  "linkedin": "in/joaopiloni",  "github":   "JotaveX"}