Rafael GuedesDesenvolvedor backend Java.

Desenvolvo APIs, integrações e processamento assíncrono com Java, Spring Boot, PostgreSQL, Kafka e RabbitMQ. Na Ultracar, investigo problemas, proponho soluções e acompanho as entregas até produção, junto à equipe.

01 /

Projetos em foco

Projetos pessoais para explorar decisões de backend na prática. Código, documentação e instruções de execução disponíveis nos repositórios.

01 — PROCESSAMENTO DE EVENTOS

Pedidos com
Java e Kafka

Publicar eventos de pedidos e manter uma projeção consultável no PostgreSQL, tratando reentregas e falhas.

JavaSpring BootKafkaPostgreSQL
Decisões e limites do projeto
  • Identificação de eventos já processados e atualização transacional da projeção.
  • Retries para falhas transitórias e encaminhamento de falhas permanentes para DLT.
  • Entrega at-least-once: a idempotência no banco não equivale a uma transação distribuída entre Kafka e PostgreSQL.
Ver código e documentação ↗
02 — CONSISTÊNCIA E CONCORRÊNCIA

Transferências
idempotentes

Receber solicitações de transferência e processá-las de forma assíncrona, considerando repetição de requisições e concorrência.

JavaSpring BootPostgreSQLGatling
Decisões e limites do projeto
  • Chave de idempotência para identificar solicitações repetidas.
  • Processamento em background, com controle de concorrência no acesso ao banco.
  • Cenários de carga com Gatling e resultados locais documentados. Os resultados não representam uma garantia de capacidade em produção.
Ver código e documentação ↗
03 — PERFORMANCE E DADOS

Exportação de
500 mil registros

Comparar a exportação de dados carregados em uma lista com a leitura incremental via JDBC Streaming.

JavaJDBCPostgreSQLCSV
Experimento e limites da medição
  • Leitura incremental com fetch size e escrita do CSV com BufferedWriter.
  • Experimento local documentado com 500 mil registros, comparando tempo e uso de heap.
  • Os valores de heap são amostras durante a execução; não comprovam, isoladamente, o pico de memória ou o desempenho em outros ambientes.
Ver código e documentação ↗

Também exploro processamento de webhooks com Go e RabbitMQ no Go Webhook Processor ↗. Veja outros estudos no meu GitHub ↗.

02 /

Experiência profissional

Minha trajetória começou com estágios em Java. Após um período em outras atividades profissionais, retomei o desenvolvimento atendendo clientes e aprofundei minha formação até chegar à atuação atual em backend.

NOV 2024 — ATUAL
Remoto · empresa em Belo Horizonte

Desenvolvedor Backend Java

Ultracar

Desenvolvimento e evolução de um sistema de gestão do setor automotivo. Investigo demandas e incidentes, proponho soluções técnicas e acompanho as entregas até produção em colaboração com a equipe.

  • Contribuição para a integração do WhatsApp ao sistema e para o desenvolvimento da versão freemium.
  • Desenvolvimento de workers e consumers com Kafka e utilização de filas de tarefas com RabbitMQ.
  • APIs REST e microsserviços para clientes, veículos, ordens de serviço, estoque, vendas e financeiro.
  • Integrações fiscais e de pagamento, processamento de XML e documentos fiscais, autenticação e controle de permissões.
JavaSpring BootPostgreSQLKafkaRabbitMQAmazon S3JPA/HibernateLiquibase
JAN 2023 — NOV 2024
Porto Seguro · BA

Desenvolvedor Web Freelancer

Autônomo

Sites e landing pages para locadoras de veículos, do levantamento de necessidades à publicação e suporte. Configuração de catálogos, formulários de contato e solicitações de reserva, acesso ao WhatsApp e acompanhamento de acessos com Google Analytics.

WordPressElementorJavaScriptHTML/CSS
JAN — AGO 2015
Belo Horizonte · MG

Estagiário de Desenvolvimento Java

PUC Minas · Instituto de Ciências Biológicas e da Saúde

Desenvolvi um sistema para disponibilização de certificados de eventos, com verificação da presença registrada no banco de dados. Também desenvolvi o portal institucional do ICBS.

Java / JSPPostgreSQLHTML/CSSJavaScriptWordPress
JAN — JUN 2014
Belo Horizonte · MG

Estagiário de Desenvolvimento Java

Ministério da Saúde

Desenvolvi um sistema de cadastro de bens materiais, como móveis e equipamentos, utilizando Java, JSP e PostgreSQL. Também desenvolvi o site da intranet local com WordPress.

Java / JSPPostgreSQLHTML/CSSJavaScriptWordPress
Outras experiências profissionais

Localiza · Auxiliar de Operações
Dezembro de 2021 a abril de 2023 · Porto Seguro
Conferência, checklist e registro das devoluções de veículos no sistema.

Sada Transportes · Motorista de Pensilina
Novembro de 2018 a junho de 2021 · Betim
Atuação na operação da Sada Transportes na unidade da Fiat.

03 /

Competências técnicas

As ferramentas do trabalho e os temas que aprofundo em projetos próprios.

Backend e persistência

Aplicação profissional em APIs e regras de negócio.

JavaSpring BootAPIs RESTPostgreSQLSQLJPA/HibernateLiquibase

Mensageria e armazenamento

Workers, consumers, filas de tarefas e uso de S3 na Ultracar.

Apache KafkaRabbitMQAmazon S3Processamento assíncrono

Projetos e aprofundamento

Práticas exploradas nos projetos públicos de backend.

JDBC StreamingJUnit / MockitoGatlingDockerIdempotênciaPrometheus / Grafana
04 /

Formação

Graduação em andamento, formação profissional e experiência prática.

EM ANDAMENTO

Análise e Desenvolvimento de Sistemas

Anhanguera

Curso superior de tecnologia. Conclusão prevista para julho de 2027.

MAR 2023 — AGO 2024

Desenvolvimento Web Full Stack

Trybe

Formação profissional com JavaScript, TypeScript, React e Node.js, complementada por eletivas de backend em Java e Python, de três meses cada.

2012 — 2016

Sistemas de Informação

PUC Minas · Betim

Bacharelado cursado até o 7º período. Curso trancado; graduação não concluída.

Formação complementar: AWS Cloud Quest: Cloud Practitioner — Training Badge (dezembro de 2025).
Inglês: leitura e compreensão avançadas, com conversação em desenvolvimento.