⚠️ SITE EXPERIMENTAL — em construção. Metodologia ainda sendo desenvolvida; dados e conclusões preliminares, sujeitos a alteração.
1 · Pergunta de pesquisa
O que motivou o estudo
Egressos de TI do IFES — Campus Serra que passaram por uma base comum de formação — ensino (monitoria), pesquisa aplicada (iniciação científica, bolsa FAPES/Prodest) e extensão em laboratórios do IFES — têm hoje que trajetória de carreira e renda? A hipótese: essas três vivências, antes do primeiro emprego formal, antecipam a chegada a posições sênior, à liderança técnica e ao mercado internacional.
Monitoria & tutoria
Primeira experiência de ensinar e consolidar fundamentos (programação, estrutura de dados, arquitetura).
Pesquisa aplicada
Projetos de P&D com bolsa (FAPES/Prodest) — primeiro contato com problemas reais em escala.
Laboratório & empresa júnior
Projetos com clientes, métodos ágeis e liderança antes do emprego formal (LEDS entre os principais).
2 · O fluxo em cinco etapas
Um pipeline ETL orquestrado por data/build_report.py — cada etapa lê a saída da anterior
Fontes → dados brutos
busca_egressos.py— raspa perfis públicos de LinkedIn (browser-use + LLM Mistral): cargo, empresa, vínculo, datas.- Bases oficiais IFES: FAPES (bolsas), SRC (extensão), Lattes + SIGPESQ (pesquisa/IC) — cruzadas por nome.
- Mercado: Stack Overflow, Código Fonte, IPCA/câmbio.
- Curadoria manual → estrutura em JSON.
alunos.jsonSérie & análises
compute_all.py— série salarial (mercado × exp × FX × IPCA), anonimiza A–…fapes_fomento.py,src_extensao.py— fomento e extensão.analise.py— clusters, sankey, gênero, porte de empresa, impacto.
consolidado.json · analise.jsonJSON → dashboards
gen_impacto.py— projeta o painel de impacto num dataset.gen_panorama.py— reescreve a base de perfis do panorama.- Números vêm sempre do pipeline, nunca do HTML.
*.htmlConfere & blinda
test_projecao_impacto.py— confere cada número do dataset contra a fonte.- Varredura de PII no portão: falha se qualquer nome/empresa vazar para o HTML público.
Sai anonimizado
--publishcopia para o repositório público de egressos e para os docs da diretoria.- O repositório com PII real nunca sai da máquina.
3 · Fontes de dados
Quatro bases externas + coleta de perfis; tudo público, exceto o cadastro de bolsas
| Fonte | O que fornece | Período | Acesso |
|---|---|---|---|
| Perfis de LinkedIn coleta automatizada | Cargo, empresa, vínculo (CLT/PJ/bolsa/estágio), datas e local de cada experiência | Trajetória completa | público |
| FAPES Res. 361/2026 · via Prodest | Valores reais das bolsas de pesquisa/extensão recebidas (BPIG, apoio técnico, ICT) | Anos de bolsa | restrito |
| SRC — extensão IFES Serra base oficial · src_etl | Participação em ações de extensão e quem foi bolsista de extensão (fomento além da pesquisa) — 30/50 na base, 15 bolsistas | Trajetória IFES | institucional |
| Lattes (CNPq) currículos · match por nome | Vínculo de pesquisa/orientação — iniciação científica, mestrado, TCC, projeto — 22/37 encontrados, 7 em IC | Formação | público |
| SIGPESQ gestão de pesquisa IFES · horizon.db | Grupos de pesquisa, projetos, orientações e bolsas de IC registrados no sistema (persons, teams, advisorships, fellowships) | Formação | institucional |
| Stack Overflow Developer Survey | Salário de desenvolvedores/dados no Brasil por anos de experiência (mediana e quartis) | 2018–2023 | público |
| Pesquisa Código Fonte | Média salarial por senioridade no mercado brasileiro | 2021–2026 | público |
| IPCA (IBGE) + câmbio USD→BRL | Correção de tudo ao poder de compra de R$ de 2026 | 2011–2026 | público |
4 · Estimativa salarial — o cálculo
Como cada ponto da série de renda é produzido
- Match de mercado. Para cada egresso e cada ano de carreira, cruza-se o ano de experiência com a mediana da Stack Overflow daquela época — mesma trilha (Software ou Dados), filtrando devs do Brasil.
- Janela de experiência. Amostra em
exp ± 1 ano; se ficar com menos de 8 respostas, amplia para± 2. Exige n ≥ 5 para publicar o ponto. - Valor da época vs. hoje. A série mostra duas leituras: o valor da época (corrigido pela inflação) e a valores de hoje (reprecificado pelo mercado de 2026).
- Anos iniciais. Em estágio/bolsa nos dois primeiros anos aplica-se fator de
0,5sobre a mediana de mercado, refletindo a jornada/remuneração parcial.
5 · Análises derivadas
A partir da série e dos perfis, sem bibliotecas pesadas (estatística em NumPy puro)
Cada análise carrega sua ressalva no relatório — em especial gênero (amostra pequena, inferência binária aproximada, não identidade declarada) e porte de empresa (só o nome público da empresa é enviado ao modelo, nunca o nome de qualquer egresso).
6 · Garantia de qualidade & privacidade
Por que os números são confiáveis — e por que ninguém é identificável
- Fonte única de verdade. As páginas não guardam números próprios: cada valor é lido do catálogo e renderizado no build. Editar o HTML à mão é impossível por design — ele é gerado.
- QA automático.
test_projecao_impacto.pycompara cada número do dataset publicado com a fonte que o originou — indicadores, faixas, dispersão, fluxo, tabelas, mapas de calor. Uma divergência = FALHA. Antes essa conferência era feita ao contrário, reextraindo constantes de dentro do HTML; ela deixou de ser possível quando as páginas pararam de ter JavaScript, e deixou de ser confiável antes disso, porque comparava um despejo de constantes desatualizado e passava. - Anonimização. Cada pessoa vira um rótulo (A, B, C…). Sem nomes, empresas ou localidades individuais — apenas trilha e anos de experiência.
- Gate de PII. O portão de publicação varre toda a saída em busca de qualquer nome de pessoa ou empresa da base. Se encontrar, a publicação é bloqueada. O repositório com dados reais nunca é publicado.
7 · Reprodutibilidade
Um comando regenera e valida o relatório inteiro
# gera todos os JSON, reescreve os dashboards e valida python data/build_report.py # após validar, publica a versão anonimizada python data/build_report.py --publish
| # | Etapa | Script | Produz |
|---|---|---|---|
| 1 | Gênero (offline) | genero.py | genero_map.json |
| 2 | Série salarial | compute_all.py | consolidado.json |
| 3 | Extensão SRC/IFES | src_extensao.py | src_extensao.json |
| 4 | Fomento FAPES | fapes_fomento.py | fapes_fomento.json |
| 5 | Análise | analise.py | analise.json |
| 6 | Painel de impacto | gen_impacto.py | impacto.json |
| 7 | Render panorama | gen_panorama.py | dashboard_alunos.html |
| 8 | Números × fonte | test_projecao_impacto.py | PASS/FAIL |
8 · Ressalvas
Limites que o método impõe à leitura dos resultados
- Estimativa, não salário real. A renda deriva de medianas de mercado por experiência — não é holerite individual.
- Amostra pequena. Cortes por gênero, trilha e origem são direcionais, não inferência estatística.
- Prêmio internacional subestimado. Os preços vêm do mercado brasileiro; o modelo não captura o ganho real de contratos em moeda estrangeira.
- Código Fonte ilustrativa. A pesquisa publica só a média por senioridade, sem percentis — a faixa é aproximada.
- Coleta de perfis. Depende do que está público no LinkedIn; períodos no IFES nem sempre aparecem e são complementados por outras fontes.
- Cruzamento por nome. SRC, Lattes e SIGPESQ casam por nome completo (sem CPF na base) — pode haver homônimo. Tratados como piso (quem aparece participou; ausência não prova não-participação).