{"site":"https://www.zanoni.dev.br","name":"Felipe Zanoni da Rosa","generated_at":"2026-08-22T04:51:11.537Z","headline":"Felipe Zanoni da Rosa","subtitle":"Engenheiro de Software","about":"Sou Felipe Zanoni, Software Engineer com experiência em desenvolvimento backend, automação e integração de sistemas. Trabalhei em ambientes corporativos de Indústria 4.0 (TMD Friction) e em desenvolvimento full stack (Sage Networks), sempre com foco em Python, Linux, Docker e boas práticas de engenharia de software.\r\n\r\nAtualmente curso Ciência da Computação na UNIFEI e atuo como Software Engineer no time Black Bee Drones, desenvolvendo sistemas para drones autônomos com ROS e visão computacional. Gosto de projetos que unem código bem estruturado com problemas reais — de automação de processos industriais a sistemas embarcados de missão crítica.\r\n\r\nSou natural de Salto, SP, e hoje moro em Itajubá, MG, onde estudo. Fora do código, gosto de jogar games, cozinhar nas horas livres, colecionar perfumes e jogar truco, poker e outros jogos de carta.","services":"**Desenvolvimento Web**\r\nCriação de sites institucionais e aplicações web sob medida, do planejamento ao deploy.\r\n\r\n**Automação de Processos**\r\nScripts e sistemas para automatizar tarefas repetitivas, reduzindo trabalho manual e erros.\r\n\r\n**Backend & APIs**\r\nDesenvolvimento de APIs e sistemas backend robustos, com foco em performance e boas práticas.\r\n\r\n**Desenvolvimento de Software**\r\nProjeto e desenvolvimento de sistemas e aplicações completas — além de scripts simples, com arquitetura, testes e manutenibilidade em mente.\r\n\r\n**Consultoria em Infraestrutura**\r\nConfiguração e otimização de ambientes de desenvolvimento e produção, adaptados à necessidade de cada projeto.","availability":"disponível para novos projetos","contact":{"email":"fezarosa@gmail.com","phone":"+55 (11) 94377-2412","github":"https://github.com/fezarosa-dev","linkedin":"https://www.linkedin.com/in/felipe-zanoni/","other_links":[{"label":"Linkedin","url":"www.linkedin.com/in/felipe-zanoni"},{"label":"WhatsApp","url":"https://wa.me/5511943772412"},{"label":"fezarosa@gmail.com","url":"mailto:fezarosa@gmail.com"},{"label":"+55 (11) 94377-2412","url":"tel:+5511943772412"}],"page":"https://www.zanoni.dev.br/pt/contato"},"resume":{"content_md":"# Resume\r\n\r\n\r\n**PROFESSIONAL SUMMARY:**  \r\nInformation Technology professional with hands-on experience in software development, automation, and system integration. Strong background in Python backend development and Linux environments, with experience in Industry 4.0 projects and data-driven solutions. Skilled in Docker, Git version control, technical documentation, and collaborative development in multidisciplinary teams. Focused on building scalable software solutions with emphasis on code quality, automation, and continuous improvement.\r\n\r\n**PROFESSIONAL EXPERIENCE:**\r\n\r\n* **Full Stack Developer – Sage Networks – Nov 2025 to Mar 2026:**  \r\n  * Backend Application Development using Python;  \r\n  * Development of REST APIs;  \r\n  * Development and maintenance of scripts and services in Linux environments;  \r\n  * Code versioning with Git and containerization using Docker;  \r\n  * Support in bug fixing and maintenance of existing systems;  \r\n  * Software optimization and performance tuning;  \r\n  * Technical documentation of features and processes.  \r\n* **Industry 4.0 Project Trainee – TMD Friction – Jul 2025 to Nov 2025:**  \r\n  * Development of automation solutions and system integrations;  \r\n  * Analysis of operational and business data;  \r\n  * Processing, formatting, and analysis of high-volume data;  \r\n  * Root cause analysis and troubleshooting of issues;  \r\n  * Preparation of technical project documentation and presentations;  \r\n  * Advanced use of ERP, MES, and PCS systems.  \r\n* **Foreign Trade Apprentice – TMD Friction – Aug 2024 to Jul 2025:**  \r\n  * Freight analysis and quotation management;  \r\n  * Special tariff regimes;  \r\n  * Import procurement and negotiation;  \r\n  * Email automation, invoice processing for financial approval and payment, and spreadsheet automation using VBA.  \r\n      \r\n* **Web Developer and Automation Engineer (Freelancer) – 2023 to 2024:**  \r\n  * Web application development;  \r\n  * Automation development;  \r\n  * Development of end-to-end solutions following software engineering best practices.\r\n\r\n**PROJECTS:**\r\n\r\n* **Software Engineer – Black Bee Drones – May 2026 – Present**  \r\n  * Development of software systems for autonomous drones in competitive applications, using ROS and Python in Linux environments;  \r\n  * Collaboration with multidisciplinary engineering teams to research, implement, and document software solutions for competitions and technical presentations;  \r\n  * Use of Git for version control and software project management in a collaborative development environment.\r\n\r\n**EDUCATION:**\r\n\r\n* **Bachelor of Science in Computer Science** – Federal University of Itajubá (UNIFEI), Prof. José Rodrigues Seabra Campus – 2026 – Expected Graduation: 2029;  \r\n* **Technical Diploma in Internet Informatics (Integrated with High School)** – Federal Institute of Education, Science and Technology of São Paulo (IFSP) – 2023 to 2025\\.\r\n\r\n**LANGUAGES:**\r\n\r\n* English – Advanced;  \r\n* Portuguese – Native.\r\n\r\n**SKILLS:**\r\n\r\n* **Programming Languages & Scripting:**  \r\n  * Python;  \r\n  * Bash Script;  \r\n  * Rust;  \r\n  * JavaScript, TypeScript (Angular);  \r\n  * Java;  \r\n  * SQL;  \r\n  * HTML/CSS/SCSS;  \r\n  * VBA.\r\n  * C#\r\n* **Systems & Infrastructure:**  \r\n  * Linux (server environments);  \r\n  * Docker e Docker Swarm;  \r\n  * Nginx;  \r\n  * ROS.  \r\n* **Software Development:**  \r\n  * Git / GitHub;  \r\n  * Data structures;  \r\n  * Fundamentals of unit testing;  \r\n  * Software development lifecycle (SDLC).  \r\n* **Automation & Applied AI:**  \r\n  * Python-based automation using locally hosted language models;  \r\n  * LLM integration with offline files;  \r\n  * Use of AI for financial data analysis and process automation support;  \r\n  * Computer Vision.  \r\n* **Data & BI:**  \r\n  * Power BI;  \r\n  * Advanced Excel (Power Query and Power Pivot).  \r\n* **Networking:**  \r\n  * Computer networking fundamentals;  \r\n  * Network infrastructure and services.  \r\n* **Methodologies & Tools:**  \r\n  * Agile Methodologies;  \r\n  * Clean Code.\r\n\r\n**ADDITIONAL TRAINING / CERTIFICATIONS:**\r\n\r\n* **Dev & Tools:**  \r\n  * Docker Complete – Jan 2025;  \r\n  * Git and GitHub – Jun 2023\\.  \r\n* Programming:  \r\n  * Python Essentials 1 & 2 – 2023 / 2025;  \r\n  * Python 3 – 2022–2023.  \r\n* Systems:  \r\n  * Network Defense – Apr 2025;  \r\n  * Advanced Excel – Apr 2025\\.","links":[{"label":"download","url":"https://docs.google.com/document/d/1V5VVyhIEZYnDdm7xd5yWKtSBif2VD4-RX-5hzcV0TTo/edit?usp=sharing"}],"page":"https://www.zanoni.dev.br/pt/curriculo"},"projects":[{"title":"IXSonar — Análise de Visibilidade BGP entre Pontos de Troca de Tráfego","summary":"Pipeline de dados em Rust que audita, em escala, a redundância de conectividade entre diferentes Pontos de Troca de Tráfego (IXs) brasileiros e internacionais, a partir de snapshots históricos de rotas BGP coletados pelo RouteViews. O objetivo era responder a uma pergunta prática: vale a pena um provedor investir em conectividade física de longa distância até um IX principal, como o de São Paulo, ou a maior parte dos prefixos já está replicada em IXs regionais mais próximos? Lidando com um volume massivo de dados incompletos e inconsistentes, e com o gargalo real sendo I/O de disco e não CPU, o pipeline combina Rust, Parquet, Arrow e DuckDB para processar tudo com o mínimo de leitura/escrita possível, entregando um dashboard histórico que embasa essa decisão com dados reais.","description":"### O que é\r\nFerramenta de análise de redes que compara a visibilidade de rotas BGP entre múltiplos Pontos de Troca de Tráfego (IXs) — por exemplo, diferentes praças do IX.br, além de alguns IXs internacionais para comparação. Responde a perguntas como: quais prefixos anunciados em um IX também aparecem em outro? Quantos mantêm o mesmo caminho de AS nos dois locais? Como essa cobertura varia entre CDNs, provedores de acesso, bancos e órgãos de governo?\r\n\r\nO objetivo prático por trás da análise é mostrar que, na maioria dos casos, não vale a pena um provedor investir em conectividade física de longa distância até um IX distante (por exemplo, ligar um cabo até o IX de São Paulo quando se está em Fortaleza) porque grande parte dos prefixos e redes disponíveis em um IX principal já está replicada nos IXs regionais. O resultado é um dashboard histórico que ajuda times de rede a tomar essa decisão com dados reais, entendendo a redundância de conectividade entre localidades.\r\n\r\n### Desafio\r\nOs dados vêm do RouteViews (University of Oregon), que coleta snapshots (RIBs) de roteadores em diversos pontos do mundo — mas nem todos os IXs têm cobertura completa: há datas e horários com falhas específicas de captura, dependendo do roteador de origem. Os arquivos vinham com dados faltando, formatação inconsistente entre snapshots e um volume absurdo de informação para processar. O maior desafio técnico foi encontrar uma forma de processar esse volume com o mínimo possível de I/O de disco e a maior velocidade possível, já que o gargalo real não era CPU, era leitura/escrita.\r\n\r\n### Solução\r\n- Binário em **Rust** que baixa automaticamente os snapshots (RIBs) do RouteViews, testando múltiplos dias em paralelo até localizar um arquivo válido, e aplica filtros configuráveis de inclusão/exclusão sobre AS-PATH e comunidades BGP.\r\n- Uso de **Apache Parquet** como formato intermediário — arquivos colunares, imutáveis e com resumo estatístico embutido, escolhidos por reduzirem drasticamente o volume de I/O de disco comparado a alternativas como SQLite.\r\n- Uso de **Apache Arrow** para trafegar os dados diretamente em memória (RAM) entre as etapas do pipeline, evitando serialização/desserialização desnecessária em disco.\r\n- **DuckDB** embarcado para comparar pares de IXs — overlap de prefixos, consistência de caminho de AS e métricas por categoria de rede — processando as dimensões global, IPv4 e IPv6 em paralelo, tudo via SQL direto sobre os arquivos Parquet.\r\n- Scripts em **Python** que leem os resultados finais e geram um dashboard HTML autocontido com gráficos interativos, servido por um pequeno servidor Flask.\r\n\r\n### Resultado\r\nPipeline completo — da coleta de dados brutos até a visualização final — capaz de processar grandes volumes de dados BGP de forma eficiente em disco e memória, entregando visibilidade histórica sobre a redundância de conectividade entre IXs brasileiros e internacionais.\r\n\r\n### Stack técnica\r\n- Rust (tokio, reqwest, rayon, DuckDB embarcado)\r\n- Python (pandas, matplotlib, Flask)\r\n- Apache Parquet como formato intermediário\r\n- Apache Arrow para transporte de dados em memória\r\n- Google Charts para o dashboard\r\n\r\n### Destaques técnicos\r\n- Download automático e resiliente de RIBs BGP históricas do RouteViews, testando múltiplos dias até achar um snapshot válido\r\n- Tratamento de dados incompletos e com formatação inconsistente entre diferentes coletas/roteadores\r\n- Uso de Parquet + Arrow para minimizar I/O de disco e maximizar velocidade de processamento em grande volume\r\n- Motor de filtros configurável com lógica AND/OR sobre comunidades BGP e AS-PATH\r\n- Comparação de overlap de rotas feita inteiramente em SQL sobre arquivos Parquet, via DuckDB embarcado\r\n- Processamento paralelo nativo em Rust das três dimensões de análise (global, IPv4, IPv6)\r\n- Classificação de redes por categoria de negócio (CDN, ISP, financeiro, governo) para segmentar a análise","technologies":["Python","Rust","Git","DuckDB"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/3b81dfff-356b-4d47-84c2-9fc4516b4286"},{"title":"Portfólio Pessoal — Site & Painel Administrativo","summary":"Este é o site que você está vendo agora: uma aplicação Next.js construída do zero para apresentar projetos, artigos, currículo e formas de contato — mas com um diferencial: todo o conteúdo é gerenciado por um painel administrativo próprio, sem depender de nenhum CMS externo. Projetos, textos, imagens, tecnologias e mensagens recebidas são editados direto pelo navegador, sem tocar em código ou fazer novo deploy.","description":"# Portfólio Pessoal — Site & Painel Administrativo\r\n\r\n**Um site de portfólio que também é uma aplicação full-stack completa, com CMS próprio, autenticação e suporte bilíngue.**\r\n\r\n## O que é\r\n\r\nEste é o site que você está vendo agora: uma aplicação Next.js construída do zero para apresentar projetos, artigos, currículo e formas de contato — mas com um diferencial: todo o conteúdo é gerenciado por um painel administrativo próprio, sem depender de nenhum CMS externo. Projetos, textos, imagens, tecnologias e mensagens recebidas são editados direto pelo navegador, sem tocar em código ou fazer novo deploy.\r\n\r\n## Como funciona\r\n\r\nA aplicação usa o App Router do Next.js com duas grandes áreas: as páginas públicas do site e um `/admin` protegido por autenticação, onde o conteúdo é criado e editado. Os dados vivem no Supabase (Postgres), com um schema versionado por migrations SQL. Um middleware customizado cuida de duas coisas ao mesmo tempo: proteger as rotas administrativas e detectar automaticamente o idioma do visitante (português ou inglês) via cabeçalho do navegador e cookie, servindo o conteúdo já traduzido. As imagens do site são hospedadas no Google Drive e servidas por endpoints próprios, sem expor nenhuma chave de API no cliente.\r\n\r\n## Stack técnica\r\n\r\n- Next.js 16 (App Router) + React 19 + TypeScript\r\n- Tailwind CSS 4 + shadcn/ui + Framer Motion\r\n- Supabase (Postgres + Auth)\r\n- Google Drive API como galeria de imagens\r\n- react-markdown para os artigos do blog\r\n\r\n## Destaques técnicos\r\n\r\n- CMS próprio embutido no admin, cobrindo projetos, artigos, currículo, mensagens de contato e personalização visual do site\r\n- Suporte bilíngue construído sob medida: detecção automática de idioma e campos de conteúdo espelhados (ex.: `hero_title` / `hero_title_en`)\r\n- SEO cuidado desde o início: JSON-LD estruturado, sitemap, robots.txt e Open Graph dinâmico\r\n- Testes unitários cobrindo as partes mais sensíveis do sistema: autenticação, detecção de idioma e processamento de markdown","technologies":["JavaScript","Git","TypeScript","Supabase","PostgreSQL","Vercel","React"],"coauthors":[],"company":"Projeto pessoal","repo_url":"https://github.com/fezarosa-dev/Portifolio","site_url":"www.zanoni.dev.br","page":"https://www.zanoni.dev.br/pt/projetos/df1c0c03-1ebd-4bbd-ac69-6388c2f96fd3"},{"title":"Drone Simulator — Simulador de Voo com ROS2","summary":"Um simulador de voo de drone (quadricóptero) construído para testar algoritmos de navegação e desvio de obstáculos sem risco nem custo de hardware físico. O drone virtual decola, navega por um percurso em slalom desviando de obstáculos, pode executar manobras (como um flip) e retorna automaticamente ao ponto de origem para pousar — tudo visualizado em 3D em tempo real.","description":"# Drone Simulator — Simulador de Voo com ROS2\r\n\r\n**Um quadricóptero virtual completo, com física própria e sensores simulados, para testar lógica de autopiloto sem precisar de um drone real.**\r\n\r\n## O que é\r\n\r\nUm simulador de voo de drone (quadricóptero) construído para testar algoritmos de navegação e desvio de obstáculos sem risco nem custo de hardware físico. O drone virtual decola, navega por um percurso em slalom desviando de obstáculos, pode executar manobras (como um flip) e retorna automaticamente ao ponto de origem para pousar — tudo visualizado em 3D em tempo real.\r\n\r\n## Como funciona\r\n\r\nO núcleo é um nó ROS2 rodando a 60 quadros por segundo. A cada frame, um autopiloto (implementado como máquina de estados) decide os comandos de voo — decolagem, navegação, manobra, retorno e pouso — que alimentam um modelo físico simplificado de quadricóptero em configuração X, com mixagem individual de cada motor. O simulador publica dados de GPS, IMU e LIDAR nos mesmos formatos que hardware real usaria em ROS2, permitindo que qualquer sistema externo consuma esses sensores como se estivesse controlando um drone de verdade. A cena é renderizada em 3D com VPython, mostrando o drone, o ambiente e a trilha percorrida.\r\n\r\n## Stack técnica\r\n\r\n- Python 3 + ROS2 (rclpy)\r\n- VPython para visualização 3D\r\n- NumPy para física e cálculo vetorial\r\n\r\n## Destaques técnicos\r\n\r\n- Máquina de estados de voo completa: decolagem, navegação com desvio de obstáculos, manobra, retorno ao ponto de origem e pouso\r\n- Modelo físico de quadricóptero com mixagem individual de motor (throttle, roll, pitch, yaw)\r\n- Sensores simulados (GPS, IMU, LIDAR) publicados como tópicos ROS2 padrão, prontos para serem consumidos por qualquer nó externo\r\n- Detecção de colisão contra obstáculos e limites da arena, encerrando a missão em caso de acidente\r\n- Visualização 3D em tempo real com trilha de voo","technologies":["Python","ROS","Git"],"coauthors":[],"company":"Black Bee Drones","repo_url":"https://github.com/fezarosa-dev/droneSimulator","site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/f19e16c4-57e1-43c4-b9da-2c07a9a86ee0"},{"title":"BlackBee Challenge - 2026 - Missão 1 - Mapeamento","summary":"Projeto desenvolvido para a Missão 1 do Black Bee Challenge, uma competição de robótica aérea autônoma. O objetivo: um drone decola sem intervenção humana do centro de uma arena de 14x14 metros, varre toda a área seguindo um plano de voo em grade, localiza até 5 \"bases\" (alvos no chão com formas e números), fotografa cada uma garantindo que apareça inteira no quadro, calcula sua coordenada GPS e gera um relatório com as fotos como prova — exatamente como exige o regulamento oficial da competição.","description":"# Black Bee Challenge 2026 — Mapeamento Aéreo Autônomo\r\n\r\n**Um drone que decola sozinho, mapeia 100% de uma arena de competição e identifica alvos por conta própria.**\r\n\r\n## O que é\r\n\r\nProjeto desenvolvido para a Missão 1 do Black Bee Challenge, uma competição de robótica aérea autônoma. O objetivo: um drone decola sem intervenção humana do centro de uma arena de 14x14 metros, varre toda a área seguindo um plano de voo em grade, localiza até 5 \"bases\" (alvos no chão com formas e números), fotografa cada uma garantindo que apareça inteira no quadro, calcula sua coordenada GPS e gera um relatório com as fotos como prova — exatamente como exige o regulamento oficial da competição.\r\n\r\n## Como funciona\r\n\r\nO sistema é uma máquina de estados finita rodando sobre ROS2: decolagem, planejamento da cobertura, captura de fotos em cada waypoint, detecção das bases e pouso. Toda a matemática de geometria de câmera e visão computacional (cálculo do campo de visão, tamanho do quadro fotografado no chão, grade de cobertura, conversão de posição de pixel para coordenada GPS real) fica isolada em módulos independentes do ROS, o que permite testá-los sem precisar de um drone de verdade. A detecção das bases pode ser feita tanto por processamento clássico de imagem (OpenCV) quanto por um modelo YOLO treinado especificamente para esse alvo, trocáveis sem alterar o resto do pipeline.\r\n\r\n## Stack técnica\r\n\r\n- Python + ROS2 (rclpy)\r\n- YASMIN (máquina de estados finita)\r\n- OpenCV e YOLO/Ultralytics para detecção\r\n- MAVROS/MAVLink para controle real do drone\r\n- Gazebo para simulação\r\n\r\n## Destaques técnicos\r\n\r\n- Correção de um erro real de física óptica: o campo de visão da câmera é diagonal, não horizontal — a conversão trigonométrica correta mudou o número de waypoints necessários de 6 para 8\r\n- Algoritmo de cobertura de área verificado numericamente, varrendo uma malha fina de pontos para confirmar 100% de cobertura da arena\r\n- Pipeline de projeção pixel → coordenada GPS em duas etapas, com compensação de inclinação do drone (roll/pitch)\r\n- Deduplicação de alvos detectados em fotos sobrepostas, com composição de mosaico quando nenhuma foto isolada mostra o alvo inteiro\r\n- Configuração de missão inteira centralizada em um único arquivo, com perfis que alternam entre simulação e voo real","technologies":["Python","ROS","Git"],"coauthors":[{"name":"Felipe Barros","url":null}],"company":"Black Bee Drones","repo_url":"https://github.com/Black-Bee-Drones/black-bee-challenge-2026/tree/mapping","site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/1a0160ad-64ab-440c-a10b-fdc1b4944fbe"},{"title":"Moodle Chat Bot — Assistente de Programação em C no Chat do Moodle","summary":"Uma extensão de navegador (Chrome/Firefox) que monitora o chat de mensagens do Moodle e o transforma em um assistente acadêmico de programação em C. Direto do chat da disciplina, é possível compilar e rodar código C, interagir com o programa em execução (inclusive fornecer entradas via `scanf`), pedir para uma IA explicar erros ou corrigir bugs, e manter um histórico de conversas e execuções anteriores — tudo sem sair da interface do curso.","description":"# Moodle Chat Bot — Assistente de Programação em C no Chat do Moodle\r\n\r\n**Uma extensão de navegador que transforma o chat do Moodle em um compilador e tutor de C com IA.**\r\n\r\n## O que é\r\n\r\nUma extensão de navegador (Chrome/Firefox) que monitora o chat de mensagens do Moodle e o transforma em um assistente acadêmico de programação em C. Direto do chat da disciplina, é possível compilar e rodar código C, interagir com o programa em execução (inclusive fornecer entradas via `scanf`), pedir para uma IA explicar erros ou corrigir bugs, e manter um histórico de conversas e execuções anteriores — tudo sem sair da interface do curso.\r\n\r\n## Como funciona\r\n\r\nUm content script injetado na página do Moodle observa o chat em busca de comandos que começam com `!`, enviados por um usuário autorizado. Cada comando é repassado para um backend local em Flask, que roteia a mensagem: se for código C, ele é compilado com GCC e executado em um subprocesso, com um sistema de filas e threads para capturar saída em tempo real e detectar quando o programa está esperando entrada do usuário. Se for uma pergunta, a mensagem — junto com o contexto de execuções anteriores escolhido pelo usuário — é enviada para a IA do Google Gemini, com fallback automático entre modelos em caso de limite de cota. Todo o histórico de mensagens, respostas e execuções fica salvo em um banco DuckDB local.\r\n\r\n## Stack técnica\r\n\r\n- JavaScript (extensão de navegador, Manifest V3)\r\n- Python + Flask (backend local)\r\n- Google Gemini API\r\n- DuckDB para persistência\r\n- GCC para compilação e execução de C\r\n\r\n## Destaques técnicos\r\n\r\n- Runner de C interativo, com suporte a `scanf` em tempo real através de um \"timer de silêncio\" que decide quando entregar a saída ao usuário\r\n- Inferência automática de `#include`: quando o chat do Moodle corrompe símbolos como `#`, o bot reconhece as funções usadas (`printf`, `malloc`, `sqrt`...) e injeta os headers corretos\r\n- Sistema de contexto para a IA com granularidade fina — desde \"última execução\" até um ID específico de conversa, com regras sobre incluir só a pergunta, só a resposta, ou ambas\r\n- Fallback em cascata entre modelos Gemini para contornar limites de cota gratuita\r\n- Arquitetura em camadas no backend (rotas, execução, IA, inferência de headers, banco de dados), mantendo cada responsabilidade isolada","technologies":["Python","JavaScript","Git"],"coauthors":[],"company":"Projeto pessoal","repo_url":"https://github.com/fezarosa-dev/moodleChat","site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/1ce7c3e7-f04a-414f-bc8b-d3f0877d7468"},{"title":"Electrolysis App — Simulador de Eletrolisador PEM","summary":"Aplicativo desktop que simula um eletrolisador PEM (produção de hidrogênio por eletrólise da água) ao longo de 24 horas, permitindo que engenheiros e estudantes visualizem de forma interativa quanto H2 e O2 são produzidos, quanta água é consumida, quanto calor é gerado e qual a potência elétrica exigida — tudo a partir de um perfil de carga configurável, pensado especialmente para cenários de energia solar intermitente.","description":"# Electrolysis App — Simulador de Eletrolisador PEM\r\n\r\n**Um app desktop que mostra, hora a hora, quanto hidrogênio um eletrolisador produz a partir de um perfil de energia solar.**\r\n\r\n## O que é\r\n\r\nAplicativo desktop que simula um eletrolisador PEM (produção de hidrogênio por eletrólise da água) ao longo de 24 horas, permitindo que engenheiros e estudantes visualizem de forma interativa quanto H2 e O2 são produzidos, quanta água é consumida, quanto calor é gerado e qual a potência elétrica exigida — tudo a partir de um perfil de carga configurável, pensado especialmente para cenários de energia solar intermitente.\r\n\r\n## Como funciona\r\n\r\nO usuário desenha o perfil de energia disponível hora a hora arrastando barras diretamente no gráfico (ou digitando o valor exato), com atalhos prontos para perfis típicos, como 24 horas contínuas ou apenas as horas de sol. A cada mudança, o app recalcula a produção horária usando o modelo físico do eletrolisador (Lei de Faraday, eficiência de célula, perdas térmicas) e atualiza os gráficos e os totais diário, mensal e anual em tempo real. Os resultados podem ser exportados em um pacote com gráficos em imagem, dados em CSV e os parâmetros usados na simulação.\r\n\r\n## Stack técnica\r\n\r\n- C# / .NET com Avalonia UI (desktop multiplataforma)\r\n- LiveChartsCore + SkiaSharp para os gráficos\r\n- Exportação de relatórios em CSV e imagem\r\n\r\n## Destaques técnicos\r\n\r\n- Editor de perfil de carga por manipulação direta no gráfico, com precisão via clique para valor exato\r\n- Modelo físico real do eletrolisador: Lei de Faraday, eficiência de célula de 98%, 1.8V por célula, perdas térmicas de 30%\r\n- Exportação completa dos resultados (gráficos, dados horários e parâmetros) em um único pacote\r\n- Interface pensada para cenários de energia renovável intermitente, com atalhos para perfis solares típicos","technologies":["C#","Git"],"coauthors":[{"name":"Juan Felipe Vásquez Uribe","url":"https://www.linkedin.com/in/juan-felipe-vasquez-u/"}],"company":"Freelancer","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/0fa1047e-d953-4abe-8036-01b6f2b2546f"},{"title":"SOVA — Pipeline de Geolocalização de Tráfego em Larga Escala","summary":"Pipeline híbrido em Python e Cython que processa milhões de registros de tráfego de rede em tempo real, geolocalizando IPs para alimentar um sistema de detecção e mitigação de DDoS.","description":"### O que é\r\nPipeline de processamento de dados de tráfego de rede (NetFlow dumps) em larga escala, usado como insumo para um sistema de detecção e mitigação de ataques DDoS. Para cada registro de tráfego, o sistema resolve a geolocalização dos IPs de origem e destino e entrega dados limpos e estruturados para consumo por outros sistemas.\r\n\r\n### Desafio\r\nProcessar milhões de linhas de dados de tráfego dentro de uma janela de até 5 minutos, sob restrições rígidas de tempo e memória. Além do volume, cada linha exigia um lookup de geolocalização de IP, o que tornava o processamento em Python puro inviável dentro do SLA exigido.\r\n\r\n### Solução\r\n- Arquitetura híbrida com **Python** como orquestrador (controle de fluxo, agregação e formatação dos dados) e **Cython** para acelerar os trechos críticos — tanto no parsing dos dumps de NetFlow quanto no lookup de geolocalização.\r\n- Uso da base **MaxMind GeoIP** para resolver a geolocalização de IPs de origem e destino em escala.\r\n- Processamento paralelo para lidar com o volume de dados dentro da janela de tempo disponível, mantendo o uso de memória sob controle.\r\n- Limpeza e padronização dos dados de saída, gerando datasets estruturados usados posteriormente para alimentar presets do sistema anti-DDoS.\r\n\r\n### Resultado\r\nPipeline capaz de processar grandes volumes de tráfego de rede dentro do SLA de tempo exigido, fornecendo dados geolocalizados e limpos como base para decisões automatizadas de mitigação de ataques.\r\n\r\n### Stack técnica\r\n- Python\r\n- Cython\r\n- MaxMind GeoIP\r\n- SQLite\r\n- Processamento paralelo / multiprocessing\r\n\r\n### Destaques técnicos\r\n- Otimização de trechos críticos com Cython para atingir performance próxima de C em Python\r\n- Lookup de geolocalização de IP em escala (milhões de registros) dentro de janela de tempo restrita\r\n- Processamento paralelo para equilibrar velocidade e uso de memória\r\n- Pipeline de limpeza e padronização de dados para consumo por sistemas downstream de segurança","technologies":["Python","Docker","Git","SQLite","Cython"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/3e78caa9-23f7-4c2e-8e93-8ff7a22d3ace"},{"title":"Asgard — Painel do Cliente","summary":"Painel do cliente da empresa, construído em Angular, no qual atuei desenvolvendo uma nova aba de suporte — mostrando ao cliente o consumo do plano contratado, status dos tickets (abertos, encerrados, aguardando resposta de cada lado) e tempo médio de resposta, tanto do cliente quanto da equipe. Também liderei um trabalho de padronização e modularização de componentes e do sistema de cores, reduzindo retrabalho da equipe e melhorando a performance e a manutenibilidade do projeto. A aplicação roda em containers com pipeline de deploy automatizado.","description":"### O que é\r\nAsgard é o painel do cliente da empresa — a interface onde os clientes acompanham suas informações e estatísticas de conta. É uma aplicação inteira em Angular, executada em containers, com pipeline de deploy automatizado.\r\n\r\n### Minha atuação\r\nNão desenvolvi a aplicação do zero; entrei em um projeto já existente e atuei em frentes específicas:\r\n- Desenvolvimento de uma nova aba de suporte no painel, dando ao cliente visibilidade sobre:\r\n  - Consumo do plano de suporte contratado (quanto já foi utilizado da cota disponível);\r\n  - Quantidade de tickets abertos e encerrados;\r\n  - Tickets aguardando resposta do cliente e tickets aguardando resposta da equipe;\r\n  - Tempo médio de resposta do cliente e tempo médio de resposta da equipe.\r\n- Padronização do projeto: identifiquei que desenvolvedores repetiam manualmente os mesmos padrões de código em diferentes telas, e criei uma estrutura padronizada para eliminar esse retrabalho.\r\n- Modularização de páginas e componentes, tornando o código mais reutilizável e fácil de manter.\r\n- Reestruturação do sistema de cores, unificando o uso em todo o projeto.\r\n- Melhorias de performance no frontend a partir dessas mudanças de estrutura.\r\n\r\n### Stack técnica\r\n- Angular\r\n- TypeScript\r\n- Containers (deploy)\r\n- Pipeline de deploy automatizado\r\n\r\n### Destaques técnicos\r\n- Modularização de componentes e páginas para reduzir duplicação de código\r\n- Padronização de sistema de cores e estilos em toda a aplicação\r\n- Ganhos de performance no frontend decorrentes da reestruturação\r\n- Trabalho em cima de uma base de código já existente, sem quebrar funcionalidades ativas","technologies":["Docker","Git","TypeScript","Nginx","MySQL","Angular"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":"https://cliente.sagenetworks.com.br/","page":"https://www.zanoni.dev.br/pt/projetos/822b693d-3157-4126-9421-567cb6fd9fd5"},{"title":"Pokedex — Análise de Produtividade e Alocação de Técnicos de Suporte","summary":"Sistema em Python desenvolvido para dar visibilidade sobre a operação de uma equipe de técnicos de infraestrutura e redes, que atendiam chamados de clientes através de uma plataforma de suporte de terceiros. O maior desafio não estava na lógica de negócio, e sim no acesso aos dados: não havia API disponível, apenas acesso direto ao banco, sem documentação sobre como as tabelas se relacionavam — foi preciso fazer engenharia reversa do esquema, lidando com dados incompletos e sem padrão de formatação. A partir dessa base tratada, o sistema calcula produtividade por técnico, monitora a distribuição de chamados e cruza esses números com a disponibilidade real da equipe para sinalizar desequilíbrios de carga. Tudo apresentado em dashboards visuais, rodando em produção sobre um cluster Docker Swarm com Nginx como reverse proxy.","description":"### O que é\r\nSistema desenvolvido em Python que acessa diretamente o banco de dados de uma plataforma de suporte ao cliente de terceiros, usada por técnicos de infraestrutura e redes (contratados para atender e resolver chamados de clientes). Sem API ou documentação disponível, o objetivo era transformar esses dados brutos em indicadores de produtividade e apoiar a gestão da equipe de suporte.\r\n\r\n### Desafio\r\nNão havia API ou qualquer forma estruturada de acessar os dados — apenas acesso direto ao servidor e ao banco de dados da plataforma. A estrutura era inconsistente, com dados sujos, incompletos e sem documentação sobre como as tabelas se relacionavam. Foi necessário fazer engenharia reversa do esquema do banco antes mesmo de começar a extrair qualquer métrica confiável de produtividade e alocação.\r\n\r\n### Solução\r\n- Engenharia reversa da estrutura do banco de dados da plataforma de suporte, mapeando tabelas e relacionamentos sem documentação disponível.\r\n- Conexão e queries SQL diretas ao banco para extração dos dados de chamados e atendimentos.\r\n- Tratamento e limpeza de dados inconsistentes/incompletos em Python antes do cálculo de métricas.\r\n- Processamento para calcular indicadores de produtividade por técnico (volume de chamados, tempo de resolução, esforço estimado).\r\n- Geração de relatórios e dashboards visuais para acompanhamento da distribuição de tarefas entre a equipe.\r\n- Lógica de apoio à alocação, cruzando volume de trabalho com a disponibilidade de cada técnico, sinalizando desequilíbrios de carga.\r\n\r\n### Resultado\r\nFerramenta que deu visibilidade à gestão sobre a produtividade real da equipe de suporte e ajudou a equilibrar a distribuição de chamados entre os técnicos, considerando a capacidade e disponibilidade de cada um — mesmo partindo de uma fonte de dados sem estrutura clara ou documentação.\r\n\r\n### Stack técnica\r\n- Python\r\n- SQL (acesso direto a banco de dados)\r\n- Processamento e limpeza de dados\r\n- Geração de dashboards/relatórios\r\n- Docker Swarm\r\n- Nginx\r\n\r\n### Destaques técnicos\r\n- Engenharia reversa de esquema de banco de dados sem documentação\r\n- Extração de dados via SQL direto, sem API disponível\r\n- Tratamento de dados inconsistentes e incompletos como parte central do pipeline\r\n- Cálculo de métricas de produtividade e esforço a partir de dados brutos de atendimento\r\n- Dashboard visual para acompanhamento da equipe\r\n- Lógica de alocação considerando disponibilidade individual dos técnicos\r\n- Deploy em cluster Docker Swarm com Nginx como reverse proxy","technologies":["Python","Docker","Git","Nginx","MySQL"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/pt/projetos/1b00586d-3ba9-402a-8bda-b064ec9ca84c"}],"articles":[]}