Whenes Oliveira

Whenes Oliveira

Engenheiro de SoftwareFull Stack

  • Tubarão, SC, Brasil
  • Consultor de Software na SUPERO

Mais de 10 anos construindo, modernizando e mantendo aplicações corporativas, do backend ao mobile.

Carreira

10 cargos desde 2010 · 4 alocações em clientes pela SUPERO desde 2020
  1. SUPERO Consultor de Software

    HEADconsultoria nov 2020 → atual

    Consultoria de software em diversos projetos e clientes corporativos: backend, frontend, mobile, integrações de sistemas, modernização de legado, troubleshooting e manutenção.

  2. TOTVS Consultor de Software

    set 2023 → ago 2026

    Portal corporativo usado por colaboradores de empresas clientes da TOTVS: gestão de usuários e organizações, fluxos de chamados, novas funcionalidades e migração incremental de funcionalidades legadas.

    Mostrar 8 mudançasOcultar mudanças
    • Contribuí para a modernização gradual de um sistema em que aplicações legadas em Java EE, EJB e Node.js coexistiam com serviços mais novos em Spring Boot e NestJS.
    • Implementei e mantive fluxos de migração baseados em feature flags, para validar as novas implementações antes de migrar os usuários para o novo backend.
    • Desenvolvi APIs REST e integrações com Fluig, Zendesk e TOTVS Centralized Base.
    • Apliquei Adapter Pattern, Inversão de Dependência e Injeção de Dependência para reduzir o acoplamento e facilitar os testes automatizados.
    • Criei anotações customizadas que encapsulam a configuração do Swagger no NestJS, deixando os controllers mais limpos.
    • Testes unitários com JUnit e Jest, com meta mínima de 60% de cobertura, atualizados sempre que o comportamento mudava.
    • Apache Kafka, incluindo chaves de mensagem quando a ordem dos eventos precisava ser preservada.
    • Desenvolvimento assistido por IA com Spec Kit, Claude e GitHub Copilot: revisando, validando, corrigindo e testando o código gerado.
    • Java
    • Spring Boot
    • Node.js
    • NestJS
    • Angular
    • TypeScript
    • Apache Kafka
    • JUnit
    • Jest
  3. Selbetti Consultor de Software

    jul 2022 → ago 2023

    Times de suporte técnico, mobile e aplicações embarcadas: reprodução, depuração e análise de causa raiz de problemas complexos.

    Mostrar 5 mudançasOcultar mudanças
    • Corrigi um problema no algoritmo de dígito verificador de boletos da Caixa Econômica Federal, analisando o fluxo completo de processamento, encontrando a implementação incorreta e validando com a documentação oficial.
    • Desenvolvi um app Android nativo em Kotlin com um fluxo ponta a ponta de listagem de impressoras, passando por uma API em Java e Spring Boot.
    • Recriei o frontend das impressoras Ricoh em HTML, CSS2, JavaScript legado, jQuery e AJAX quando a solução em Angular não conseguia rodar no ambiente da impressora.
    • Liderei a execução técnica da migração de Java 8 para Java 9, entregando a aplicação funcionando na versão alvo.
    • Participei de decisões técnicas para adaptar a solução às restrições de hardware e aos prazos de entrega.
    • Java
    • Spring Boot
    • Java EE
    • Kotlin
    • Android
    • Angular
    • React
    • Flutter
    • C#
    • jQuery
  4. Portonave Consultor de Software

    out 2021 → jun 2022

    Software de apoio às operações portuárias em sistemas desktop, web, mobile e integrados.

    Mostrar 4 mudançasOcultar mudanças
    • APIs REST em Java e Spring Boot; aplicações desktop em Eclipse RCP, SWT e Swing.
    • Apps Android nativos em Java e interfaces web em React, integrados a APIs, serviços e bancos de dados.
    • Mecanismo de persistência de estado que permitia retomar processos de várias etapas interrompidos exatamente na etapa em que pararam.
    • Investiguei problemas de precisão numérica e de representação de valores nos fluxos da aplicação.
    • Java
    • Spring Boot
    • Eclipse RCP
    • SWT
    • Android
    • React
  5. Philips Consultor de Software

    nov 2020 → out 2021

    Sistema de gestão hospitalar Tasy: novas funcionalidades e manutenção de módulos existentes.

    Mostrar 6 mudançasOcultar mudanças
    • Uso intenso de Oracle PL/SQL: procedures, functions, views, triggers e consultas complexas, com regras de negócio implementadas no banco conforme a arquitetura do produto.
    • Participei do desenvolvimento de um fluxo de credenciamento para hospitais que atendem clientes Unimed.
    • Desenvolvi funcionalidades em PL/SQL de ponta a ponta, do entendimento do fluxo de negócio à implementação, depuração, testes e integração com as aplicações consumidoras.
    • Referência técnica em qualidade de código, ajudando desenvolvedores a aplicar SRP, Fail Fast, SOLID e remoção de duplicação.
    • Investiguei bugs reproduzindo fluxos de usuário, analisando logs e depurando a execução da aplicação e do banco de dados.
    • Trabalhei com várias versões do produto: branches, conflitos de merge e pull requests para cada versão aplicável.
    • Java
    • Node.js
    • Angular
    • TypeScript
    • Oracle
    • PL/SQL
    • Jenkins
  6. PostoAki Desenvolvedor de Software

    out 2019 → jan 2021

    Plataforma de fidelidade para redes de postos de combustível: cupons de desconto, integrações com pontos de venda, aplicações web e mobile.

    Mostrar 6 mudançasOcultar mudanças
    • Entreguei funcionalidades de ponta a ponta entre frontend, backend, banco de dados e integrações, incluindo APIs de terceiros e sistemas Linx.
    • Aplicação white-label e multitenant atendendo diferentes redes de postos.
    • Shell scripts automatizando a personalização por cliente: textos, links, configurações, ícones, imagens e identidade visual.
    • Automatizei a preparação, configuração, build e publicação dos apps Android e iOS.
    • Participei de decisões de UX, como priorizar o cupom de desconto ao abrir o app e facilitar a navegação em listas longas de postos.
    • Treinei um desenvolvedor júnior nas atividades e processos do time.
    • Java
    • Spring Boot
    • Angular
    • Ionic
    • Shell
  7. Ateky Suporte Técnico

    jun 2018 → ago 2018

    Suporte remoto a clientes de provedor de internet, diagnosticando conexões lentas ou instáveis a partir da configuração de rede, das informações de sinal e das rotas.

  8. SENAI Desenvolvedor de Software

    mar 2015 → nov 2015

    Sistema web de gestão escolar usado pelas unidades do SENAI.

    Mostrar 3 mudançasOcultar mudanças
    • Funcionalidades em Java Web, Java EE, JSF, JSP, RichFaces e Hibernate; relatórios customizados em SQL e PostgreSQL.
    • Investiguei problemas analisando logs e depurando a aplicação, e corrigi inconsistências de dados para não bloquear processos escolares.
    • Testes JUnit para novas funcionalidades, atualizados sempre que as regras de negócio mudavam.
    • Java EE
    • JSF
    • JSP
    • RichFaces
    • Hibernate
    • PostgreSQL
    • JUnit
  9. Evoluma Estagiário de Desenvolvimento de Software

    jul 2013 → dez 2013

    Aplicação PHP de rastreamento de veículos: cadastros, relatórios, consultas PostgreSQL, correção de bugs e um manual do usuário em PDF.

  10. Laboratório de Projetos de TI, UNISUL Estagiário de Desenvolvimento de Software

    mar 2011 → dez 2011

    Aplicação desktop de controle de estoque de medicamentos e agendamento de consultas, entregue ao Abrigo dos Velhinhos de Tubarão e, segundo o professor orientador, ainda em uso cerca de cinco anos depois.

    Mostrar 3 mudançasOcultar mudanças
    • Acesso ao banco via JDBC com SQL escrito à mão, em estrutura MVC.
    • Controle de instância única com Singleton, impedindo que várias instâncias da aplicação fossem abertas ao mesmo tempo.
    • Indicadores visuais de estoque baixo de medicamentos e de consultas atrasadas; participei da instalação e da entrega na instituição.
    • Java 6
    • SWT
    • GWT
    • JDBC
    • MySQL
  11. Laboratório da Biblioteca, UNISUL Estagiário de Suporte de TI

    root mar 2010 → dez 2010

    Suporte a um laboratório de informática com cerca de 15 estações: conectividade Wi-Fi, endereçamento IP, drivers e hardware.

Cases

Problemas reais, do contexto à solução

Casos que ajudei a solucionar nas empresas e projetos em que atuei. O primeiro é interativo: ligue a flag para acompanhar uma requisição.

Modernização incremental do portal de clientes

TOTVS · via SUPERO · 2023 – 2026

Aplicações legadas em Java EE, EJB e Node.js coexistiam com serviços mais novos em Spring Boot e NestJS enquanto as funcionalidades eram migradas aos poucos. As novas implementações ficavam atrás de feature flags e eram validadas antes de os usuários passarem para o novo backend. Ver o commit da TOTVS no gráfico da carreira.

Portal de clientes cliente
  • Angular
  • TypeScript
Serviços legados flag desligada
  • Java EE
  • EJB
  • Node.js
Serviços modernos flag ligada
  • Spring Boot
  • NestJS

Caminho legado. As requisições vão para os serviços Java EE / EJB dos quais os usuários já dependem.

  • Integrações
  • Fluig
  • Zendesk
  • TOTVS Centralized Base
  • Apache Kafka

A chave da flag e o diagrama são ilustrativos; o padrão de migração vem do projeto.

Frontend embarcado em impressoras Ricoh

Selbetti2022 – 2023

Contexto
Solução para impressoras Ricoh atendida pelo time de aplicações embarcadas, com frontend original em Angular.
Desafio
A versão em Angular não rodava dentro das restrições do ambiente legado da impressora.
Abordagem
Recriei o frontend em HTML, CSS2, JavaScript legado, jQuery e AJAX, e participei das decisões técnicas para adaptar a solução às restrições de hardware e aos prazos de entrega.
  • HTML
  • CSS2
  • JavaScript
  • jQuery
  • AJAX

Dígito verificador de boletos da Caixa

Selbetti2022 – 2023

Contexto
Investigação de problemas complexos de software por reprodução, depuração e análise de causa raiz.
Desafio
Um problema envolvendo o algoritmo de dígito verificador dos boletos da Caixa Econômica Federal.
Abordagem
Analisei o fluxo completo de processamento, identifiquei a implementação incorreta e validei contra a documentação oficial do algoritmo.
Resultado
Problema corrigido na implementação do algoritmo.

Migração de Java 8 para Java 9

Selbetti2022 – 2023

Contexto
Aplicação Java que precisava sair do Java 8 para o Java 9.
Desafio
Problemas de compatibilidade entre as versões.
Abordagem
Liderei a execução técnica da migração, analisando os problemas de compatibilidade.
Resultado
Aplicação entregue funcionando na versão alvo. A experiência depois apoiou as discussões da migração de Java 8 para Java 17 na TOTVS.
  • Java 8
  • Java 9

Personalização automatizada de app white-label

PostoAki2019 – 2021

Contexto
Plataforma de fidelidade white-label e multitenant, com um app atendendo diferentes redes de postos de combustível.
Desafio
Cada rede precisava de textos, links, configurações, ícones, imagens e identidade visual próprios.
Abordagem
Criei shell scripts que automatizam a personalização por cliente e automatizei a preparação, configuração, build e publicação dos apps Android e iOS.
  • Ionic
  • Angular
  • Shell
  • Android
  • iOS

Controle de estoque de medicamentos

UNISUL2011

Contexto
Projeto do Laboratório de Projetos de TI da UNISUL para o Abrigo dos Velhinhos de Tubarão.
Desafio
Controlar o estoque de medicamentos e o agendamento de consultas da instituição.
Abordagem
Aplicação desktop em MVC com acesso ao banco via JDBC e SQL escrito à mão, indicadores visuais de estoque baixo e consultas atrasadas, e bloqueio de múltiplas instâncias com Singleton. Participei da instalação e da entrega.
Resultado
Segundo relato posterior do professor orientador, a aplicação ainda estava em uso cerca de cinco anos depois da entrega.
  • Java 6
  • SWT
  • GWT
  • JDBC
  • MySQL

Projetos

Todos os repositórios públicos no GitHub

Clean Architecture do curso Full Cycle: camadas de domínio, casos de uso e infraestrutura, API Express com Sequelize e SQLite, eventos de domínio e notification pattern. Testes unitários, de integração e e2e com Jest e Supertest.

  • TypeScript
  • 28 arquivos de teste

Monolito modular do curso Full Cycle, com módulos isolados de catálogo, produtos, clientes, pagamento e faturamento sobre entidades e value objects compartilhados.

  • TypeScript
  • 19 arquivos de teste

Arquitetura hexagonal do curso Full Cycle: domínio de produtos com adaptadores de linha de comando, banco SQLite e web, testes e Dockerfile.

  • Go
  • Full Cycle 3.0

Agenda de atendimentos na stack Java web clássica: Servlet, JSP e JDBC com MySQL no Tomcat, em MVC com DAO, BO e DTO para clientes, planos de saúde e procedimentos. Documentada com diagrama do banco, script SQL, Javadoc e screenshots.

  • Java
  • 2021

Habilidades

Conforme o currículo
Backend
  • Java
  • Spring Boot
  • Java EE
  • Node.js
  • NestJS
  • TypeScript
  • REST APIs
  • JPA
  • Hibernate
  • EJB
Frontend
  • Angular
  • React
  • JavaScript
  • HTML5
  • CSS3
  • Ionic
  • JSF
Engenharia
  • MVC
  • Arquitetura em Camadas
  • POO
  • Clean Code
  • SOLID
  • Design Patterns
  • Adapter Pattern
  • Inversão de Dependência
  • Injeção de Dependência
Testes
  • JUnit
  • Jest
  • Mocha/Chai
  • Vitest
  • Cypress
  • Playwright
  • Supertest
  • Testes unitários
  • Testes de integração
Bancos de dados
  • Oracle
  • PostgreSQL
  • SQL Server
  • SQL
  • PL/SQL
Integrações
  • REST
  • RabbitMQ
  • Apache Kafka
Ferramentas
  • Git
  • GitHub
  • Azure DevOps
  • Jenkins
  • Jira
Ágil
  • Scrum
  • Kanban
  • XP
Assistido por IA
  • Spec Kit
  • Claude
  • GitHub Copilot

Formação

Universidade do Sul de Santa Catarina · UNISUL

Incompleto

Ciência da Computação