Gabriel R. Antunes's CV

Perfil

Desenvolvedor de software

Desenvolvedor de software com experiência em sistemas públicos, freelances, software no setor privado e contribuições open source. Atuo entre backend, frontend e integrações, com experiência crescente nas camadas de infraestrutura e operação ao redor das aplicações.

Experiência

Desenvolvedor Full Stack Contratado (Terceirizado)

Rondônia, Brasil

Jul 2025 – Mai 2026

Rovema Bank

Evolução, manutenção e sustentação de sistemas corporativos em produção, colaborando com equipes multidisciplinares em soluções de gestão de frota, serviços financeiros e plataformas institucionais.

Bolsista Desenvolvedor de Software

Rondônia, Brasil

Fev 2025 – Set 2025

Defensoria Pública do Estado de Rondônia

Continuidade da atuação no projeto Central de Vagas, coordenado pelo IFRO em parceria com TCE-RO e DPE-RO.

Desenvolvedor Web Full Stack

Ji-Paraná, Rondônia, Brasil

Mar 2025 – Jun 2025

Fugiwara Advogados

Desenvolvimento ponta a ponta do site institucional do escritório, do levantamento de requisitos à implantação.

Bolsista Desenvolvedor de Software

Rondônia, Brasil

Jan 2024 – Jan 2025

Tribunal de Contas do Estado de Rondônia

Desenvolvimento do projeto Central de Vagas, coordenado pelo IFRO em parceria com TCE-RO e DPE-RO.

Engenheiro de Software

Ji-Paraná, Rondônia, Brasil

Fev 2024 – Set 2024

Fishing Booking

Evolução, manutenção e sustentação em produção de uma plataforma de torneios de pesca.

Integrante do Projeto de Pesquisa Sistema Gerador de Horário Acadêmico

Ji-Paraná, Rondônia, Brasil

Fev 2022 – Dez 2023

IFRO, Instituto Federal de Educação, Ciência e Tecnologia de Rondônia

Participação em projetos de pesquisa e desenvolvimento de software no Campus Ji-Paraná.

Produções Técnicas

Correção de autenticação SSR no Nuxt Auth

Jan 2023

Investiguei uma diferença entre a navegação no cliente e o SSR no fluxo de autenticação, em que joinPathToApiURLWN retornava uma promise durante a renderização no servidor. O PR #360, incorporado a partir da guesant-fix-359, corrigiu o await ausente e encerrou a issue #359.

AST e automação de releases do Unispec

Jan 2024

Desenvolvi um proof of concept de tooling de AST e contratos e evoluí seu fluxo de distribuição de pacotes. O PR #61, a partir da guesant-next, adicionou ast-builder e ast-utils; o PR #62 migrou consumidores dos pacotes obsoletos; o PR #93, a partir da feat/smart-release, adicionou automação condicional de releases; e o PR #96, a partir da feat/include-license-changelog-readme-in-packages, incluiu documentação e arquivos de licença nos artefatos publicados.

Ecossistema de editor visual UI5

Jan 2020

Desenvolvi e refatorei partes de um editor visual modular em React e Fabric.js nos repositórios ui5-monorepo e ui5-plugins. O trabalho incluiu a redução do bundle do editor no PR #146, a generalização do cálculo de dimensões no PR #137, a criação de um sistema reutilizável de ações no PR #131 e a infraestrutura de playground no PR #155. A camada de plugins recebeu smart rendering, ações de canvas, edição de escala e correções de overflow nos PRs #122, #194, #181 e #125.

Ferramentas de migração NativeScript Vue

2019 – 2020

Desenvolvi um serviço de migração configurável para projetos Vue e NativeScript Vue, incluindo transformação de templates, helpers de DOM, operações de arquivos, gerenciamento de pacotes e testes automatizados. O trabalho está preservado em sete repositórios arquivados na organização friendly-tnsvue, cujo README de perfil mapeia o serviço de migração anterior, os protótipos de plugin, a CLI e o plugin v0 e o monorepo v1. O PR #73, a partir da poc_001-conf, exportou o processo genérico de migração para um arquivo de configuração; o PR #58, a partir da feat/lib-test, adicionou testes unitários; e o PR #21, a partir da fix/extends-component, corrigiu componentes objeto com Vue.extend.

pwa-icon-generator

Jan 2019

Contribuição incorporada ao projeto que adicionou suporte a SVG e barra de progresso, corrigiu a centralização de imagens não quadradas, alertou sobre valores padrão e aprimorou o tratamento dos caminhos de ícones e saídas.

Contribuições upstream iniciais selecionadas

2019 – 2020

Trabalho upstream publicamente verificável realizado entre 2019 e 2020. No extenso.js, o PR #20, enviado a partir da branch fix/babelwebpack e incorporado à master, substituiu a sintaxe obsoleta de declaração de loaders do Webpack, atualizou pacotes e tratou a issue #17. Também abri o PR #24, a partir da feat/scale, relacionado à issue #19, propondo uma opção explícita de escala numérica; esse pull request foi encerrado sem ser incorporado. No vue-spinners-css, o PR #3, enviado a partir da feat/size-support e incorporado à master, implementou a propriedade size nos componentes de spinner em resposta à issue #1. No 100-days-css, o PR #4, enviado a partir da feat/config-info e incorporado à master, adicionou a geração de config.json a partir do histórico Git, ordenação determinística dos desafios e exibição do autor e da data de cada desafio. No Sergey, o PR #40, enviado a partir da patch-1 e incorporado à master, corrigiu a tag p de fechamento inesperada relatada na issue #39. Uma proposta posterior, o PR #43, da branch smart-changetag, continua aberta e substitui o processamento de tags baseado em expressões regulares por operações baseadas em seletores CSS e DOM.

ava-pro

2021 – 2022

Extensão de navegador para plataformas Moodle com busca e organização de disciplinas, fluxos de login automático, conversas em chat e notificações em segundo plano. O PR #16, incorporado a partir da 0.0.2-moodle-client-js, introduziu o pacote cliente do Moodle e encerrou a issue #15.

Relatos de issues upstream selecionados

2023 – presente

Relatei e investiguei problemas reproduzíveis em projetos públicos, incluindo a validação assíncrona com Zod na issue #37 do vorms, encerrada como concluída pelo projeto, e referências a propriedades espalhadas no Microsoft TypeSpec na issue #7673, também encerrada como concluída. Propus suporte mais amplo a monorepos no dependency-changesets-action na issue #394 e um PR #395 correspondente, ainda em draft.

Horários do IFRO Ji-Paraná

Jan 2022

Ferramenta que evoluiu do recorte de PDFs de horários por coordenadas para um pacote extrator, dados normalizados em SQLite e uma interface React consultável por turma e professor.

JipaCoding

Registros técnicos selecionados de um arquivo público de vídeos que reúne gráficos, algoritmos, debugging e modelagem de dados.

Eventos

Semana Nacional de Ciência e Tecnologia

Brasília, DF, Brasil

Jan 2022

Participante.

Palestra sobre Git e GitHub no IFRO, Campus Ji-Paraná

Jan 2023

Palestrante no Campus Ji-Paraná do IFRO sobre Git e GitHub.

Projetos

ava-pro

Extensão de navegador para plataformas Moodle com listagem e busca de disciplinas, cursos fixados, fluxos de login automático, acesso a chats e verificações em segundo plano por novas mensagens.

home-lab

Laboratório pessoal de infraestrutura em andamento onde investigo, na prática, as camadas ao redor de uma aplicação, incluindo máquinas virtuais, redes segmentadas, VPNs, firewalls, containers, Kubernetes, identidade e observabilidade.

infrastructure-and-cluster-notebook

Caderno público de engenharia onde registro investigações sobre infraestrutura e clusters por meio de hipóteses, testes reproduzíveis, falhas e revisões, em vez de apresentar o material como um tutorial acabado.

fantastic-images

Exploração antiga em TypeScript e Fabric.js para descrever templates de imagem e renderizar composições geradas em canvas. Entre os registros de Gráficos e Renderização estão Gerando Imagens a partir de Templates - Programando Gráficos #02, Gerando Vídeos com Algoritmos - Programando Gráficos #03 e Gerando Imagens a partir de Templates (fabric.js) - Programando Gráficos #02.

fabricjs-object-fit

2022 – presente

Biblioteca TypeScript publicada que oferece ao Fabric.js um comportamento semelhante a object-fit e object-position do CSS, incluindo suporte à serialização, testes e documentação. Portabilidade para o Fabric.js 7 no PR #23, a partir da feat/fabric-7, seguida pela introdução de uma estrutura de workspace no PR #33 e pela padronização dos nomes dos pacotes no PR #34, ambos a partir da kebab.

parcel-resolver-pnpm

Proof of concept de 2021 para investigar a forma como o Parcel tratava dependências instaladas via symlink pelo pnpm como dependências de código-fonte.

friendly-tnsvue

Proof of concept de 2019 para automatizar partes da migração de projetos Vue para NativeScript-Vue por meio de uma CLI, um serviço de migração e modelos reutilizáveis. O histórico está preservado em sete repositórios arquivados na organização friendly-tnsvue; o repositório separado nsvue-colors continua em guesant.

gir-js

Investigação inacabada sobre o uso dos metadados do GObject introspection para expor bibliotecas nativas a runtimes JavaScript por FFI e derivar informações voltadas a TypeScript a partir de typelibs.

Unispec

Pesquisa e proof of concept arquivados sobre declarar contratos uma vez e derivar tooling para ecossistemas como NestJS, GraphQL, OpenAPI, Swagger e QuickType.

Ya Time Marker

PWA de 2021 em Ionic e React para registrar e pesquisar marcações de tempo mantendo o histórico no dispositivo, com importação, exportação e exclusão sob controle do usuário.

outro-bun

Ferramenta pontual em Bun e TypeScript que transformava a exportação da planilha de músicas da colação de grau em um fluxo automatizado de download e processamento de mídia com yt-dlp e FFmpeg.

nota-filler

Demonstrador antigo para preencher programaticamente uma folha ou template de notas escolares, publicado com uma demo web e um vídeo no JipaCoding.

alset-aloc

Sistema desktop de gestão de aluguéis em C# e WPF desenvolvido em equipe como requisito para conclusão do curso técnico em informática do IFRO.

Cases

Central de Vagas em Creches

Atuei como bolsista no time responsável por uma plataforma pública de inscrições, atendimento e gestão de filas de creches. O software foi registrado no INPI sob o processo BR 51 2025 006383-0; a base oficial do INPI permite a consulta pública do registro. Foi uma das minhas primeiras experiências prolongadas com software que chegou à produção e continuou exigindo suporte depois da implantação.

Horários do IFRO Ji-Paraná

Criei uma ferramenta que transformava os PDFs semanais de horários do campus em informações consultáveis por turma e professor. O que começou como um atalho de recorte depois virou dado estruturado, uma interface separada e, por fim, uma ponte para o problema mais difícil de gerar e administrar horários acadêmicos.

SIPEC

Atuei full stack em uma plataforma institucional de pesquisas na qual era possível criar projetos, montar formulários e coletar respostas com diferentes modos de acesso.

SISGHA / Ladesa: Gestão Acadêmica e Horários

Cheguei ao SISGHA depois de construir um visualizador pessoal para horários já publicados e perceber que exibir a grade era apenas o fim de um problema muito maior. Minhas contribuições atravessaram CRUDs e interface acadêmica, regras do gerador, infraestrutura e manutenção de cluster e, mais tarde, trabalho em aplicação, domínio e plataforma.

Fishing Booking

Entrei em um produto PHP já existente durante uma transição de equipe e ajudei a manter a evolução do sistema enquanto a responsabilidade mudava de mãos.

Fugiwara Advogados

Implementei a primeira versão do site institucional do escritório como um tema WordPress personalizado, com conteúdo estruturado por Secure Custom Fields.

ava-pro: Moodle Dentro de uma Extensão de Navegador

O AVA Pro nasceu dos meus experimentos com web scraping e virou uma extensão que interagia com o Moodle como aplicação autenticada, incluindo disciplinas, busca e fixação, fluxos de login, chats e verificações em segundo plano por novas mensagens.

Scrap Rain: Scraping de Catálogos em Múltiplas Fontes

Desenvolvi o Scrap Rain em um freelance para coletar catálogos de quatro sites de móveis e transformar estruturas de página diferentes em dados que pudessem ser persistidos e atualizados de forma incremental.

Experimentos

RPC em Web Extension Entre Página e Content Script

Jan 2023

Proof of concept colaborativo, em Manifest V3, para expor comunicação no estilo request e response entre código da página e o content script de uma extensão por meio de window.postMessage. O PR #3, incorporado a partir da change-usage-api, redesenhou a API de mensagens e encerrou a issue #1.

Ângulos dos Ponteiros em C#

Jan 2022

Pequeno exercício algorítmico em C# para calcular os dois arcos formados pelos ponteiros de um relógio de 12 horas, considerando o movimento contínuo do ponteiro das horas.

Educação

IFRO, Instituto Federal de Educação, Ciência e Tecnologia de Rondônia

Ji-Paraná, Rondônia, Brasil

2021 – 2023

Curso Técnico Integrado ao Ensino Médio in Informática

Competências

Tecnologias: PHP, Symfony, JavaScript, TypeScript, Node.js, NestJS, React, Next.js, React Native, Expo, PostgreSQL, Docker, Docker Swarm, GitLab CI, WordPress, Figma, Cypress, SonarQube, Keycloak, GraphQL, Azure

Certificações

Idiomas