Pular para o conteúdo

Rafael Almeida
Currículo
Fale comigo

Disponível para estágio em desenvolvimento

RafaelAlmeida

Coordenador de T.I. na Jr.FEICiência da Computação no Centro Universitário FEI, 5º de 8 ciclos

Respondo por todas as camadas de um sistema: a interface, as regras de negócio, o banco de dados, o servidor e o time que constrói tudo isso.

Rafael Almeida de braços cruzados, vestindo a camisa polo da Jr.FEI.
Cargo
Coordenador de T.I.Jr.FEI, empresa júnior da FEI
Formação
5º de 8 ciclosCiência da Computação, FEI
Gestão
2 projetos gerenciadossite premiado e portal interno
Back-end
2 APIs na QI TechBootcamp e Hackathon 2026
Código
Cerca de 20.000 linhassomando Jr.FEI e faculdade
Reconhecimento
Melhor Projeto InternoPrêmio Júnior 2025
01Sobre

Programar, coordenar e manter tudo no ar.

Antes da faculdade, eu nunca tinha escrito uma linha de código. Hoje coordeno a tecnologia de uma empresa júnior com mais de 25 anos de história: lidero o time que desenvolve os sistemas internos e respondo pela infraestrutura que mantém tudo funcionando.

Numa empresa júnior não existe uma caixa só. Em vez de escolher um único caminho, aprendi a transitar entre desenvolvimento, gestão e infraestrutura. Foi assim que aprendi a estimar prazo olhando o código e a explicar custo técnico para as outras áreas da empresa.

Como eu atuo

Desenvolvimento

Entrego o fluxo inteiro: a tela que o usuário vê, a regra que decide o que acontece e a consulta que grava no banco.

  • PHP e SQL nos sistemas da empresa
  • Python com FastAPI e PostgreSQL
  • Java com MVC, DAO e transações
  • React Native com Firebase
  • C e Python na base algorítmica

Gestão e liderança

Gerenciei o Site Empresarial logo que entrei na Jr.FEI e hoje gerencio o Portal Interno 3.0. Distribuo o que cabe a cada um, destravo quem empacou e garanto que a entrega saia no prazo.

  • Gerência de projetos
  • Prioridade das demandas de T.I.
  • Padrão de código e revisão
  • Apoio a quem está começando

Infraestrutura

O ambiente tecnológico da empresa passa por mim. Quando um site sai do ar ou um e-mail para de chegar, é o meu telefone que toca.

  • Hospedagem e cPanel
  • Publicação e manutenção
  • E-mails corporativos e domínios
  • Continuidade do que já roda

Formação

Bacharelado em Ciência da ComputaçãoCentro Universitário FEI

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8

4 ciclos concluídos e o 5º em andamento: metade do curso já concluída.

  • Algoritmos e estruturas de dados
  • Orientação a objetos
  • Arquitetura de software
  • Banco de dados e modelagem
  • Front-end e experiência do usuário
  • Desenvolvimento mobile

Nível técnico

  • PHPIntermediário a avançadoSistemas internos e Portal do Cliente, na Jr.FEI
  • SQLIntermediário a avançadoBancos da Jr.FEI, PostgreSQL no FEIFood e nas APIs da QI Tech
  • Git e GitHubIntermediário a avançadoVersionamento e revisão de código do time
  • MobileIntermediárioGymFEI, em React Native com Firebase
  • JavaIntermediárioFEIFood, com MVC, DAO e transações
  • PythonIntermediárioAPIs do Bootcamp e do Hackathon QI Tech, com FastAPI, e a Exchange de Criptomoedas
  • CBásico a intermediárioDisciplinas de programação estruturada

IdiomasPortuguês nativo e inglês intermediário.

02Jr.FEI

Coordenação de T.I. na Jr.FEI

Não é trabalho de sala de aula: é empresa de verdade, com cliente, prazo e sistema no ar.

Área
Tecnologia da Informação
Escopo
Time, sistemas internos e infraestrutura
Ecossistema
MEJ e FEJESP
Projetos
4 frentes, 2 sob minha gerência

O que a coordenação envolve

  • Lidero o time de desenvolvimento

    Distribuo demandas conforme o nível de cada pessoa, dou apoio técnico no que trava e acompanho até a entrega sair.

  • Gerencio projetos e priorizo as demandas de T.I.

    Decido o que a área faz primeiro, defino escopo e prazo de cada frente e traduzo isso em tarefas concretas para o time. Hoje estou à frente do Portal Interno 3.0.

  • Defino os padrões de desenvolvimento

    Estabeleço como se escreve e se entrega código na empresa e reviso front-end e back-end para manter a mesma régua em todo projeto.

  • Administro a infraestrutura

    Hospedagem, cPanel, e-mails corporativos, publicação e manutenção do que já está no ar, incluindo o SICH, o sistema que contabiliza as horas dos membros.

  • Sou o ponto de apoio técnico interno

    Quando outra área precisa de um acesso, uma ferramenta ou um sistema no ar, a demanda chega em mim e vira uma decisão técnica viável.

Rafael e outros seis membros da Jr.FEI lado a lado no evento Recruta FEI.
Com parte do time da Jr.FEI no Recruta FEI.

Projetos na Jr.FEI

Quatro frentes, duas delas sob a minha gerência: o site premiado, que gerenciei como consultor júnior, e o portal interno, que gerencio como coordenador.

01 / 04Gerenciado por mim e premiado

Site Empresarial da Jr.FEI

Gerenciei o projeto como consultor júnior

Melhor Projeto Interno do Ano, Prêmio Júnior 2025

O site institucional é o primeiro contato de quem quer contratar a Jr.FEI, e a versão anterior não sustentava mais esse papel. O projeto foi refazê-lo do zero: uma vitrine que explicasse quem é a empresa, o que ela vende e por que 25 anos de história importam para quem está decidindo fechar um contrato.

Assumi a gerência logo depois de entrar na Jr.FEI, ainda como consultor júnior. Meu papel não foi escrever a maior parte do código, e sim conduzir o projeto: definir o escopo com a diretoria, montar e distribuir o trabalho no time, acompanhar o prazo, revisar as entregas e responder pela publicação final.

Página inicial: a primeira impressão de quem quer contratar a Jr.FEI.

Meu papel
Gerente do projeto
Cargo na época
Consultor júnior
Resultado
Levou à coordenação
  • Escopo e timeLevantei o que a empresa precisava mostrar, quebrei em frentes e distribuí entre os membros conforme o nível de cada um.
  • Identidade em cada seçãoHome, serviços e cultura ganharam abertura própria, com a mesma linguagem visual do começo ao fim.
  • Serviços por áreaMarketing, Tecnologia e Produção, cada frente com a sua página e a sua chamada.
  • Publicação e manutençãoA entrega não acabou no lançamento: o site segue hospedado sob a minha responsabilidade.
  • Gestão de projeto
  • HTML
  • CSS
  • JavaScript

02 / 04Gerenciado por mim, em desenvolvimento

Portal Interno 3.0

Gerencio o projeto como Coordenador de T.I.

O novo portal da empresa reúne em um só lugar as ferramentas que os membros usam no dia a dia, com login único integrado ao SICH, o sistema que contabiliza as horas dos membros.

É a minha segunda gerência na Jr.FEI, agora como coordenador. Conduzi um brainstorming com as áreas para levantar o escopo, que virou um documento de planejamento formal com as ferramentas previstas e as regras de acesso.

  • SICH
  • CRM
  • Kanban
  • Documentos
  • Videoaulas
  • Reembolso
  • Pontuação
  • Rescisão
  • Membros em destaque
  • Projetos
  • Eventos
  • Metas

Página inicial do portal: atalhos para as ferramentas e os membros em destaque do mês.

Meu papel
Gerente do projeto
Cargo
Coordenador de T.I.
Situação
Em desenvolvimento
Controle de acesso em 4 níveis

Cada pessoa vê e edita só o que faz sentido para o cargo dela.

  1. 1MembroSomente leitura
  2. 2CoordenadorEdita a própria coordenadoria
  3. 3Coordenador de T.I.Gestão técnica do portal
  4. 4Diretoria e presidênciaAcesso total
  • Gestão de projeto
  • PHP
  • SQL

03 / 04Sistema interno

Portal do Cliente

O sistema que a Jr.FEI usa para conduzir os projetos que vende. Ele existe porque o acompanhamento dos contratos vivia espalhado entre planilhas, grupos de mensagem e e-mail, e ninguém conseguia responder, num lugar só, em que pé estava cada entrega.

São dois lados na mesma base. A empresa gerencia projetos, prazos, responsáveis, chamados, usuários e permissões; o cliente acompanha o andamento, os documentos, o financeiro e o suporte do que contratou.

  • PHP
  • SQL
  • JavaScript
  • CSS

Visão do gerente: indicadores da carteira e a lista de projetos com status, saúde e prazo.

Meu papel
Desenvolvimento
Escopo
Sistema interno
Acesso
Cliente e gerente
  • Painel com a saúde da carteiraProjetos em andamento, em risco, atrasados, concluídos nos últimos 30 dias e sem responsável, cada indicador levando à lista filtrada.
  • Dois níveis de acessoGerentes e clientes veem telas diferentes, e a visibilidade de cada projeto é controlada item a item.
  • Documentos e financeiroContratos, propostas, relatórios e entregas no mesmo lugar, com busca por projeto, categoria e período.
  • Chamados de suporteA demanda do cliente entra pelo sistema e fica registrada, em vez de se perder numa conversa.

04 / 04Cliente externo

Shopping dos Queijos

Solução web completa para um cliente externo, da interface ao banco de dados, incluindo as regras de negócio e a publicação em servidor.

Meu papel
Desenvolvimento
Escopo
Interface e back-end
Entrega
Publicado em servidor
  • PHP
  • SQL
  • HTML
  • CSS
  • JavaScript
  1. Interface
    o que o cliente vê
    feito por mim
  2. Regras de negócio
    o que decide cada ação
    feito por mim
  3. Banco de dados
    onde o dado fica salvo
    feito por mim
  4. Servidor
    onde tudo fica publicado
    feito por mim
Todas as camadas, do começo ao fim.

Foi a entrega em que atravessei todas as camadas sozinho: do que o cliente vê até onde o dado fica salvo. É o projeto que melhor mostra o tipo de desenvolvedor que eu quero ser.

03QI Tech

Duas APIs financeiras, testadas como produção.

No Bootcamp e no Hackathon da QI Tech, em dupla com Guilherme Silva Xavier, construí o back-end de dois problemas reais do mercado financeiro: um banco digital e um motor antifraude de Pix. Python com FastAPI, PostgreSQL, contratos em JSON Schema e tudo de pé com um único comando do Docker.

  • 2APIs em Python com FastAPI
  • 320+testes automatizados, rodando em container
  • 22tabelas em PostgreSQL, com as regras garantidas por CHECK e UNIQUE
  • ~6,8 millinhas de código-fonte, fora os testes

Bootcamp QI Tech 2026 · 30 horasEm dupla com Guilherme Silva Xavier

Banco digital: conta, Pix e extrato numa API

A implementação da RFC do time: cadastro de cliente com classificação Ouro, Prata ou Bloqueado a partir da Receita e da Serasa, conta protegida por senha, depósito, transferência e Pix com tarifa, limite diário e verificação de renda, e extrato paginado. Cada operação acontece uma vez só, mesmo com pedidos simultâneos ou repetidos.

  • 14rotas
  • 11tabelas
  • 148testes
  • ~25 ssuíte em paralelo
  • Python
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • JSON Schema
  • bcrypt
  • Docker
  • pytest

Passeio pela API

Simulação no navegador, com requisições e respostas no formato da API.

Requisição
Resposta

saldo da Maria R$ 0,00
  • Cada operação acontece uma vez só

    O transaction_key é gerado por quem chama. Reenvio com os mesmos dados devolve a operação original (200); com outros dados, a resposta é 409.

  • Concorrência sem deadlock

    As contas são travadas com SELECT … FOR UPDATE sempre em ordem crescente de id: A→B e B→A ao mesmo tempo nunca ficam esperando um pelo outro.

  • O banco garante o que o código promete

    Saldo nunca negativo, CPF e chave Pix únicos, origem diferente do destino: CHECK e UNIQUE no PostgreSQL, mesmo que o código erre. O saldo é a soma dos lançamentos.

  • Erros que explicam

    Cada erro tem código próprio (QIT001022, saldo insuficiente), status HTTP coerente e uma tradução em português que diz o que corrigir, sem nunca devolver a senha.

src/controllers/base_account_controller.py
def _lock_accounts(self, *accounts: Account) -> None:
    # sempre na mesma ordem: quem chega depois espera,
    # e duas transferências cruzadas nunca se travam
    account_ids = sorted({account.id for account in accounts})

    for account_id in account_ids:
        self.account_repository.lock(account_id)  # FOR UPDATE

Hackathon QI Tech 2026Grupo 15, com Guilherme Silva Xavier

Motor antifraude de Pix que explica cada decisão

A API recebe um Pix, compara com o histórico daquele cliente e daquele destino e devolve approved, two_factor_required ou rejected, com o motivo de cada ponto de risco. A pergunta não é "isso é estranho?", e sim "isso é estranho para esta pessoa?".

  • 3rotas
  • 25regras
  • 5métricas
  • 170+testes
  • Python
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • JSON Schema
  • Docker
  • pytest

Simulador do motor de decisão

Escolha um cenário ou ligue os sinais. A conta é a mesma do motor.

Cenários do projeto
Horário teto 35
Valor teto 30
Velocidade teto 20
Destino teto 15
Origem teto 10
Risco herdado últimas 24 h
Fato e autenticação fora da soma
approvedreason: risk_score
  • horário0/35
  • valor0/30
  • velocidade0/20
  • destino0/15
  • origem0/10

A linha tracejada marca 40, onde começa o 2FA: nenhuma métrica chega lá sozinha.


            

Pontos, tetos, faixas e frases são os do motor (risk_rules.py e database.sql); as condições de cada sinal aparecem resumidas em opções.

  • Nenhuma métrica decide sozinha

    O risco é a soma de cinco métricas, e a maior vale 35, abaixo dos 40 do 2FA. Não é só intenção: é um CHECK na tabela risk_metric.

  • Mediana, e não média

    Um único Pix fora da curva, como a compra do carro, puxaria a média e deixaria o cliente imune às regras de valor por 90 dias. A mediana não se mexe.

  • O risco tem prazo de validade

    Um Pix arriscado deixa risco para os seguintes por 24 horas: nada se o 2FA foi confirmado, tudo se falhou, metade nos outros casos. É isso que pega quem insiste.

  • Falta de dado nunca reprova

    A consulta à Receita tem prazo de 0,5 s e cache de 24 h. Fora do ar, o Pix segue com as outras métricas e a falha fica registrada na resposta.

  1. Já chegou? O mesmo id com o mesmo conteúdo devolve a análise original; com outro, 409.
  2. Consulta a Receita antes da trava, para a trava nunca esperar a rede.
  3. Trava o pagador: Pix simultâneos do mesmo cliente passam um por vez.
  4. Junta os fatos de 90 dias do pagador, do destino, do aparelho e do IP.
  5. Mede e herda: sinais viram métricas com teto, e somam o risco ainda válido.
  6. Decide e grava tudo: o Pix, a decisão e cada sinal, inclusive quando reprova.
04Faculdade

Da primeira linha de código a um app completo

Na ordem em que construí, para você acompanhar a curva: do primeiro programa que grava num arquivo de texto a um sistema com banco relacional, transação e rollback, e depois a um app mobile com autenticação na nuvem. O código de todos está aberto no GitHub.

Arraste a escultura para o lado para trocar de projeto.

1º ciclo

Exchange de Criptomoedas

Meu primeiro projeto, em Python

Uma corretora de criptomoedas em console, onde o investidor troca real por Bitcoin, Ethereum ou Ripple. Login por CPF e senha, depósito, saque, compra e venda com cotação que muda a cada consulta, saldo separado por moeda e extrato com data e hora de cada operação.

  • 19funções
  • 3criptomoedas
Login, menu de operações e consulta de saldo.
Destaque técnico

Cada investidor tem os próprios arquivos de saldo e de extrato, nomeados pelo CPF. Foi aqui que entendi que um programa precisa lembrar do que aconteceu depois de fechar.

  • Python
  • Persistência em arquivo
  • Programação estruturada

3º ciclo

FEIFood

Sistema de delivery em Java

Um delivery no estilo iFood, do cadastro do usuário até a avaliação do pedido entregue. O que estava sendo avaliado não era a tela, e sim como o código se organizava por trás dela: MVC com padrão DAO, em que as telas em Swing chamam um controller e só o DAO sabe escrever SQL.

  • 5tabelas relacionais
  • 6telas
  • 9classes de modelo
  • Busca com JOIN. Procurar um prato varre o cardápio de todos os restaurantes de uma vez.
  • Carrinho que agrupa. Três unidades do mesmo item viram uma linha "3x", em vez de três linhas repetidas.
  • Imposto por interface. Comida e bebida herdam de uma classe abstrata, e a bebida alcoólica implementa a interface de imposto: o cálculo mora no tipo que precisa dele.
  • Histórico completo. Cancelar, excluir e avaliar o pedido de 0 a 5.
Finalização do pedido, versão simplificada
conexao.setAutoCommit(false);
try {
    int idPedido = pedidoDAO.inserirCabecalho(pedido);
    for (ItemPedido item : pedido.getItens()) {
        itemDAO.inserir(idPedido, item);
    }
    conexao.commit();
} catch (SQLException e) {
    conexao.rollback(); // o banco nunca fica com meio pedido
}
  • Java
  • Swing
  • PostgreSQL
  • JDBC
  • MVC e DAO

4º ciclo

GymFEI

App mobile de treinos de academia

Nasceu de um app que eu já tinha feito na disciplina de Front-End, mas que era só interface, sem nada por trás. Refiz do zero em React Native com Expo, agora com autenticação de verdade, banco na nuvem e um app que continua funcionando depois de fechar.

  • 12telas
  • 3coleções no banco
  • 2perfis de usuário
Gravação de tela do GymFEI na área do aluno: ele abre um treino de costas e conclui os exercícios um a um até o treino ser finalizado.
Área do alunoAbre o treino e conclui os exercícios um a um.
Gravação de tela do GymFEI na área do personal: ele cadastra um treino de costas com grupo muscular, exercícios e objetivo.
Área do personalCadastra o treino com grupo muscular, exercícios e objetivo.
Destaque técnico

Treino excluído não some do banco: vai para uma lixeira e pode ser restaurado depois. É soft delete, a mesma decisão que sistemas de produção tomam para não perder dado por clique errado.

  • Firebase Auth e Firestore para login e persistência, com AsyncStorage guardando a sessão em cache no aparelho.
  • Navegação por stack, com as rotas do personal e as do aluno separadas.
  • Histórico por grupo muscular, para o aluno enxergar a evolução em vez de só marcar treino feito.
  • React Native
  • Expo
  • Firebase
  • AsyncStorage

O portfólio somado

Nunca me fixei numa stack só. Fui de um programa de console em Python a sistemas web em produção, a um app mobile com banco na nuvem e a APIs financeiras com testes de concorrência, e é por isso que entro numa base de código nova sem travar.

  • ~20 millinhas de código, somando Jr.FEI e faculdade
  • 4projetos na Jr.FEI
  • 2APIs na QI Tech, com 320+ testes
  • 3projetos acadêmicos com código aberto
  • 6linguagens no dia a dia

Distribuição por linguagem nos três projetos acadêmicos acima. O código da Jr.FEI é privado e é quase todo em PHP e SQL; as APIs da QI Tech são em Python.

05Trajetória

Como cheguei até aqui

Da primeira aula de lógica à coordenação de T.I. e às APIs da QI Tech, capítulo por capítulo.

  1. Início da graduação

    O primeiro contato com programação

    Lógica, algoritmos, linguagens e estruturas de dados: tudo era novidade. Estudei bastante, errei muito e aprendi com os meus próprios erros. Foi nesse processo que descobri o quanto gostava de programar.

  2. 1º ciclo

    A primeira aplicação que funcionou

    A exchange de criptomoedas em Python foi a primeira vez que transformei o que estava aprendendo em algo que realmente funcionava. A partir dali, programação deixou de ser só uma disciplina e virou o que eu queria para a minha vida profissional.

  3. Entrada na Jr.FEI

    Consultor júnior de T.I.

    Pela primeira vez, coloquei meus conhecimentos em prática em projetos reais, com equipe, prazos e problemas que não tinham resposta pronta. Foi ali que aprendi que tecnologia vai muito além do código, e que desenvolvi comunicação, organização e trabalho em equipe.

  4. Primeira gerência

    Gerente do Site Empresarial

    Eu tinha acabado de entrar na Jr.FEI, ainda como consultor júnior, quando assumi a gerência do novo site institucional: escopo com a diretoria, distribuição do trabalho no time, prazo, revisão e publicação final.

    Melhor Projeto Interno do Ano, Prêmio Júnior 2025

    Na cerimônia do Prêmio Júnior, em que o Site Empresarial foi premiado.
  5. Promoção

    Consultor sênior

    Na Jr.FEI, todo mundo começa como consultor júnior. Com o tempo, passei a assumir novas responsabilidades e fui promovido a consultor sênior.

    Registro da promoção a consultor sênior.
  6. Efetivação

    Coordenador de T.I.

    A gerência do site foi o que me trouxe até aqui. Me preparar para assumir a coordenação foi um dos maiores desafios da minha trajetória. Hoje, além de atuar nos projetos, organizo a área, compartilho conhecimento e capacito quem está começando na programação.

    Apresentando para o time da Jr.FEI.
  7. Segunda gerência

    Gerente do Portal Interno 3.0

    Já como coordenador, assumi a gerência do novo portal da empresa, que reúne as ferramentas internas em um só lugar, com login único integrado ao SICH.

  8. Bootcamp QI Tech · set. a out. de 2026

    Um banco digital do zero, no padrão de uma fintech

    A primeira vez que construí back-end do jeito que uma fintech constrói: uma RFC escrita antes do código, contratos em JSON Schema, PostgreSQL e Docker. Em dupla com Guilherme Silva Xavier, entregamos a API de um banco digital, do cadastro ao Pix, em que cada operação acontece uma vez só, com 148 testes rodando em paralelo.

    Certificado de Formação em Tecnologia, 30 horas

    Com a turma do Bootcamp e o certificado de conclusão.
  9. Hackathon QI Tech 2026

    Um motor antifraude de Pix

    No hackathon, a dupla se repetiu e o problema mudou: decidir, a cada Pix, se ele é aprovado, pede segundo fator ou é reprovado, e explicar o porquê. O motor compara cada Pix com o histórico do próprio cliente e foi construído com funções puras, para a mesma entrada dar sempre a mesma decisão.

    25 regras, 5 métricas e mais de 170 testes

  10. Agora

    O próximo capítulo

    No 5º ciclo de Ciência da Computação e em busca de um estágio em desenvolvimento, para levar essa bagagem a uma equipe maior. Ainda tenho muito a aprender, e é justamente isso que torna essa trajetória tão especial.

    Vamos conversar
06Contato

Vamos conversar sobre um estágio?

Se você chegou até aqui, já viu o que eu construo e como eu penso. O próximo passo é simples: me chame. Moro em Ribeirão Pires, na Grande São Paulo, e estou disponível para vagas de desenvolvimento web, mobile ou back-end.