Salvador, Brasil · equipes no Brasil e na Europa

Victor Costa Senior Full Stack Developer e Tech Lead

Desenvolvo e evoluo sistemas web com Ruby on Rails e React. Meu trabalho reúne decisões de arquitetura, implementação e qualidade de software, com comunicação direta e responsabilidade pela entrega.

Experiência
9+ anos
Tecnologias
Ruby · Rails · JavaScript · TypeScript · React · Python · Rust · SQL · NoSQL · REST · GraphQL
Diferenciais
Liderança técnica · Experiência internacional · Bibliotecas próprias · Harnesses de IA
Do contexto ao resultadoObjetivos do negócio, necessidades dos usuários, sistema e integrações, prazos e restrições orientam a decisão. Alternativas e riscos são avaliados com critérios de segurança e desempenho. Os resultados buscados são valor entregue, evolução sustentável, entrega previsível, operação confiável e equipe mais autônoma. O aprendizado retorna ao contexto.
Do banco de dados à interface, com decisões técnicas, comunicação e acompanhamento em produção.

Responsabilidade técnica com contexto

  1. Sistemas em produção desde 2017

    Na Oxeanbits desde junho de 2017, com responsabilidades de arquitetura, desenvolvimento, evolução e liderança técnica de sistemas web.

  2. Projetos de clientes em quatro países

    Liderança técnica de equipes em projetos para clientes na Noruega, nos Países Baixos, na Alemanha e no Brasil, inclusive com contato direto com clientes.

  3. Da fundação à evolução do produto

    No Digitalize, concebi a base e desenvolvi a maior parte do backend. Com a plataforma em produção, assumi a liderança técnica da equipe, acompanhando decisões de arquitetura, revisão de código e evolução do produto.

  4. Do C++ ao navegador

    Desenvolvi individualmente o parsec-web, a versão WebAssembly de uma biblioteca de avaliação de equações em C++.

Problemas que assumi do entendimento à produção

Três casos com problema, participação e resultado. A maior parte foi feita em equipe via Oxeanbits; cada página deixa claro o que foi meu.

C++ · WebAssembly · Compiladores

Parsec: uma linguagem de fórmulas compartilhada entre plataformas

Desenvolvimento da biblioteca; versão WebAssembly individual

Problema
Quando cada plataforma interpreta as mesmas fórmulas por conta própria, o mesmo cálculo pode dar resultados diferentes.
Minha participação
Desenvolvimento da biblioteca em C++ e autoria individual da versão WebAssembly, o parsec-web.
Resultado
Uma linguagem comum de fórmulas, com a mesma interpretação disponível também no navegador.

Rails · MongoDB · GraphQL

Digitalize: da fundação do backend à liderança técnica

Concepção da base e liderança técnica

Problema
Processos internos de organizações diferentes precisavam sair de etapas manuais sem que cada caso exigisse um sistema novo.
Minha participação
Concepção da base e da maior parte do backend; depois, liderança técnica da equipe.
Resultado
Uma base única que atende organizações diferentes e continuou evoluindo com a equipe.

Rails 8 · React · TypeScript · ClickHouse

Status Survey: pesquisas hierárquicas, do formulário ao data lake

Principal contribuidor full-stack em equipe de três pessoas

Problema
Uma organização com vários níveis precisava distribuir pesquisas, controlar acessos e consolidar dados em mais de um idioma.
Minha participação
Principal contribuidor full-stack em uma equipe de três pessoas, da arquitetura à entrega.
Resultado
Uma plataforma completa entregue por uma equipe pequena, do formulário dinâmico ao data lake.

Ver todos os trabalhos

Código público para avaliar meu trabalho

Bibliotecas Ruby que criei ou desenvolvi em coautoria e uma ferramenta em Rust. Cada projeto mostra um problema concreto, a implementação e meu papel.

Ferramentas a serviço do problema

Minha maior profundidade está em Rails, com React e TypeScript em produção. Python, Shell, dados, automação e ferramentas em Rust ampliam os problemas que consigo resolver. Os casos e o código público mostram esse trabalho.

Construção

Backend e APIs
  • Ruby on Rails
  • Ruby
  • REST
  • GraphQL
  • Flask
Onde está a maior parte do meu trabalho: arquitetura backend, regras de negócio e APIs. Nos casos: Digitalize, Status Survey, DPMS, Gems Ruby publicadas.
Frontend
  • React
  • TypeScript
  • JavaScript
  • Flutter
  • Dart
Interfaces React em produção, modernização de telas legadas e contribuições em aplicações Flutter/Dart. Nos casos: Status Survey, Modernização React.
Scripts e automação
  • Python
  • Shell
  • Bash
  • Ruby
Automação de rotinas, integração de APIs e processamento de arquivos com Python, Ruby e Shell.
Programação de baixo nível
  • C
  • C++
  • Rust
C, C++ e Rust. Parsec demonstra o trabalho em C++; Wisetree, a criação de ferramentas em Rust. Nos casos: Parsec e parsec-web, Wisetree em Rust.

Dados e integração

Bancos SQL
  • MySQL
  • SQLite
  • PostgreSQL
  • MariaDB
Modelagem relacional, como o MySQL do DPMS e o PostgreSQL do Status Survey. Nos casos: DPMS, Status Survey.
Bancos NoSQL
  • Redis
  • MongoDB
  • Apache Cassandra
Armazenamento orientado a documentos, chave-valor e colunas largas. O Digitalize usa MongoDB. Nos casos: Digitalize.
Dados analíticos
  • ClickHouse
ClickHouse, sincronizado com PostgreSQL e publicado em data lake no Status Survey. Nos casos: Status Survey.
Pipelines e orquestração
  • Apache Airflow
Apache Airflow para orquestração de tarefas e fluxos de dados, além de jobs e sincronização entre sistemas.
IA integrada a sistemas
  • Python
  • RAG
  • MCP
  • LangChain
  • LangGraph
  • Qdrant
Participação em fluxos de busca em documentos (RAG), ferramentas via MCP e armazenamento vetorial.
Mensageria
  • Apache Kafka
  • Amazon SQS
  • Amazon SNS
Comunicação assíncrona entre sistemas com filas, tópicos e eventos.

Operação

Cloud e containers
  • Amazon SQS
  • Amazon SNS
  • Amazon ECS
  • Amazon S3
  • Docker
Serviços AWS e containerização com Docker. Nos casos: Status Survey.
Observabilidade
  • New Relic
  • Elastic
Acompanhamento do comportamento de aplicações em produção.
Rastreamento de erros
  • Sentry
Acompanhamento de erros e problemas da aplicação em tempo real.

Práticas de engenharia

Qualidade e testes
  • Playwright
  • Selenium
  • Puppeteer
  • Capybara
  • Minitest
  • Vitest
  • RSpec
  • Jest
  • React Testing Library
  • BDD
  • Revisão de código
Testes de regras de negócio e de jornadas no navegador para proteger mudanças e investigar regressões. Nos casos: DPMS.
Entrega
  • Shell
  • CI/CD
  • Documentação técnica
Pipelines de integração e entrega contínuas, ambientes reproduzíveis, backups e documentação. Nos casos: Status Survey.
Autenticação e acesso
  • Keycloak
  • JWT
  • Controle de acesso por papéis
Identidade centralizada e permissões por papel. Nos casos: Status Survey.
Ferramentas para equipes
  • Git worktrees
  • Ratatui
  • RubyGems
CLIs, interfaces de terminal e automação de ambientes para organizar trabalho em branches e reduzir preparação manual. Nos casos: Wisetree em Rust, Gems Ruby publicadas.
Engenharia assistida por IA
  • Jev (TypeSafe AI)
  • Criação de harnesses
  • Instruções e skills para agentes
  • Verificação e revisão humana
Harnesses, skills, seleção de contexto e uso de Jev na escolha de modelo e raciocínio, com verificação humana. Nos casos: Harness de IA, Contexto para IA.

Da regra de negócio à investigação em produção, escolho as ferramentas conforme as restrições do sistema.

Duas formas de trabalharmos juntos

Desenvolvimento

Senior Full Stack Developer e/ou Tech Lead hands-on

Para produtos que precisam de alguém que assuma funcionalidades do banco de dados à interface, tome decisões de arquitetura e mantenha a qualidade enquanto entrega.

  • Construir a base de um sistema novo em Rails
  • Evoluir uma aplicação Rails e React em produção
  • Integrar sistemas por APIs REST ou GraphQL
  • Automatizar rotinas com Python, Ruby e Shell
  • Liderar tecnicamente uma equipe sem sair do código
Ver como funciona o desenvolvimento

Consultoria técnica

Diagnóstico e direção nos temas da minha experiência

Para equipes que precisam de uma segunda opinião técnica, de um plano para reduzir débito técnico ou de critérios claros para decisões de arquitetura, testes e uso de IA.

  • Revisar a arquitetura de uma aplicação Rails
  • Planejar a modernização de um frontend legado
  • Proteger jornadas críticas com testes e Playwright
  • Investigar falhas com Elastic, New Relic e Sentry
  • Estruturar um fluxo de desenvolvimento assistido por IA
Ver temas de consultoria

Critérios que levo para qualquer projeto

Senioridade aparece nas decisões: o que simplificar, o que testar, como explicar um trade-off. Cada princípio abaixo está ligado a um caso.

Um ciclo, não uma esteiraCiclo com quatro etapas: Entender, Decidir, Implementar e Verificar, voltando ao início. Uma linha tracejada liga Verificar a Decidir: A verificação pode devolver o trabalho ao entendimento ou à decisão.
Um ciclo, não uma esteira. A verificação pode devolver o trabalho ao entendimento ou à decisão.
  1. Arquitetura começa pelo problema

    Escolho a solução mais simples que sustenta a evolução do produto. Flexibilidade tem custo e precisa ser justificada pelo uso real.

    Visto em Digitalize

  2. Código é lido mais do que escrito

    Nomes que revelam intenção e fluxos explícitos reduzem a carga cognitiva de quem vai manter o sistema depois de mim.

    Visto em Modernização React

  3. Testes descrevem comportamento

    Testes protegem regras de negócio durante mudanças. Com BDD, eles ficam legíveis também para quem não escreveu o código.

    Visto em DPMS

  4. Trade-offs explicados antes da decisão

    Prefiro convencer com argumentos a impor uma escolha. Foi assim que uma equipe adotou um repositório compartilhado para frontend e backend.

    Visto em Contexto para IA

  5. IA com verificação

    Uso IA para ganhar velocidade, com instruções, contexto selecionado e verificação. A responsabilidade pelo resultado continua sendo minha.

    Visto em Harness de IA

A frase com que resumo minha prática com IA

In AI-assisted development process: Context is King.

É a frase com que resumo essa prática, e a mantenho em inglês, como a uso no dia a dia: em desenvolvimento assistido por IA, a qualidade do resultado depende do contexto relevante disponível. Não reivindico a criação da expressão "Context is King"; ela sintetiza como aplico a ideia.

Contexto para IA

Ensinar também é parte do trabalho

Fiz duas palestras na Universidade Federal da Bahia representando a Oxeanbits. Delas nasceu um repositório sobre Clean Code, que hoje também orienta como avalio código produzido com IA.

Palestras

  1. 2021: A importância do Clean Code e BDD nos Testes Automáticos

    Semana da Computação (SEMCOMP), UFBA · representando a Oxeanbits

    A importância de BDD em testes automatizados, com exemplos práticos de testes que descrevem comportamento.

  2. 2024: Como varrer seu código: Princípios do Clean Code

    Semana da Computação (SEMCOMP), UFBA · representando a Oxeanbits

    Princípios de Clean Code apresentados com exemplos de código.

Repositórios autorais

  • Autoria JavaScript

    victorcorcos/components-hierarchy (site externo)

    Ferramenta para inspecionar relações entre componentes React em JSX, construída sobre madge. Ajuda a entender dependências antes de alterar uma interface.

  • Projeto pessoal Python

    victorcorcos/pom-converter (site externo)

    Port de um conversor de músicas para macOS em Python, a partir da análise do funcionamento do programa original para Windows. Um exemplo de investigação e interoperabilidade.

  • Autoria C#

    victorcorcos/clean-code (site externo)

    Princípios, exemplos e sinais de código difícil de manter. Nasceu das palestras e vale também para código produzido com IA.

  • Autoria Python

    victorcorcos/skills (site externo)

    Skills reutilizáveis para agentes de IA em Claude Code, Codex CLI e OpenCode: planejamento por etapas, revisão, testes com BDD e investigação de bugs.

  • Projeto pessoal Python

    victorcorcos/winning-investments (site externo)

    Projeto pessoal em Python que aplica ao mercado de ações brasileiro estratégias descritas por investidores conhecidos. Um exercício de programação, não recomendação financeira.

Uma trajetória construída em produção

Ciência da Computação na UFBA, um ano de graduação sanduíche nos Estados Unidos e, desde 2017, sistemas web para clientes no Brasil e no exterior.

Trabalho em português e em inglês com equipes e clientes internacionais.

  1. 2011 a 2017

    Ciência da Computação, UFBA

    Bacharelado na Universidade Federal da Bahia. Trabalho de conclusão sobre um índice de interpretabilidade para sistemas fuzzy, avaliado com nota máxima.

  2. Jun. 2015 a mai. 2016

    Graduação sanduíche na SUNY Plattsburgh

    Período na State University of New York at Plattsburgh, nos Estados Unidos, pelo programa Ciência sem Fronteiras, com bolsa CAPES.

  3. Desde jun. 2017

    Oxeanbits

    Prestação de serviços como Backend Tech Lead e Senior Full Stack Developer: DPMS, Digitalize, Status Survey e Parsec, com equipes em projetos para clientes na Noruega, nos Países Baixos, na Alemanha e no Brasil.

  4. 2021

    Palestra sobre Clean Code e BDD

    SEMCOMP na UFBA, representando a Oxeanbits.

  5. 2024

    Palestra sobre Clean Code

    SEMCOMP na UFBA, representando a Oxeanbits.

Conte qual problema você precisa resolver

Quer contratar para sua equipe ou resolver um problema do seu produto? Conte o contexto e o resultado esperado. Podemos conversar sobre uma posição de Senior Full Stack Developer ou Tech Lead, desenvolvimento de projeto ou consultoria técnica.

WhatsApp

+55 71 99705-3401

Abre o WhatsApp com uma mensagem inicial que você pode editar. Nada é enviado automaticamente.

Também estou no GitHub e no LinkedIn.