{ "personal": { "name": "Evandro Fonseca Junior", "title": "Engenheiro da Computação e Desenvolvedor de Software", "location": "Garuva, Santa Catarina, Brasil", "email": "evandrofonsecajunior@gmail.com", "phone": "Disponível pelo botão de WhatsApp", "linkedin": "https://www.linkedin.com/in/evandrodevbr/", "summary": "Engenheiro da Computação e desenvolvedor de software com 5 anos de experiência, especializado em soluções web modernas e inovadoras. Formado em Engenharia da Computação, com conhecimentos sólidos em computação em nuvem e inteligência artificial. Busco constantemente novos desafios onde possa aplicar minha paixão por tecnologia e resolver problemas de forma criativa." }, "experiences": [ { "id": "innovo-tecnologia", "title": "Desenvolvedor Fullstack", "company": "Innovo Tecnologia da Informação Ltda.", "period": "Dezembro 2024 - Fevereiro 2025", "location": "Joinville, Santa Catarina, Brasil", "type": "Tempo Integral · Híbrido", "description": "Desenvolvimento de componentes Front-end utilizando Angular e implementação da lógica de Back-end com Node.js, integrando bancos de dados PostgreSQL e MySQL. Atuação em metodologias ágeis, especialmente Scrum, colaborando para otimizar processos de desenvolvimento.", "achievements": [ "Contribuição ativa na criação e manutenção de bibliotecas (libs) internas", "Garantia de reutilização de código e qualidade técnica dos sistemas legados", "Otimização de processos de desenvolvimento com metodologias ágeis" ], "technologies": [ "Angular", "Node.js", "JavaScript", "PostgreSQL", "MySQL", "Scrum" ], "featured": true }, { "id": "apolo-energia", "title": "Desenvolvedor Full Stack", "company": "Apolo Energia", "period": "Junho 2022 - Presente", "location": "Curitiba, Paraná, Brasil", "type": "Autônomo · Remota", "description": "Entrega de aplicações Web e Mobile que sustentam rotinas internas da Apolo Energia, com responsividade e capacidade de crescer sem perda de qualidade. Desenho e implementação de APIs REST com contratos claros, testes e versionamento, simplificando integrações com terceiros e sistemas internos.", "achievements": [ "Melhoria de desempenho em rotas e consultas críticas por meio de análise de gargalos, indexação e cache", "Fortalecimento da segurança de dados com autenticação/autorização adequadas e criptografia em trânsito", "Integração de plataformas e dispositivos (IoT) para troca confiável de dados entre serviços e parceiros", "Automação de rotinas e criação de painéis para operação e controle em processos de energia renovável", "Participação no planejamento e na arquitetura de novas soluções com decisões técnicas estratégicas" ], "technologies": [ "PHP", "Laravel", "JavaScript", "MySQL", "IoT", "APIs REST" ], "featured": true } ], "projects": [ { "id": "sev-modaintima", "kind": "cliente", "title": "SEV Moda Íntima", "subtitle": "Catálogo digital e loja virtual", "description": "Loja virtual completa desenvolvida com Next.js App Router, TypeScript, Prisma e Tailwind CSS. Inclui vitrine pública com experiência cinematográfica, sistema de pedidos via WhatsApp, área administrativa e busca inteligente com ranking de relevância.", "longDescription": "Catálogo digital avançado com multi-filtros, busca inteligente com ranking de relevância e integração híbrida de geocodificação. Inclui modo escuro, animações fluidas com Framer Motion e área administrativa completa para produtos, estoque e pedidos.", "technologies": [ "Next.js 16", "TypeScript", "PostgreSQL", "Prisma", "Tailwind CSS 4", "Framer Motion" ], "features": [ "Vitrine pública cinematográfica", "Multi-filtro e busca inteligente", "Integração de pedidos via WhatsApp", "Cálculo de frete por distância", "Painel Administrativo completo", "Gestão de estoque por tamanho" ], "category": "loja virtual", "level": "senior", "status": "Em Produção", "demoUrl": "https://sevmodaintima.com.br", "githubUrl": "", "badges": ["Loja virtual", "Em Produção"], "featured": true, "metrics": { "complexity": 5, "teamSize": "Individual" } }, { "id": "lavacao-047", "kind": "cliente", "title": "Lavação 047", "subtitle": "Site e painel para lavação automotiva", "description": "Site da Lavação 047, em Garuva-SC, com tabela de preços por porte do veículo, pedido direto pelo WhatsApp, mapa de localização e painel do dono para editar preços, textos e fotos sem nova publicação.", "longDescription": "Página em Next.js 16 com cena de rolagem do sujo ao brilho, galeria de trabalhos por serviço e perguntas frequentes montadas a partir dos dados reais do negócio. O conteúdo salvo no painel alimenta a página, os dados estruturados, o sitemap e o cartão de compartilhamento. Respeita a preferência do sistema por menos movimento e guarda conteúdo e imagens em Redis e Blob privado, com arquivo local como alternativa.", "technologies": [ "Next.js 16", "React 19", "TypeScript", "Tailwind CSS 4", "Motion", "Upstash Redis", "Vercel Blob" ], "features": [ "Tabela de preços por porte do veículo", "Pedido pelo WhatsApp com mensagem pronta", "Painel do dono para preços, textos, fotos e mapa", "Galeria de trabalhos por serviço", "SEO com JSON-LD, sitemap e llms.txt", "Mapa de localização com OpenStreetMap" ], "category": "site", "level": "senior", "status": "Em Produção", "demoUrl": "https://landing-page-lavacao047.vercel.app", "githubUrl": "", "badges": ["Site e painel", "Em Produção"], "featured": true, "metrics": { "complexity": 4, "teamSize": "Individual" } }, { "id": "nutriscan", "kind": "laboratorio", "title": "NutriScan", "subtitle": "Consulta de produtos por nome e código de barras", "description": "Aplicação web para consultar produtos alimentícios por nome ou código de barras, combinando cache JSON com a API Open Food Facts.", "longDescription": "A busca consulta o cache JSON primeiro e recorre ao Open Food Facts quando faltam resultados. A consulta por código aceita de 8 a 13 dígitos, e a camada de acesso à base diferencia buscas por nome e código, com limite de oito segundos por consulta.", "technologies": [ "Next.js", "TypeScript", "Cache JSON", "Open Food Facts" ], "features": [ "Busca por nome ou código", "Cache JSON consultado antes da API externa", "Consulta ao Open Food Facts quando faltam resultados", "Validação de códigos com 8 a 13 dígitos", "Limite de oito segundos por consulta" ], "category": "aplicação web", "level": "senior", "status": "Em Produção", "demoUrl": "https://nutriscan.evandro.dev.br", "githubUrl": "", "badges": ["Open Food Facts", "Em Produção"], "featured": true, "metrics": { "complexity": 5, "teamSize": "Individual" } }, { "id": "twins-lab", "kind": "laboratorio", "title": "Twins Lab", "subtitle": "Painel ao vivo de um reator simulado", "description": "Protótipo de gêmeo digital industrial com autenticação, simulador de reator, persistência MongoDB e transmissão de eventos do servidor (SSE) a cada dois segundos.", "longDescription": "A rota exige sessão do NextAuth antes de abrir a transmissão SSE. O simulador salva dados e estado no MongoDB e notifica clientes quando execução ou cenário mudam.", "technologies": ["Next.js", "TypeScript", "NextAuth", "MongoDB", "SSE"], "features": [ "Autenticação com NextAuth", "Simulador de reator", "Persistência no MongoDB", "Transmissão SSE a cada dois segundos" ], "category": "IoT", "level": "senior", "status": "Protótipo", "githubUrl": "", "badges": ["IoT", "SSE", "Protótipo"], "featured": true, "metrics": { "complexity": 5, "teamSize": "Individual" } }, { "id": "reddit-explorer", "kind": "laboratorio", "title": "Reddit Posts Explorer", "subtitle": "Posts de um fórum de IA, filtrados por período", "description": "Aplicação Astro SSR que coleta os posts em alta do r/artificial pela API pública do Reddit, grava no MongoDB sem duplicar, pelo id, e permite filtrar por período e ordenar por votos ou comentários.", "longDescription": "O serviço consulta r/artificial/hot.json e grava os posts em lote, atualizando os existentes em vez de duplicar. O endpoint de filtro valida as datas e o campo de ordenação.", "technologies": [ "Astro", "MongoDB", "Mongoose", "TypeScript", "API do Reddit" ], "features": [ "Coleta dos posts em alta do r/artificial", "Gravação por id no MongoDB, sem duplicar", "Filtro por período", "Ordenação por votos ou comentários", "API própria com validação de parâmetros" ], "category": "integração com API", "level": "pleno", "status": "Concluído", "demoUrl": null, "githubUrl": "", "badges": ["Integração com API", "MongoDB", "Concluído"], "featured": true, "metrics": { "complexity": 3, "teamSize": "Individual" } }, { "id": "sc-plus", "kind": "cliente", "title": "SC Plus Aquicultura", "subtitle": "Site institucional com áreas, projetos e contato", "description": "Página institucional em Next.js 15, React 19 e Tailwind CSS 4, com metadados e dados estruturados para indexação.", "longDescription": "Site institucional em Next.js 15 com React 19 e Tailwind CSS 4. A página publica título, descrição, URL canônica, imagem social e dados estruturados.", "technologies": [ "Next.js 15", "React 19", "Tailwind CSS 4", "TypeScript" ], "features": [ "Página institucional", "Metadados e URL canônica", "Dados estruturados" ], "category": "site", "level": "pleno", "status": "Concluído", "demoUrl": "https://scplus.evandro.dev.br", "githubUrl": "", "badges": ["Página institucional", "Next.js 15"], "featured": true, "metrics": { "complexity": 2, "teamSize": "Individual" } }, { "id": "gcc-installer", "kind": "laboratorio", "title": "MinGW GCC Installer", "subtitle": "Instalador do compilador GCC para Windows", "description": "Aplicativo Python com interface tkinter que lê as builds publicadas do MinGW-w64, baixa o pacote .7z escolhido, instala em C:\\mingw64 e adiciona o compilador ao PATH do usuário no registro do Windows.", "longDescription": "A lista de versões vem da API de releases do niXman/mingw-builds-binaries, com as builds ucrt e posix destacadas. A instalação extrai o pacote com o 7-Zip, move para C:\\mingw64 e renomeia mingw32-make.exe para make.exe. Feito para Windows, com o 7-Zip no caminho padrão.", "technologies": ["Python", "Tkinter", "Win32 API", "GitHub API", "7-Zip"], "features": [ "Lista as builds publicadas do MinGW-w64", "Destaca builds ucrt e posix", "Baixa e instala em C:\\mingw64", "Adiciona o compilador ao PATH do usuário", "Testes do núcleo (23)" ], "category": "aplicativo desktop", "level": "pleno", "status": "Concluído", "demoUrl": null, "githubUrl": "", "badges": ["Desktop", "Windows", "Concluído"], "featured": true, "metrics": { "complexity": 4, "teamSize": "Individual" } }, { "id": "as-servicos", "kind": "cliente", "title": "AS Serviços", "subtitle": "Site institucional com cena 3D na rolagem", "description": "Site institucional em Next.js 16 com cena Three.js gerada em código: uma casa desenhada em linhas e uma placa-mãe ligadas ao progresso da rolagem.", "longDescription": "O motor monta casa, instalação elétrica e placa-mãe com geometrias e linhas do Three.js. O canvas converte a rolagem em progresso de 0 a 1, e a qualidade se adapta conforme WebGL, preferência por menos movimento, economia de dados, conexão e capacidade do dispositivo.", "technologies": ["Next.js 16", "TypeScript", "Three.js"], "features": [ "Casa, instalação elétrica e placa-mãe geradas com Three.js", "Rolagem convertida em progresso de 0 a 1", "Qualidade em quatro níveis: estático, baixo, médio ou alto" ], "category": "site", "level": "senior", "status": "Concluído", "demoUrl": null, "githubUrl": "", "badges": ["Three.js", "WebGL", "Concluído"], "featured": true, "metrics": { "complexity": 5, "teamSize": "Em equipe" } }, { "id": "julia-beauty", "kind": "cliente", "title": "Julia Beauty", "subtitle": "Site de estúdio de extensão de cílios", "description": "Site estático do estúdio de extensão de cílios da lash designer Julia, em Camboriú (SC), feito em HTML, CSS e JavaScript sem build: simulador de efeito no olho, painel de fotos que troca com a rolagem e agendamento pelo WhatsApp.", "longDescription": "Página única com SEO local: Open Graph, dados estruturados JSON-LD (BeautySalon e FAQPage), sitemap, robots.txt e llms.txt. O deploy na Vercel roda pelo Gitea Actions a cada push. Medido antes da publicação, o Lighthouse no celular deu 100 em desempenho, acessibilidade, boas práticas e SEO.", "technologies": [ "HTML", "CSS", "JavaScript", "JSON-LD", "Vercel", "Gitea Actions" ], "features": [ "Simulador de efeito no olho", "Painel de fotos que troca com a rolagem", "Agendamento pelo WhatsApp com mensagem pronta", "SEO local com JSON-LD, sitemap e llms.txt", "Deploy na Vercel por Gitea Actions" ], "category": "site", "level": "pleno", "status": "Em Produção", "demoUrl": "https://juliabeauty.com.br", "githubUrl": "", "badges": ["Site estático", "Em Produção"], "featured": true, "metrics": { "complexity": 3, "teamSize": "Individual" } } ], "skills": { "technical": [ { "category": "Frontend", "icon": "Code", "color": "text-blue-400", "bgColor": "bg-blue-500/20", "skills": [ "React.js & Next.js", "Angular", "TypeScript & JavaScript", "Tailwind CSS", "HTML5 & CSS3" ] }, { "category": "Backend", "icon": "Database", "color": "text-blue-400", "bgColor": "bg-blue-500/20", "skills": [ "Node.js", "PHP", "Laravel", "MySQL", "PostgreSQL", "Python", "APIs RESTful", "Firebase" ] }, { "category": "DevOps e ferramentas", "icon": "GitBranch", "color": "text-blue-400", "bgColor": "bg-blue-500/20", "skills": ["GitHub Actions", "Git", "Vercel", "Docker", "Cloudflare"] }, { "category": "Foco", "icon": "Cpu", "color": "text-blue-400", "bgColor": "bg-blue-500/20", "skills": [ "Computação em nuvem", "Inteligência Artificial", "IoT", "Energia Renovável" ] } ], "soft": [ { "skill": "Comunicação", "level": 90 }, { "skill": "Trabalho em Equipe", "level": 85 }, { "skill": "Resolução de Problemas", "level": 95 }, { "skill": "Aprendizado Contínuo", "level": 90 }, { "skill": "Adaptabilidade", "level": 85 } ] }, "contact": { "email": "evandrofonsecajunior@gmail.com", "phone": "Disponível pelo botão de WhatsApp", "whatsapp": "Disponível pelo botão de WhatsApp", "linkedin": "https://www.linkedin.com/in/evandrodevbr/", "location": "Garuva, Santa Catarina, Brasil" }, "social": [ { "name": "LinkedIn", "url": "https://www.linkedin.com/in/evandrodevbr/", "icon": "linkedin" }, { "name": "Email", "url": "mailto:evandrofonsecajunior@gmail.com", "icon": "mail" } ] }