Pablo Montenegro

Portfólio

Coisas que eu lancei, e os posts que provam

Quase tudo que eu crio começa com alguma coisa me irritando. Aí eu resolvo, coloco o código no GitHub e escrevo um post sobre isso, então quase tudo aqui vem com comprovante: um site no ar, um repositório ou um post neste blog. Os trabalhos do dia a dia também estão aqui, sem as coisas internas que eu não posso compartilhar.

anos fazendo coisas para a web, desde 2007
19
projetos nesta página
21
posts no blog, cada um em inglês e em português
104

Quase nunca uma coisa só por vez

Quase sempre tinha um emprego, um negócio e um projeto pessoal rodando ao mesmo tempo. Em alguns anos, também uma viagem para a E3.

Role para o lado para ver tudo.

Empregos

Site de restaurante: 2007
Estágio em C#/.NET: 2009 até 2010
Agência WordPress: 2010
Muxi: 2016 até 2018
Studocu: 2018 até hoje

Meu próprio negócio

FingerStore & NanoBoards: 2010 até 2020
Zenkai Zone: 2025 até hoje
Fingerboard Supply: 2025 até hoje
Freelas de web: 2010 até 2015

Projetos pessoais

Chatbots: 2016 até 2018
Resume Builder: 2018
Game dev: 2019 até 2021
JAMStack e automação: 2020 até 2023
Extensões Magento 2: 2024 até 2025
Musclog: 2024 até hoje

Escrita e imprensa de games

Este blog: 2008 até hoje
Vídeos no Nintendo Blast: 2009 até 2012
Imprensa na E3, Gamescom, SGF: 2012 até 2023

O que me irritou: Pagar mensalidade para registrar um agachamento.

Musclog

2024 até hoje

Um app de treino e nutrição offline-first. Sem servidor, sem conta, sem assinatura. É o meu principal produto open source, no Google Play e na web a partir do mesmo código.

  • React Native e Expo Router, com WatermelonDB em cima de SQLite no Android e LokiJS na web.
  • Bases de alimentos de verdade (USDA e Open Food Facts), leitor de código de barras e OCR de tabela nutricional.
  • Peso, gordura corporal e nutrição criptografados no aparelho, com uma chave que nunca sai dele.
  • Portado para um cartucho de Game Boy Color de verdade, em C com GBDK-2020: sem float, sem malloc, 517 alimentos empacotados em bancos de ROM.
  • Conta repetições de barra com um sensor Bluetooth de €20 e um random forest exportado para JavaScript puro, publicado como trabalho em andamento.
  • React Native
  • Expo
  • TypeScript
  • WatermelonDB
  • SQLite
  • C

O que me irritou: Adaptar o currículo para cada vaga.

Resume Builder

2018 até hoje

Monta um currículo a partir de uma planilha ou de um formulário gerado a partir do schema do JSON Resume. Um recrutador achou o repositório, perguntou se eu sabia React, e foi assim que eu vim parar na Holanda.

  • O formulário é gerado recursivamente a partir do JSON Schema, então mudar o schema não exige mudar o código.
  • Os links de download são data URIs em base64, então exportar não precisa de servidor.
  • Ainda é a ferramenta que eu uso para o meu próprio currículo, anos depois.
  • React
  • Gatsby
  • Formik
  • JSON Schema
  • Material UI

O que me irritou: Não saber nada sobre fazer jogos.

Super Ollie vs Pebble Corp

2020 até 2021

Um jogo de plataforma de skate em Phaser 3 onde o vilão é uma empresa tentando proibir o skate. Não está terminado, mas cada passo está documentado em 23 devlogs públicos.

  • As regras do jogo ficam nas propriedades dos tiles e objetos do Tiled, e colisores, gatilhos e caminhos da IA são gerados a partir delas em tempo de execução.
  • Reescrevi a IA dos inimigos, trocando checagens de tile a cada frame por colisores calculados uma vez só, porque a primeira versão não escalava.
  • Criei minhas próprias ferramentas de build: geração de sprite atlas, extrusão de tileset e um transform de Webpack que embute os tilesets do Tiled.
  • Escadas, barras para se pendurar, plataformas móveis, checkpoints, clima, traduções e uma versão para celular com controles na tela.
  • Phaser 3
  • JavaScript
  • Tiled
  • Webpack
  • Cordova

O que me irritou: Achar um lugar para alugar em Amsterdam.

Home Finder

2022 até 2023

Alertas gratuitos de aluguel para sete sites imobiliários holandeses, criado porque pagar por alertas no meio de uma crise de moradia me deixou puto.

  • O GitHub Actions faz o scraping a cada hora, um Google Form faz o cadastro e uma planilha do Google é o banco de dados.
  • A infraestrutura custa €0, de propósito: o plano gratuito era a arquitetura.
  • Começou como funda-scraper, o meu script de Puppeteer e Telegram da época em que eu procurava casa.
  • Node.js
  • Puppeteer
  • GitHub Actions
  • Google Sheets
  • Gatsby

Todo o resto

Onde eu trabalhei

  1. Zenkai Zone

    janeiro de 2025 até hoje

    Fundador, e todo o resto · Holanda

    Minha loja de colecionáveis e jogos retrô, aberta em janeiro de 2025. Mesma coisa da primeira vez: uma pessoa só, então código, produtos, fotos e embalagem são tudo comigo.

    • Roda em Magento 2, com extensões minhas por cima, como a página de lojinha de RPG retrô.
    • Escrevi sobre como funciona a precificação no mundo dos colecionáveis, do lado de quem vende.
  2. Fingerboard Supply

    janeiro de 2025 até hoje

    Fundador, e todo o resto · Holanda

    Uma loja de fingerboard, aberta em janeiro de 2025. É a ideia da FingerStore de novo, só que agora da Europa e com quinze anos a mais sabendo o que estou fazendo.

  3. Studocu

    maio de 2018 até hoje

    Desenvolvedor full-stack · Amsterdam, Holanda

    Uma plataforma de estudos usada por estudantes do mundo todo. Eu entrei como o 5º desenvolvedor e fiquei enquanto o time de engenharia crescia muito.

    • Minha primeira tarefa foi migrar o frontend de CoffeeScript para JSX. Depois veio TypeScript e React 18, e eu era quem topava mexer na config do Webpack.
    • Migrei páginas do monolito em Laravel para Next.js uma por uma, com releases graduais por cookie e um caminho de volta para o Laravel se algo quebrasse.
    • Fiz o Laravel e o Next.js lerem e escreverem os mesmos cookies de sessão criptografados, reimplementando o formato AES-256-CBC e HMAC do Laravel com a Web Crypto API.
    • No plantão de engenharia desde 2022, e migrei o monitoramento de erros do Bugsnag para o Sentry nos dois apps, atrás de uma feature flag.
    • Fui dono de testes A/B de ponta a ponta: implementar, ler os resultados, decidir e apagar a variante perdedora.
    • Liderei a guilda de frontend a partir de 2021 e fiz entrevistas técnicas que ajudaram a contratar umas 10 pessoas.
    • React
    • Next.js
    • TypeScript
    • Laravel
    • PHP
    • Kubernetes
    • Sentry
  4. Muxi

    2016 até abril de 2018

    Desenvolvedor de software · Brasil

    Software para maquininhas de cartão, numa linguagem parecida com JavaScript rodando num runtime nativo em C. A maior parte para a Cielo, o maior cliente da empresa.

    • Entreguei duas homologações da Cielo, sentado com o time de QA deles em São Paulo, e lancei com rollout gradual para uma frota de até 8 milhões de maquininhas.
    • Tech lead no redesign Look and Feel da Cielo, responsável pela UI inteira.
    • Criei o ISO-8583-Breaker, que virou a ferramenta oficial de debug da empresa, e uma ferramenta que gera as fontes bitmap das maquininhas a partir de um arquivo de fonte.
    • Levei pagamentos em Bitcoin nas maquininhas de uma prova de conceito mostrada em Las Vegas até virar produto, e virei o product owner dele.
    • JavaScript
    • C
    • ISO 8583
    • React Native
  5. FingerStore & NanoBoards

    outubro de 2010 até 2020

    Fundador, e todo o resto · Brasil

    Os fingerboarders brasileiros não tinham loja nenhuma, então eu criei uma. Durou uma década e eu fiz tudo sozinho: código, importação, fotos, embalagem, atendimento e a comunidade.

    • Lancei o primeiro e-commerce de fingerboard do Brasil em Magento 1.4, uns três meses entre a ideia e a loja no ar.
    • Criei a NanoBoards em 2012, minha própria marca, com gráficos licenciados de grandes marcas de skate brasileiras, e exportei para os EUA e a Europa.
    • Tema e módulos próprios de Magento, multi-loja, um configurador de monte-seu-setup e um upgrade de versão por ano durante cinco anos.
    • Aceitei Bitcoin a partir de 2014, muito antes disso ser normal para uma loja pequena.
    • Magento
    • PHP
    • PagSeguro
    • Mercado Pago
  6. Freelancer

    2010 até 2015

    Desenvolvedor web · Brasil

    Sites de outras pessoas, ao mesmo tempo que a minha loja. Principalmente WordPress.

    • Temas e plugins de WordPress sob medida, incluindo trabalhos com WooCommerce.
    • Integrações com a API da Shopify para clientes.
    • WordPress
    • WooCommerce
    • PHP
    • Shopify API
  7. Primeiros empregos

    2007 até 2010

    Estagiário, depois desenvolvedor web · Brasil

    Duas semanas limpando dados de um restaurante no Dreamweaver em 2007, depois meu primeiro emprego de programação de verdade, em C# e .NET, e depois uns meses de sites de hotel numa agência de WordPress.

    • Fiz um site de imobiliária com uma área administrativa para cadastrar imóveis.
    • Fiz um diretório de taxistas da cidade com uma página de perfil para cada um, feito para aparecer no Google. Apareceu.
    • C#
    • .NET
    • WordPress
    • PHP

Prêmios, artigos e crachás de imprensa

  • 2024

    Compartilhando cookies criptografados do Laravel com Next.js

    Artigo no blog Studocu Tech sobre fazer os dois apps compartilharem a mesma sessão.

  • 2022

    Hackathon da Studocu, 1º lugar

    Um chatbot com GPT-3 dentro do visualizador de documentos, que respondia perguntas sobre o documento que você estava lendo, antes do ChatGPT existir.

  • 2021

    Hackathon da Studocu, 3º lugar

    Terceiro lugar no hackathon da empresa, que eu participei quase todo ano.

  • 2016

    Vencedor da VanHackathon

    Ganhei com o time WeRules e o Shop Botifier, uma fábrica de bots de Telegram para lojas Shopify.

  • 2012

    Imprensa de games, como "Pablo Pirata"

    Cobri a E3 em Los Angeles para sites brasileiros e planejei a viagem do time, depois Gamescom e Summer Game Fest 2023. Sem receber, além do trabalho fixo.

Tem alguma coisa irritante que precisa ser resolvida?

Me conta. O formulário de contato vai direto para o meu e-mail, e o código da maior parte do que está aí em cima está no GitHub.