Skip to content
View AlyssonCaputti's full-sized avatar
  • Curitiba, Paraná

Block or report AlyssonCaputti

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AlyssonCaputti/README.md
Alysson Caputti, Data Engineer

LinkedIn Email LeetCode Curitiba, Brasil

>>> from alysson import perfil
>>> perfil.resumo()
{
    'cargo':     'Data Engineer @ GP Corp BR',
    'stack':     ['Python', 'SQL', 'PySpark', 'Airflow', 'dbt', 'GCP'],
    'todo_dia':  'um pouco de LeetCode, um pouco de dado tratado',
    'porque':    'porque eu gosto mesmo é disso',
}

Oi, tudo bem?

Sou o Alysson. Engenheiro de dados que estuda todo dia porque programar é a parte boa do meu dia, não uma obrigação.

Hoje construo pipelines na GP Corp BR, do SAP até o dado pronto pra alguém usar. Fora do trabalho, treino algoritmo no LeetCode e Codeforces, e monto meu próprio roadmap de estudo pra virar um engenheiro cada vez melhor.

Dá uma olhada no que eu venho construindo:

Projetos

Cada um resolve um problema diferente. Abra o que te interessar:

🔧 sap-mysql-etl: ETL que sobrevive a uma origem instável

Todo dia ele lê exportação de ERP, trata e carrega num MySQL que alimenta dashboard e forecast. O problema interessante não é volume, é que a origem muda de formato sem avisar: encoding, separador, nome de coluna, formato numérico.

O que tem dentro:

Contrato de schema declara o que espera da origem e aborta com mensagem útil quando quebra
4 estratégias de carga replace · truncate · date_range · upsert (todas seguras pra rodar duas vezes)
Falha alta, nunca silenciosa 3 correções de bug que passavam batido no log e no exit code
Testável sem infra a suíte roda em ~1s, sem banco e sem rede

A história favorita do repo: o detector de separador fazia split(",") cru, então todo CSV bem-formado com vírgula dentro de aspas parecia quebrado, e o reconstrutor heurístico descartava 33% da base com um aviso no log. Achei investigando lentidão, não erro.

Python MySQL pandas pytest

🚗 frota-brasil-pipeline: 22M linhas de frota nacional cruzadas com FIPE

Frota circulante do SENATRAN × specs técnicas da FIPE, respondendo por marca/modelo/ano quantos carros existem na rua e qual motor/combustível/potência eles têm.

SENATRAN (CKAN) ──┐
                  ├─> raw ─┬─> stg_frota ─┐
FIPE API ─────────┘        └─> stg_fipe ──┼─> marts
  • Camadas staging → intermediate → marts no dbt, com de-para de marca como seed
  • Teste de granularidade (não só not_null): a combinação marca+modelo+ano tem que ser única
  • CI que sobe Postgres, roda o pipeline na amostra e valida com dbt test
  • 93,1% de cobertura contra o total oficial de veículos leves, e o gap está documentado

Python PostgreSQL dbt Airflow Docker

💱 etl-cotacao-moedas: ETL enxuto, feito certo

Cotação de moeda de API pública → tratamento → Postgres em Docker. Pequeno de propósito, mas com as decisões que importam: ON CONFLICT pra não duplicar em reexecução e NUMERIC pra valor monetário (nunca FLOAT: erro de arredondamento em dinheiro não perdoa).

Python PostgreSQL Docker

📊 analise-ecommerce-sql: análise de negócio em SQL puro

Faturamento, produto, cliente e cohort sobre um banco de e-commerce, com um arquivo de checagem de qualidade de dados separado, porque conferir a base antes de tirar conclusão dela deveria ser padrão.

SQL SQLite Python

🤖 sql-agent: pergunta em português, resposta em dado

Agente texto→SQL com a API da Anthropic: a pergunta vira query via tool use, executa em modo somente leitura e responde com base no resultado. Sem alucinar número.

Python Anthropic API SQLite

🧩 Competitive-programming: algoritmo todo dia

Soluções comentadas com abordagem, complexidade e o raciocínio atrás de cada uma. Pensar em O(n log n) vs O(n²) muda como você escreve qualquer código, não só o de competição.

LeetCode Codeforces

Ferramentas do dia a dia

Python, PostgreSQL, MySQL, SQLite, Docker, Linux, Git, GitHub, VS Code, GCP
dbt Airflow PySpark pandas Power BI FastAPI Anthropic API

Sempre estudando

Curioso por natureza. A lista de hoje: GCP / BigQuery, internals do Spark, arquitetura distribuída, Designing Data-Intensive Applications (Kleppmann) e um problema novo por dia no LeetCode. O cs-data-roadmap aqui do GitHub é onde eu registro tudo isso.

Certificações

Google Cloud Computing Foundations

Data, ML & AI no Google Cloud

Cloud Computing Fundamentals

Microsoft Certified: Fabric Data Engineer Associate (DP-700)


Bora trocar ideia sobre dados? Chama que eu respondo.

LinkedIn Email Repositórios

Pinned Loading

  1. analise-ecommerce-sql analise-ecommerce-sql Public

    Analise de negocio em SQL sobre e-commerce (SQLite): faturamento, ticket medio, produtos e clientes - com uma bateria de checagem de qualidade de dados a parte.

    Python

  2. Competitive-programming Competitive-programming Public

    Solucoes de programacao competitiva em Python com abordagem, complexidade e raciocinio comentados - organizadas por estrutura de dados e tecnica.

    Python

  3. frota-brasil-pipeline frota-brasil-pipeline Public

    Pipeline Python + PostgreSQL + dbt + Airflow que cruza a frota circulante do SENATRAN (22M linhas) com specs da FIPE por marca/modelo/ano.

    Python

  4. lean-etl-pipeline lean-etl-pipeline Public

    ETL em camadas (extract/transform/load) com validacao de qualidade em duas portas: uma na entrada dos dados brutos, outra no agregado antes de gravar.

    Python

  5. sap-mysql-etl sap-mysql-etl Public

    ETL Python que sobrevive a uma origem que muda de formato sem avisar: contrato de schema, 4 estrategias de carga idempotentes e reconciliacao de contagem dentro da transacao.

    Python

  6. sql-agent sql-agent Public

    Agente texto-para-SQL com a API da Anthropic: pergunta em portugues vira query via tool use, executa somente leitura no SQLite e responde com base no resultado.

    Python