GN LogoGadiego Nogueira
Desenvolvimento04 de outubro de 2026

Construindo para aprender: os projetos que estão moldando minha evolução como desenvolvedor

Quatro projetos — de uma Pokédex de perfis do GitHub a um app de análise de jogos — e o que construir produtos completos tem me ensinado sobre desenvolvimento.

Introdução

Aprender desenvolvimento fica diferente quando a gente transforma uma ideia em um produto que outras pessoas podem usar. Além de fazer uma tela funcionar, é preciso pensar nos dados, nas regras, nos erros, na acessibilidade e em como manter tudo compreensível.

Nos últimos projetos, tenho explorado desafios bem diferentes: transformar dados públicos do GitHub em uma ficha de personagem, registrar e analisar partidas em um app mobile, criar um sistema gamificado de quests e ajudar pessoas a estruturar instruções para ferramentas de IA. Cada um me ensinou algo diferente sobre construir software.

Por que comecei a construir projetos próprios

Projetos próprios me colocam diante de problemas que não vêm com uma solução pronta. Preciso escolher o que faz parte do produto, definir como as informações se relacionam e decidir o que acontece nos caminhos menos óbvios — como uma falha de rede, uma comparação empatada ou uma permissão insuficiente.

É nesse processo que tecnologias e conceitos ganham contexto. Em vez de estudar uma ferramenta de forma abstrata, posso entender onde ela ajuda, quais limites tem e como afeta a experiência de quem usa o produto.

GitHub Pokédex Card: dados transformados em uma ficha

O GitHub Pokédex Card transforma informações públicas de um perfil do GitHub em uma ficha visual de personagem desenvolvedor. O card reúne classe, atributos, progressão, raridade, linguagens e estatísticas públicas, além de poder ser compartilhado ou baixado como PNG. O projeto também compara dois perfis em um modo de batalha.

O desafio interessante aqui é transformar dados incompletos e diferentes entre si em uma experiência divertida sem fingir que eles dizem mais do que realmente dizem. A API pública retorna, por exemplo, até 100 repositórios recentes e eventos públicos disponíveis — não o histórico completo de contribuições. Por isso, o app explicita os limites da amostra e não inventa uma contagem anual de contribuições que a API não fornece.

As regras da ficha ficam em funções de domínio independentes da interface, e os cálculos são determinísticos. Isso torna importante pensar não só em como calcular atributos, XP e raridade, mas também em como explicar de onde vieram os resultados. Foi um exercício de modelagem: criar uma camada de jogo sobre dados reais sem perder transparência.

Analize: registrar partidas para entender o desempenho

O Analize é um app mobile feito com Expo e React Native para registrar sessões de jogo, partidas, análises agendadas e métricas de desempenho. Em vez de tratar todo jogo da mesma maneira, o app usa um catálogo compartilhado: cada jogo pode ter seus próprios modos, condições e definições de métricas.

Essa decisão influencia o fluxo inteiro. Uma sessão pertence a um grupo e herda o jogo escolhido nele; o formulário de uma partida usa as métricas configuradas para aquele jogo; e os gráficos podem ser filtrados por grupo, sessão, partida, condição e outros recortes.

Também há desafios para além da interface: organizar grupos e participantes, convites e notificações, manter os registros úteis para análise e considerar o uso quando a conexão falha. Trabalhar nesse tipo de aplicação reforça como uma decisão de modelo de dados repercute em formulários, navegação e visualizações.

HorizonQuest: quests, revisão e progressão

O HorizonQuest é um sistema gamificado de quests com submissões, revisão, XP e progressão de jogadores. A aplicação é organizada como um monorepo: o frontend usa React, Vite e Tailwind, enquanto a API é construída com Express, Prisma e PostgreSQL.

Um fluxo de quest envolve mais do que enviar uma resposta. Há papéis diferentes, uma fila de revisão, aprovação ou rejeição com comentário, atualização de XP e desbloqueio de conquistas. As permissões precisam ser verificadas também na API, e não apenas escondidas na interface. Por exemplo, quem revisa não pode aprovar a própria entrega.

O projeto também cresceu para incluir áreas como projetos da guilda, diário privado, taverna e uma loja de itens cosméticos. Esse conjunto mostra como funcionalidades aparentemente independentes dependem de regras coerentes de acesso, histórico e relacionamento entre usuários. É uma oportunidade de pensar em comportamento consistente à medida que um produto ganha novas partes.

FOCAra: estruturando instruções para IA

O FOCAra ajuda a transformar uma necessidade em uma instrução clara e personalizada para diferentes ferramentas de IA. A pessoa escolhe uma categoria, responde perguntas guiadas e recebe um prompt estruturado pelo método FOCO, que pode então copiar, editar ou gerar novamente.

O fluxo inclui categorias para estudos, programação, trabalho, pesquisa, escrita e negócios. O histórico fica local, com busca, filtros e resumo, e o produto não depende de uma IA específica para que a instrução final possa ser usada.

Construir uma experiência assim exige pensar em como fazer perguntas úteis sem tornar o processo cansativo e como apresentar um resultado que a pessoa consiga entender e adaptar. Também envolve separar responsabilidades: a interface guia o preenchimento, enquanto a geração server-side usa uma API externa para organizar a instrução.

O que esses projetos estão me ensinando

Olhando para esses projetos em conjunto, vejo alguns aprendizados que aparecem em contextos bem diferentes:

Também tenho aprendido que um projeto fica mais interessante quando a tecnologia serve a uma necessidade clara. A stack importa, mas as decisões sobre o problema, os dados e as pessoas que vão usar a solução importam tanto quanto.

Próximos passos

Quero continuar aprimorando esses projetos, dando atenção tanto às regras internas quanto à experiência de uso. Também quero seguir explorando novas ideias que me façam aprender algo concreto — seja sobre arquitetura, dados, desenvolvimento mobile ou a forma de transformar uma necessidade em um produto.

Mais do que acumular tecnologias, quero construir soluções que me desafiem a pensar melhor e a tomar decisões com mais clareza. Cada projeto é uma oportunidade de praticar esse processo: entender o problema, fazer escolhas, observar o resultado e continuar evoluindo.

Voltar ao topo ↑
Construindo para aprender: os projetos que estão moldando minha evolução como desenvolvedor | Gadiego Nogueira