Desenvolvedor de Software

Marcos Oleniuk

Atuo como analista e desenvolvedor de software na AJRorato, construindo aplicações com Java e React em ambiente corporativo. Fora do dia a dia, trabalho com Go, Python, Node.js e bancos relacionais, e estudo IA aplicada — incluindo fine-tuning de LLM e inferência local.

Java · React
Stack do dia a dia na AJRorato
2027
Conclusão prevista da graduação
LLM local
Fine-tuning + inferência on‑premise
☕ Java + ⚛️ React
marcos.java
// o que eu faço hoje, sem inventar número
record Dev(
    String nome,
    String formacao,
    List<String> stack
) {}

var marcos = new Dev(
    "Marcos Oleniuk",
    "Engenharia de Software",
    List.of("Java", "React",
                 "Go", "Python",
                 "PostgreSQL", "Oracle")
);

// + graduação em andamento, 1 ano restante
// + fine-tuning de LLM rodando local
Sobre

Aprendendo rápido, entregando de verdade.

Sou Marcos Oleniuk, desenvolvedor de software e estudante em final de graduação (conclusão prevista para 2027). Trabalho na AJRorato como analista e desenvolvedor de software, onde uso Java e React no desenvolvimento de aplicações — do entendimento do requisito ao código em produção.

Estar na faculdade enquanto trabalho em software real me deu uma vantagem concreta: aprendo o fundamento na teoria e testo no mesmo dia em um sistema que alguém usa. Isso muda a forma como eu estudo — não fico só no tutorial.

Além do Java e React do dia a dia, tenho base sólida em Go, Python, Node.js, PostgreSQL e Oracle. Atualmente dedico boa parte do tempo a Inteligência Artificial: já fiz fine-tuning de uma LLM e a executo localmente, o que me tirou da posição de "usuário de API" para a de quem entende o que acontece por baixo — tokenização, dataset, treino, quantização e inferência.

Procuro um ambiente onde eu possa crescer técnico, receber code review de verdade e assumir responsabilidade sobre o que construo. Não tenho dez anos de carreira para exibir — tenho consistência, base boa e disposição para encarar problema difícil.

Java Spring React TypeScript Go Python Node.js PostgreSQL Oracle Git IA / LLM

Java & Spring

Desenvolvimento de aplicações corporativas na AJRorato: regras de negócio, persistência e integração entre sistemas.

React & Frontend

Interfaces com React e JavaScript/TypeScript, consumo de APIs e componentização com foco em usabilidade.

Bancos & Backend

SQL com PostgreSQL e Oracle, modelagem relacional e APIs em Node.js, Go e Python (FastAPI).

Inteligência Artificial

Fine-tuning de LLM, execução local do modelo, datasets próprios e estudo contínuo de RAG e embeddings.

Stack

Competências técnicas

Sem percentuais fabricados: os rótulos indicam onde cada tecnologia é usada de verdade — no trabalho, em estudo dirigido ou em prática própria.

Backend

Serviços, APIs e regras de negócio

JavaUso diário
Spring / APIs RESTUso diário
GoSólido
PythonSólido
Node.jsSólido

Frontend

Interfaces e integração com APIs

ReactUso diário
JavaScript / TypeScriptUso diário
HTML & CSSSólido
Consumo de APIs / Axios / FetchSólido

Banco de Dados

Modelagem, consultas e persistência

PostgreSQLSólido
OracleSólido
SQL / modelagem relacionalSólido
Bancos vetoriais (pgvector)Estudando

IA & Ferramentas

Prática própria e estudo contínuo

Fine-tuning de LLMPrática real
Inferência local de modelosPrática real
Python para IA (PyTorch / HF)Sólido
RAG & embeddingsEstudando
Git / GitHubUso diário
Portfólio

Projetos

Projetos reais, todos publicados no meu GitHub. Cada descrição saiu da leitura do próprio repositório — sem métrica inventada e sem adjetivo que eu não consiga defender.

WhatsApp Bot API multi-sessões

Go · API REST · whatsmeow

API REST em Go que administra várias sessões do WhatsApp ao mesmo tempo, cada uma isolada pela sua SESSIONKEY. Registra sessão por QR Code e envia texto, mídia, áudio, vídeo e enquete. O histórico de mensagens, contatos e estatísticas fica persistido no banco, com download de anexos por endpoint próprio e limpeza automática de mídia por retenção. Os eventos saem em tempo real por WebSocket, e há webhooks com log de execução.

Go whatsmeow WebSocket SQLite PostgreSQL Docker

Docker sem Docker Desktop

Python · CLI + IntelliJ IDEA · 33 estrelas

Instalador em Python que monta o Docker CLI no Windows sem o Docker Desktop. Um menu no terminal lista mais de 90 versões do Docker Engine, além do Compose e do Buildx, baixa os binários oficiais e configura sozinho a integração com o IntelliJ IDEA. Não usa WSL nem mantém serviço em segundo plano — cerca de 150 MB de disco contra os ~4 GB do Docker Desktop. Cada release publica o .exe via GitHub Actions.

Python Docker Compose Buildx IntelliJ IDEA GitHub Actions

Loterias API

Go · Gin · MongoDB · Swagger

API REST que expõe resultados históricos e atuais de 10 loterias da Caixa, da Mega-Sena ao +Milionária. Um scheduler em cron mantém a base atualizada sem intervenção manual, e os dados ficam em MongoDB. Tem documentação interativa com Swagger, CORS configurado para consumo no front-end e sobe com Docker Compose.

Go Gin MongoDB Swagger Cron Docker

API de envio de e-mail

Go · Gin · SMTP

Microsserviço em Go para disparo de e-mail com corpo em HTML e anexos. A autenticação aceita Basic Auth ou o header X-API-KEY, e os usuários ficam na base em vez de em código. Um middleware de rate limit segura em 100 requisições por minuto, devolvendo 429 quando estoura. A estrutura separa config, handlers, middleware e models, e sobe com Docker apenas com variáveis de ambiente.

Go Gin SMTP PostgreSQL Docker

QR Code Pix com logo

Java 21 · Spring Boot 3 · ZXing

API que gera o QR Code de pagamento Pix já com a logo no centro. A partir de chave, beneficiário, cidade e valor, monta o payload EMV validando o limite de caracteres que o padrão do Banco Central exige em cada campo. O QR sai com correção de erro nível H, e a logo entra redimensionada e com fundo branco justamente para não atrapalhar a leitura. Devolve o código copia-e-cola e a imagem em Base64.

Java 21 Spring Boot ZXing Maven Docker

Encurtador de Links — front-end

React · TypeScript · Vite

Interface do encurtador de links, em React com TypeScript e Vite. São três rotas — home, lista de links e página de erro — e o axios centraliza o acesso ao back-end. Os links encurtados ficam salvos no localStorage, então a lista do usuário sobrevive a fechar o navegador. Cada componente carrega o próprio CSS, junto do seu arquivo de componente.

React TypeScript Vite React Router Axios

Encurtador de Links — back-end

Java · Spring Boot · PostgreSQL

Back-end do encurtador: recebe a URL longa em POST /shorten e devolve o código curto; ao acessar o código, a API responde 302 apontando para o destino original. O código de 6 caracteres vem de um SecureRandom, e se a URL longa já existe o registro é reaproveitado em vez de duplicar na base. Cada acesso incrementa um contador de hits por link, e o CORS está liberado para o front consumir direto.

Java Spring Boot PostgreSQL JPA Maven

Trajetória

Experiência e formação

Trabalho profissional e graduação em paralelo — as duas coisas se alimentando.

  1. Atual

    Analista e Desenvolvedor de Software

    AJRorato · Brasil

    • Desenvolvimento de aplicações com Java e React, atuando do levantamento do requisito à entrega.
    • Implementação de regras de negócio, integrações entre sistemas e persistência em banco relacional.
    • Construção de interfaces em React consumindo APIs, com foco em usabilidade e manutenção.
    • Participação no ciclo completo de desenvolvimento: análise, codificação, testes e correção.
  2. Estudos contínuos · Atual

    Desenvolvimento independente em IA e Backend

    Projetos próprios e estudo dirigido

    • Fine-tuning de LLM com dataset próprio e execução local do modelo treinado.
    • Prática em Go, Python e Node.js aplicada a APIs, automações e scripts de dados.
    • Estudo de SQL avançado em PostgreSQL e Oracle: índice, plano de execução e modelagem.
Contato

Vamos conversar?

Aberto a oportunidades de desenvolvimento, projetos em Java/React, backend em Go ou Python e iniciativas envolvendo IA.

Informe ao menos 2 caracteres.

Informe um e-mail válido.

Informe um assunto com ao menos 3 caracteres.

Descreva sua mensagem com ao menos 20 caracteres.