[{"data":1,"prerenderedAt":986},["ShallowReactive",2],{"lastUpdated":3,"projects-pt-list":4,"projects-en-list":535},"2026-09-08",[5,237,347],{"id":6,"title":7,"body":8,"date":219,"description":220,"extension":221,"featured":222,"github":223,"live":224,"meta":225,"navigation":222,"path":227,"seo":228,"stack":229,"stem":235,"__hash__":236},"projects/projects/meu-bolao-do-zap.md","Meu Bolão do Zap",{"type":9,"value":10,"toc":207},"minimark",[11,16,20,25,33,36,42,46,64,79,82,86,101,112,116,119,124,152,156,182,186,189,195,198],[12,13,15],"h1",{"id":14},"é-brasileiro-já-fez-o-seu-bolão","É Brasileiro? Já fez o seu bolão? 🇧🇷⚽",[17,18,19],"p",{},"Em tempos de Copa do Mundo, o que todo brasileiro pensa? No hexa? No churrasco? No bolão? No meu caso, eu pensei nos três — e decidi que o último merecia uma solução melhor do que uma planilha de Excel bagunçada ou um app cheio de anúncios.",[21,22,24],"h2",{"id":23},"o-insight-de-dev","O \"Insight\" de Dev",[17,26,27,28,32],{},"Apesar de não ser aquele fã de futebol que acompanha todos os campeonatos estaduais, eu sou apaixonado pela ",[29,30,31],"strong",{},"Copa do Mundo",". É aquele momento mágico onde o mundo para, os favoritos tremem e times \"pequenos\" fazem história. É pura emoção.",[17,34,35],{},"Quando um grupo grande de amigos começou a se organizar para o último mundial, definimos as regras de pontos, os valores da caixinha e fomos pesquisar apps. Foi aí que minha mente de desenvolvedor deu o estalo:",[37,38,39],"blockquote",{},[17,40,41],{},"\"Um app de bolão? Por que não fazer o nosso?\"",[21,43,45],{"id":44},"senhores-deixa-que-eu-faço-o-app","Senhores, deixa que eu faço o app!",[47,48,53,54],"div",{"className":49},[50,51,52],"my-8","flex","justify-center","\n  ",[55,56],"img",{"src":57,"alt":58,"className":59},"/projects/meu-bolao-do-zap/home-login.png","Meu Bolão do Zap - Interface",[60,61,62,63],"rounded-xl","shadow-2xl","max-w-2xl","w-full",[17,65,66,67,74,75,78],{},"Assim nasceu o ",[68,69,73],"a",{"href":70,"rel":71},"https://meubolaodozap.com/",[72],"nofollow","meubolaodozap.com",". O objetivo era simples: ",[29,76,77],{},"barreira zero",". Nada de baixar apps pesados na App Store. O usuário recebe um link no WhatsApp, abre no navegador e já está participando.",[17,80,81],{},"Foi uma jornada incrível ver meus amigos usando, cornetando os palpites uns dos outros e me pedindo novas features a cada rodada. O app se tornou o centro das nossas interações durante os jogos.",[21,83,85],{"id":84},"o-core-técnico","O Core Técnico",[17,87,88,89,92,93,96,97,100],{},"O mais impressionante? ",[29,90,91],{},"Tudo isso foi implementado em apenas uma semana."," Graças aos anos de experiência e à co-participação poderosa do ",[29,94,95],{},"Gemini"," e do ",[29,98,99],{},"Claude Code",", consegui focar totalmente na experiência do usuário e nas regras de negócio, enquanto as IAs auxiliavam na agilidade da codificação e na resolução de problemas complexos.",[17,102,103,104,107,108,111],{},"E para fechar com chave de ouro, o app não está rodando em uma nuvem qualquer. Ele foi ",[29,105,106],{},"implantado dentro do meu próprio cluster pessoal em casa",", com direito a tudo que um app profissional exige: um pipeline de ",[29,109,110],{},"CI/CD"," automatizado, monitoramento e alta disponibilidade. É a engenharia de software levada a sério, do código à infraestrutura.",[113,114],"slide-show",{":slides":115},"[{\"url\":\"/projects/meu-bolao-do-zap/home.jpeg\",\"title\":\"Interface Mobile-First do Meu Bolão do Zap\"},{\"url\":\"/projects/meu-bolao-do-zap/grupo-favorito.jpeg\",\"title\":\"Ranking em Tempo Real e Favoritos\"},{\"url\":\"/projects/meu-bolao-do-zap/meus-palpites.jpeg\",\"title\":\"Gestão de Palpites\"},{\"url\":\"/projects/meu-bolao-do-zap/detalhe-jogo.jpeg\",\"title\":\"Detalhes e Estatísticas da Partida\"},{\"url\":\"/projects/meu-bolao-do-zap/palpite.jpeg\",\"title\":\"Simplicidade ao Palpitar\"},{\"url\":\"/projects/meu-bolao-do-zap/profile.jpeg\",\"title\":\"Perfil Personalizado\"},{\"url\":\"/projects/meu-bolao-do-zap/novo-grupo.jpeg\",\"title\":\"Criação de Novos Grupos\"},{\"url\":\"/projects/meu-bolao-do-zap/entrar-grupo.jpeg\",\"title\":\"Acesso Facilitado via Convite\"}]",[17,117,118],{},"A escolha de uma stack robusta também foi fundamental para essa velocidade.",[120,121,123],"h3",{"id":122},"tecnologias-utilizadas","Tecnologias Utilizadas:",[125,126,127,134,140,146],"ul",{},[128,129,130,133],"li",{},[29,131,132],{},"Nuxt 4:"," Utilizado para criar uma PWA (Progressive Web App) extremamente rápida e responsiva. A estrutura de camadas (Layers) do Nuxt permitiu uma separação limpa de lógica e uma experiência de usuário fluida.",[128,135,136,139],{},[29,137,138],{},"Supabase:"," O \"Firebase open-source\" que serviu como nossa espinha dorsal para o banco de dados PostgreSQL e autenticação, permitindo escalar rápido com segurança.",[128,141,142,145],{},[29,143,144],{},"Cloudflare:"," Responsável por toda a gestão de domínio, DNS e camadas de segurança/performance, garantindo que o app esteja sempre disponível e protegido.",[128,147,148,151],{},[29,149,150],{},"Tailwind CSS:"," Garantiu um design limpo, moderno e focado totalmente em dispositivos móveis.",[120,153,155],{"id":154},"features-de-destaque","Features de Destaque:",[125,157,158,164,170,176],{},[128,159,160,163],{},[29,161,162],{},"Integração Nativa com WhatsApp:"," Convites e compartilhamento de ranking feitos via links diretos, facilitando a viralização nos grupos.",[128,165,166,169],{},[29,167,168],{},"Ranking em Tempo Real:"," Sincronização de resultados (via integração de API de esportes) com atualização imediata da tabela de classificação.",[128,171,172,175],{},[29,173,174],{},"Palpites Protegidos:"," Para manter a competitividade, os palpites dos adversários ficam ocultos até o início da partida, evitando \"copionas\".",[128,177,178,181],{},[29,179,180],{},"Regras Customizáveis:"," Cada grupo de amigos pode definir seus próprios pesos para placar exato, vencedor, ou gols marcados.",[21,183,185],{"id":184},"o-resultado","O Resultado",[17,187,188],{},"Hoje o app funciona plenamente, e embora ainda existam ajustes finos (como a parte de estatísticas ao vivo que estou polindo), a satisfação de ver um produto \"feito em casa\" ser usado e aprovado por quem a gente conhece não tem preço.",[17,190,191,192,194],{},"O ",[29,193,7],{}," não é apenas sobre futebol; é sobre como a tecnologia pode potencializar a diversão e a conexão entre as pessoas.",[196,197],"hr",{},[17,199,200,203,204],{},[29,201,202],{},"Quer ver o projeto ao vivo?","\nAcesse: ",[68,205,73],{"href":70,"rel":206},[72],{"title":208,"searchDepth":209,"depth":209,"links":210},"",2,[211,212,213,218],{"id":23,"depth":209,"text":24},{"id":44,"depth":209,"text":45},{"id":84,"depth":209,"text":85,"children":214},[215,217],{"id":122,"depth":216,"text":123},3,{"id":154,"depth":216,"text":155},{"id":184,"depth":209,"text":185},"2026-06-15","O bolão de futebol que mora no seu WhatsApp. Uma PWA focada em UX social e simplicidade.","md",true,null,"https://meubolaodozap.com",{"image":226},"/projects/meu-bolao-do-zap/home.jpeg","/projects/meu-bolao-do-zap",{"title":7,"description":220},[230,231,232,233,234],"Nuxt 4","Supabase","Cloudflare","Tailwind CSS","PWA","projects/meu-bolao-do-zap","WEaIkrvbjrrDQ3E6OtXCsnTH79WDJPI23JU_rMVXb1Q",{"id":238,"title":239,"body":240,"date":334,"description":335,"extension":221,"featured":336,"github":337,"live":223,"meta":338,"navigation":222,"path":339,"seo":340,"stack":341,"stem":345,"__hash__":346},"projects/projects/gomonitor-cli.md","GoMonitor: CLI de Hardware",{"type":9,"value":241,"toc":329},[242,245,251,255,279,283,286,290,322,325],[12,243,239],{"id":244},"gomonitor-cli-de-hardware",[17,246,191,247,250],{},[29,248,249],{},"GoMonitor"," nasceu da necessidade de um utilitário de monitoramento que fosse extremamente leve e pudesse ser executado via SSH sem consumir recursos significativos da máquina.",[21,252,254],{"id":253},"características-principais","Características principais",[125,256,257,263,273],{},[128,258,259,262],{},[29,260,261],{},"Performance Bruta:"," Escrito em Go, o binário final é pequeno, rápido e não possui dependências externas.",[128,264,265,268,269,272],{},[29,266,267],{},"UI Terminal:"," Utiliza a biblioteca ",[29,270,271],{},"Bubble Tea"," (The Elm Architecture for Go) para criar uma interface rica e reativa dentro do terminal.",[128,274,275,278],{},[29,276,277],{},"Leituras de Baixo Nível:"," Coleta dados de CPU, Memória, Temperatura e GPU diretamente dos sistemas de arquivos do kernel Linux.",[21,280,282],{"id":281},"por-que-go","Por que Go?",[17,284,285],{},"A escolha da linguagem foi motivada pela facilidade de compilação estática e o gerenciamento eficiente de concorrência (Goroutines) para as atualizações de tela em tempo real sem \"flicker\".",[21,287,289],{"id":288},"exemplo-de-uso","Exemplo de Uso",[291,292,296],"pre",{"className":293,"code":294,"language":295,"meta":208,"style":208},"language-bash shiki shiki-themes github-light github-dark","# Executando o monitor\ngomonitor --interval 500ms\n","bash",[297,298,299,308],"code",{"__ignoreMap":208},[300,301,304],"span",{"class":302,"line":303},"line",1,[300,305,307],{"class":306},"sJ8bj","# Executando o monitor\n",[300,309,310,314,318],{"class":302,"line":209},[300,311,313],{"class":312},"sScJk","gomonitor",[300,315,317],{"class":316},"sj4cs"," --interval",[300,319,321],{"class":320},"sZZnC"," 500ms\n",[17,323,324],{},"Este projeto demonstra minha paixão por ferramentas de baixo nível e a capacidade de entregar utilitários robustos com o mínimo de overhead possível.",[326,327,328],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":208,"searchDepth":209,"depth":209,"links":330},[331,332,333],{"id":253,"depth":209,"text":254},{"id":281,"depth":209,"text":282},{"id":288,"depth":209,"text":289},"2026-02-21","Utilitário minimalista e de alta performance escrito em Go para monitoramento de recursos de hardware em tempo real.",false,"https://github.com/rafadpedrosa",{"isOnReview":222},"/projects/gomonitor-cli",{"title":239,"description":335},[342,271,343,344],"Go","Hardware API","CLI","projects/gomonitor-cli","aou6-m6ZxOvm_BLEd1TrHMDnUj-XEnuhqkueTPfundk",{"id":348,"title":349,"body":350,"date":334,"description":524,"extension":221,"featured":222,"github":223,"live":525,"meta":526,"navigation":222,"path":527,"seo":528,"stack":529,"stem":533,"__hash__":534},"projects/projects/reserva-tamandare.md","Loteamento Reserva Tamandaré",{"type":9,"value":351,"toc":518},[352,357,363,371,377,381,396,399,453,457,507,511],[21,353,355],{"id":354},"loteamento-reserva-tamandaré",[29,356,349],{},[17,358,359],{},[360,361,362],"em",{},"Pitch: A empresa precisava digitalizar um processo de venda imobiliária tradicionalmente burocrático e manual. Bem como expandir o negócio para todo o Brasil. A solução precisava ser robusta e escalável para futuros lotes",[47,364,53,366],{"className":365},[50,51,52],[55,367],{"src":368,"alt":369,"className":370},"/projects/reserva-tamandare/home-sire.png","Loteamento Reserva Tamandaré - Dashboard",[60,61,62,63],[17,372,373,376],{},[29,374,375],{},"Robusta e escalável?"," Porque? Esse não é o primeiro negócio (loteamento) que esse cliente possui, ou seja, é importante que esse sistema seja multi-tenant mantendo o compromisso de ter vários loteamentos. O cliente tinha um processo de vendas completamente manual, onde os corretores preenchiam planilhas, geravam contratos em word e depois enviavam para assinatura manual via clicksign. Isso resultava em pequenos erros, perda de tempo e uma experiência ruim para os compradores que, em posse de dinheiro, queriam efetuar o pagamento para garantir determinado lote. Além disso, a administração tinha pouca visibilidade sobre o status das vendas e do fluxo de caixa de maneira organizada.",[21,378,380],{"id":379},"a-solução","A Solução",[17,382,383,384,387,388,391,392,395],{},"Foi desenvolvida uma plataforma \"full-stack\" que automatiza todo o ciclo de vida da venda. A arquitetura foi construída com ",[29,385,386],{},"Nuxt 3"," para o frontend, proporcionando uma experiência moderna e responsiva ao usuário, e ",[29,389,390],{},"Fastify"," no backend como uma API para garantir alta performance e escalabilidade caso necessário. O banco de dados escolhido foi o ",[29,393,394],{},"PostgreSQL",", devido à sua robustez e suporte a operações complexas.",[17,397,398],{},"Foi entregue:",[125,400,401,407,413,423,429,435,441,447],{},[128,402,403,406],{},[29,404,405],{},"Dashboard de Vendas:"," Visualização em tempo real da disponibilidade dos lotes via mapa interativo.",[128,408,409,412],{},[29,410,411],{},"Motor de Contratos:"," Geração dinâmica de PDFs baseada nos dados do comprador e do lote.",[128,414,415,418,419,422],{},[29,416,417],{},"Conexão com o PAGAR.ME (API):"," Integração profunda com a API da ",[29,420,421],{},"PAGAR.me"," para processamento de pagamentos.",[128,424,425,428],{},[29,426,427],{},"Click Sign (API):"," Integração para assinatura digital de contratos, eliminando a necessidade de processos manuais e garantindo a segurança jurídica.",[128,430,431,434],{},[29,432,433],{},"Gestão de lotes"," com controle de concorrência para evitar vendas duplas do mesmo lote.",[128,436,437,440],{},[29,438,439],{},"Relatórios Financeiros:"," Ferramentas analíticas para acompanhamento do fluxo de caixa e performance de vendas.",[128,442,443,446],{},[29,444,445],{},"Site institucional"," parte públic onde o cliente final efetua o pagamento",[128,448,449,452],{},[29,450,451],{},"GCP + Cloudflare"," Configuração e deployment da aplicação",[21,454,456],{"id":455},"desafios-técnicos","Desafios Técnicos",[125,458,459,465,471,477,483,489,495,501],{},[128,460,461,464],{},[29,462,463],{},"Sincronismo de Dados:"," Garantir que duas vendas não ocorram simultaneamente para o mesmo lote (controle de concorrência - Atomicidade Transacional).",[128,466,467,470],{},[29,468,469],{},"Segurança(auth):"," Implementação de camadas de segurança para proteger dados sensíveis e garantir a integridade das transações.",[128,472,473,476],{},[29,474,475],{},"Integração de APIs:"," Lidar com as nuances e limitações das APIs de terceiros (PAGAR.me e Clicksign) para garantir uma experiência de usuário sem falhas.",[128,478,479,482],{},[29,480,481],{},"RBAC (Controle de Acesso Baseado em Funções):"," Implementação de permissões granulares para diferentes tipos de usuários.",[128,484,485,488],{},[29,486,487],{},"Gerenciamento de Estado:"," Manter o estado da aplicação consistente entre o frontend e backend, especialmente durante o processo de compra e assinatura de contratos.",[128,490,491,494],{},[29,492,493],{},"Automação:"," Implementação de processos automatizados para reduzir erros humanos e aumentar a eficiência operacional (sync + webhooks).",[128,496,497,500],{},[29,498,499],{},"Escalabilidade:"," Arquitetura preparada para suportar múltiplos loteamentos e um grande volume de usuários sem degradação de performance. Com o uso de Fastify e PostgreSQL, conseguimos otimizar as consultas e garantir uma resposta rápida mesmo sob carga. (obs: multi-tenant + GCP).",[128,502,503,506],{},[29,504,505],{},"Performance:"," Otimização de queries pesadas de relatórios financeiros usando cache do Fastify.",[21,508,510],{"id":509},"resultados","Resultados",[17,512,513,514,517],{},"Vendas pelo site começaram, foi identificado vendas fora do estado de Pernambuco. Foi possivel ter visão clara sobre as vendas bem como a sincronização dos dados funcionando. O cliente ficou satisfeito com a solução, que não apenas atendeu às suas necessidades imediatas, mas também proporcionou uma base sólida para futuras expansões do negócio. Este projeto solidificou o uso do ",[29,515,516],{},"Nuxt 3 e Fastify"," como uma stack robusta para aplicações críticas dos meus próximos negócios.",{"title":208,"searchDepth":209,"depth":209,"links":519},[520,521,522,523],{"id":354,"depth":209,"text":349},{"id":379,"depth":209,"text":380},{"id":455,"depth":209,"text":456},{"id":509,"depth":209,"text":510},"Plataforma imobiliária (loteamento) completa com gestão de lotes e integração com Clicksign + Pagar.me","https://loteamentoreservatamandare.com",{},"/projects/reserva-tamandare",{"title":349,"description":524},[530,390,531,532],"Nuxt","Clicksign","Pagar.me","projects/reserva-tamandare","sp1E3HBpv52q2CfiEQwvtiaPu2e1uCVIQAhqyBFDYj4",[536,718,811],{"id":537,"title":7,"body":538,"date":219,"description":711,"extension":221,"featured":222,"github":223,"live":224,"meta":712,"navigation":222,"path":713,"seo":714,"stack":715,"stem":716,"__hash__":717},"projects_en/en/projects/meu-bolao-do-zap.md",{"type":9,"value":539,"toc":702},[540,544,547,551,558,561,566,570,576,587,590,594,607,617,620,623,627,649,653,679,683,686,691,693],[12,541,543],{"id":542},"are-you-ready-for-the-world-cup","Are You Ready for the World Cup? 🇧🇷⚽",[17,545,546],{},"During World Cup season, what does everyone think about? The championship trophy? The weekend barbecue? The friend sweepstakes (\"bolão\")? In my case, I thought about all three — and decided the sweepstakes deserved a better solution than a chaotic Excel spreadsheet or an ad-bloated app store app.",[21,548,550],{"id":549},"the-developer-insight","The Developer Insight",[17,552,553,554,557],{},"While I may not follow every local league match year-round, I am passionate about the ",[29,555,556],{},"World Cup",". It's that magical moment when the world stops, favorites struggle, and underdogs make history. Pure emotion.",[17,559,560],{},"When a large group of friends started organizing our pool for the tournament, agreeing on points and prize funds, we searched for apps. That's when my developer brain clicked:",[37,562,563],{},[17,564,565],{},"\"A sweepstakes app? Why not build our own?\"",[21,567,569],{"id":568},"hold-my-coffee-ill-build-the-app","Hold My Coffee, I'll Build the App!",[47,571,53,573],{"className":572},[50,51,52],[55,574],{"src":57,"alt":58,"className":575},[60,61,62,63],[17,577,578,579,582,583,586],{},"That's how ",[68,580,73],{"href":70,"rel":581},[72]," was born. The goal was simple: ",[29,584,585],{},"zero friction",". No downloading bulky native app store packages. Users open a direct link sent over WhatsApp right in their mobile browser, and they're instantly participating.",[17,588,589],{},"It was an incredible experience watching friends banter over predictions, track rankings, and suggest new features after every match day. The app quickly became the central hub of our group interactions during games.",[21,591,593],{"id":592},"the-technical-core","The Technical Core",[17,595,596,597,600,601,603,604,606],{},"The most impressive part? ",[29,598,599],{},"The entire application was built in just one week."," Combining years of software engineering experience with AI pair-programming using ",[29,602,95],{}," and ",[29,605,99],{},", I stayed focused on user experience and business rules while AI assisted with rapid coding and complex problem-solving.",[17,608,609,610,613,614,616],{},"To top it off, the application isn't running on a generic cloud platform. It's ",[29,611,612],{},"deployed inside my personal home server cluster",", backed by full enterprise-grade practices: an automated ",[29,615,110],{}," pipeline, health monitoring, and high availability. True software engineering, from code to infrastructure.",[113,618],{":slides":619},"[{\"url\":\"/projects/meu-bolao-do-zap/home.jpeg\",\"title\":\"Mobile-First Interface of Meu Bolão do Zap\"},{\"url\":\"/projects/meu-bolao-do-zap/grupo-favorito.jpeg\",\"title\":\"Real-Time Leaderboard and Favorites\"},{\"url\":\"/projects/meu-bolao-do-zap/meus-palpites.jpeg\",\"title\":\"Match Predictions Management\"},{\"url\":\"/projects/meu-bolao-do-zap/detalhe-jogo.jpeg\",\"title\":\"Match Details and Statistics\"},{\"url\":\"/projects/meu-bolao-do-zap/palpite.jpeg\",\"title\":\"Streamlined Prediction Entry\"},{\"url\":\"/projects/meu-bolao-do-zap/profile.jpeg\",\"title\":\"Customized User Profile\"},{\"url\":\"/projects/meu-bolao-do-zap/novo-grupo.jpeg\",\"title\":\"Creating New Groups\"},{\"url\":\"/projects/meu-bolao-do-zap/entrar-grupo.jpeg\",\"title\":\"Seamless Access via Invite Link\"}]",[17,621,622],{},"Choosing a robust tech stack was key to maintaining rapid development speed.",[120,624,626],{"id":625},"technologies-used","Technologies Used:",[125,628,629,634,639,644],{},[128,630,631,633],{},[29,632,132],{}," Used to build a fast, responsive Progressive Web App (PWA). Nuxt Layers provided clean code separation and seamless client transitions.",[128,635,636,638],{},[29,637,138],{}," The open-source Firebase alternative served as our backend foundation for PostgreSQL and authentication, scaling securely.",[128,640,641,643],{},[29,642,144],{}," Managed domain routing, DNS, security layers, and edge caching for zero downtime.",[128,645,646,648],{},[29,647,150],{}," Delivered a crisp, modern, mobile-first design interface.",[120,650,652],{"id":651},"standout-features","Standout Features:",[125,654,655,661,667,673],{},[128,656,657,660],{},[29,658,659],{},"Native WhatsApp Integration:"," Direct link invites and instant leaderboard sharing made viral group onboarding seamless.",[128,662,663,666],{},[29,664,665],{},"Real-Time Leaderboard:"," Match outcome syncing (via sports API integration) with instant standings updates.",[128,668,669,672],{},[29,670,671],{},"Hidden Predictions:"," Opponents' picks remain hidden until kickoff, maintaining competitive tension.",[128,674,675,678],{},[29,676,677],{},"Customizable Rules:"," Groups can configure custom weights for exact scores, match winners, or goal counts.",[21,680,682],{"id":681},"the-result","The Result",[17,684,685],{},"Today the platform is fully operational. Seeing a self-hosted product actively used and praised by friends and peers is immensely satisfying.",[17,687,688,690],{},[29,689,7],{}," isn't just about football — it's about how technology amplifies fun, community, and social connection.",[196,692],{},[17,694,695,698,699],{},[29,696,697],{},"Want to see the project live?","\nVisit: ",[68,700,73],{"href":70,"rel":701},[72],{"title":208,"searchDepth":209,"depth":209,"links":703},[704,705,706,710],{"id":549,"depth":209,"text":550},{"id":568,"depth":209,"text":569},{"id":592,"depth":209,"text":593,"children":707},[708,709],{"id":625,"depth":216,"text":626},{"id":651,"depth":216,"text":652},{"id":681,"depth":209,"text":682},"The World Cup football sweepstakes inside your WhatsApp. A social PWA focused on UX and simplicity.",{"image":226},"/en/projects/meu-bolao-do-zap",{"title":7,"description":711},[230,231,232,233,234],"en/projects/meu-bolao-do-zap","R28hBw7Zz9KrRquj0-ZdDhZY6ezdLWh1xnSrrapbCuk",{"id":719,"title":720,"body":721,"date":334,"description":804,"extension":221,"featured":336,"github":337,"live":223,"meta":805,"navigation":222,"path":806,"seo":807,"stack":808,"stem":809,"__hash__":810},"projects_en/en/projects/gomonitor-cli.md","GoMonitor: Hardware CLI Utility",{"type":9,"value":722,"toc":799},[723,726,731,735,765,769,772,776,794,797],[12,724,720],{"id":725},"gomonitor-hardware-cli-utility",[17,727,728,730],{},[29,729,249],{}," was born out of the need for an ultra-lightweight hardware monitoring tool that could run seamlessly over SSH without consuming system resources.",[21,732,734],{"id":733},"key-features","Key Features",[125,736,737,743,752],{},[128,738,739,742],{},[29,740,741],{},"Raw Performance:"," Built with Go, producing a small, fast binary with zero runtime external dependencies.",[128,744,745,748,749,751],{},[29,746,747],{},"Rich Terminal UI:"," Powered by ",[29,750,271],{}," (The Elm Architecture for Go) to deliver a responsive terminal interface.",[128,753,754,757,758,603,761,764],{},[29,755,756],{},"Low-Level Metrics:"," Reads CPU, Memory, Temperature, and GPU stats directly from Linux kernel interfaces (",[297,759,760],{},"/proc",[297,762,763],{},"/sys",").",[21,766,768],{"id":767},"why-go","Why Go?",[17,770,771],{},"Go was chosen for its clean static compilation model and lightweight concurrency support (Goroutines), enabling flicker-free real-time terminal UI updates.",[21,773,775],{"id":774},"usage-example","Usage Example",[291,777,779],{"className":293,"code":778,"language":295,"meta":208,"style":208},"# Launching the monitor\ngomonitor --interval 500ms\n",[297,780,781,786],{"__ignoreMap":208},[300,782,783],{"class":302,"line":303},[300,784,785],{"class":306},"# Launching the monitor\n",[300,787,788,790,792],{"class":302,"line":209},[300,789,313],{"class":312},[300,791,317],{"class":316},[300,793,321],{"class":320},[17,795,796],{},"This project highlights my passion for systems tooling and low-overhead software engineering.",[326,798,328],{},{"title":208,"searchDepth":209,"depth":209,"links":800},[801,802,803],{"id":733,"depth":209,"text":734},{"id":767,"depth":209,"text":768},{"id":774,"depth":209,"text":775},"A lightweight, high-performance CLI tool written in Go for real-time hardware resource monitoring.",{"isOnReview":222},"/en/projects/gomonitor-cli",{"title":720,"description":804},[342,271,343,344],"en/projects/gomonitor-cli","VsaFYZPXCa5EelGI2-a2bTyXJMOA_NDkSa_nHL2vlIo",{"id":812,"title":813,"body":814,"date":334,"description":979,"extension":221,"featured":222,"github":223,"live":525,"meta":980,"navigation":222,"path":981,"seo":982,"stack":983,"stem":984,"__hash__":985},"projects_en/en/projects/reserva-tamandare.md","Reserva Tamandaré Real Estate Platform",{"type":9,"value":815,"toc":973},[816,821,826,833,839,843,855,858,908,912,962,966],[21,817,819],{"id":818},"reserva-tamandaré-real-estate-platform",[29,820,813],{},[17,822,823],{},[360,824,825],{},"Pitch: The business needed to digitize a traditionally bureaucratic and manual real estate sales process, while expanding operations across Brazil. The solution required a robust, scalable multi-tenant architecture for present and future land developments.",[47,827,53,829],{"className":828},[50,51,52],[55,830],{"src":368,"alt":831,"className":832},"Reserva Tamandaré Real Estate - Dashboard",[60,61,62,63],[17,834,835,838],{},[29,836,837],{},"Why robust and scalable?"," Because this wasn't the client's single development project — the system needed a multi-tenant foundation capable of handling multiple real estate developments seamlessly. Previously, sales brokers relied on manual spreadsheets, generated Word documents manually, and emailed contracts back and forth for signatures. This caused data entry errors, delays, and friction for eager buyers looking to secure prime lots immediately. Additionally, management lacked real-time visibility into sales pipelines and cash flows.",[21,840,842],{"id":841},"the-solution","The Solution",[17,844,845,846,848,849,851,852,854],{},"A full-stack platform was engineered to automate the entire sales lifecycle. The frontend was built with ",[29,847,386],{},", delivering a modern, responsive user experience. The backend API was powered by ",[29,850,390],{}," to handle high throughput and fast response times, paired with ",[29,853,394],{}," for transactional reliability.",[17,856,857],{},"Key Deliverables:",[125,859,860,866,872,878,884,890,896,902],{},[128,861,862,865],{},[29,863,864],{},"Sales Dashboard:"," Real-time lot availability visualization through an interactive map interface.",[128,867,868,871],{},[29,869,870],{},"Contract Engine:"," Dynamic PDF generation populated with buyer and plot data.",[128,873,874,877],{},[29,875,876],{},"Pagar.me API Integration:"," Deep payment gateway integration for credit card and bank transfer processing.",[128,879,880,883],{},[29,881,882],{},"Clicksign API Integration:"," Digital signature workflow automation eliminating manual paperwork and ensuring legal validity.",[128,885,886,889],{},[29,887,888],{},"Concurrency Control:"," Transactional concurrency handling to prevent double-booking of lots.",[128,891,892,895],{},[29,893,894],{},"Financial Analytics:"," Reporting tools for monitoring sales velocity and cash flow.",[128,897,898,901],{},[29,899,900],{},"Public Portal:"," Public-facing website where end buyers complete reservation payments.",[128,903,904,907],{},[29,905,906],{},"GCP + Cloudflare:"," Infrastructure provisioning and deployment pipelines.",[21,909,911],{"id":910},"technical-challenges","Technical Challenges",[125,913,914,920,926,932,938,944,950,956],{},[128,915,916,919],{},[29,917,918],{},"Data Concurrency:"," Ensuring two brokers or buyers could never simultaneously acquire the same land plot (transactional atomicity).",[128,921,922,925],{},[29,923,924],{},"Security & Authentication:"," Multi-layer security protecting sensitive buyer financial data and contract state.",[128,927,928,931],{},[29,929,930],{},"Third-Party API Integration:"," Managing webhooks, rate limits, and failure modes across Pagar.me and Clicksign APIs.",[128,933,934,937],{},[29,935,936],{},"RBAC (Role-Based Access Control):"," Granular permission management across brokers, admins, and buyers.",[128,939,940,943],{},[29,941,942],{},"State Synchronization:"," Maintaining consistent state across frontend, backend, and external payment/signature APIs during contract execution.",[128,945,946,949],{},[29,947,948],{},"Automation:"," Automated webhook handlers and background jobs to replace error-prone manual operations.",[128,951,952,955],{},[29,953,954],{},"Scalability:"," Multi-tenant architecture deployed on GCP capable of serving multiple land developments without performance degradation.",[128,957,958,961],{},[29,959,960],{},"Query Performance:"," Fastify caching and indexed SQL queries for fast financial report generation.",[21,963,965],{"id":964},"results","Results",[17,967,968,969,972],{},"Online sales launched successfully, driving purchases even outside the home state of Pernambuco. Management gained immediate visibility into inventory status and revenue flows. The solution provided a reliable foundation for future developments, solidifying ",[29,970,971],{},"Nuxt 3 and Fastify"," as my preferred stack for mission-critical business applications.",{"title":208,"searchDepth":209,"depth":209,"links":974},[975,976,977,978],{"id":818,"depth":209,"text":813},{"id":841,"depth":209,"text":842},{"id":910,"depth":209,"text":911},{"id":964,"depth":209,"text":965},"Comprehensive real estate lot platform featuring lot management, Clicksign digital signatures, and Pagar.me payment integration.",{},"/en/projects/reserva-tamandare",{"title":813,"description":979},[530,390,531,532],"en/projects/reserva-tamandare","l3uNhFREzF7Z5yHzC61ibrXac1pWpbIGZsni-F3gHJA",1789775732357]