Skip to content

feat/refactor-first-job-nullreference #283

@marcialwushu

Description

@marcialwushu

Pull Request · feat/refactor-first-job-nullreference → main

Title: Refatora carreira do dev júnior para remover burnout e adicionar peace_of_mind()
Labels: bug, tech-debt, mental-health, legacy-sybase, infra-drama, needs-hiring, do-not-merge-on-friday


Descrição

Este PR remove dependências tóxicas do monólito empresa-familiar e adiciona camadas de observabilidade emocional no serviço dev_junior.
Também corrige um race condition entre “prazos mágicos” e “capacidade humana”, e substitui o driver GestorAdvogado.dll por GestorQueEntendeTI.nuget (mockado, ainda sem implementação real).

Motivação:

O GPT travou calculando média ponderada e eu identifiquei paralelos arquiteturais com minha vida profissional: ambos com timeout e throttling sem backoff exponencial.

Colega executou git push origin vaza-daqui, deixando colega = null.

sybase ainda em produção em 2025. Sem mais perguntas, Excelência.


Mudanças principais (diffs)

diff --git a/life/dev_junior b/life/dev_junior
index deadbeef..burnout00 100644
--- a/life/dev_junior
+++ b/life/dev_junior
@@ -1,6 +1,12 @@
-salario = 2000;
-stack = [automacoes, SEFAZ, ISS, SybaseZombie];
-colega = "ainda existe";
-gestor = "advogado que acha que cloud é Dropbox";
+salario = 2000; // TODO: tornar variável
+stack = [automacoes, SEFAZ, ISS, SybaseZombie, RHInexistente];
+colega = null; // vaza-daqui aplicado
+gestor = "advogado-wannabe-CTO";
+sanidade = "staging";
+burnout = true;
+esperanca = featureFlag("desligada");

-console.log("aprendendo na marra...");
+console.log("aprendendo na marra e em lágrimas...");

diff --git a/infra/company b/infra/company
index chaos123..circ0110 100644
--- a/infra/company
+++ b/infra/company
@@ -7,7 +12,12 @@
-gestao = "profissional";
-familia_dono = false;
-RH = true;
+gestao = "filhinhos jogando The Sims com devs NPC";
+familia_dono = true;
+RH = false; // not implemented
+politicagem = "HIGH";
+picuinha = "ENABLED";
+etica = null; // GC removeu

diff --git a/mindset/dev_junior b/mindset/dev_junior
index coffee00..refactor42 100644
--- a/mindset/dev_junior
+++ b/mindset/dev_junior
@@ -1,4 +1,11 @@
-while (empresa.exists()) { sobreviver(); }
+while (empresa.exists()) {

  • try {
  • sobreviver();
  • } catch (Desespero e) {
  • aplicarCurriculo();
  • atualizarLinkedIn();
  • } finally {
  • tomarCafeFrio();
  • }
    +}

diff --git a/futuro/dev_junior b/futuro/dev_junior
new file mode 100644
--- /dev/null
+++ b/futuro/dev_junior
@@ -0,0 +1,8 @@
+// Plano de migração
+vaga = buscarNovaVaga({ stack: "decente", gestor: "sabe-TI", salario: "> 2k" });
+if (vaga.fits()) {

  • aceitar(vaga);
  • mergePeaceOfMind();
    +} else {
  • retryWithBackoff();
    +}

Checklist

[x] Não subir isso numa sexta

[x] Adicionar feature flag recusar-prazo-mágico

[x] Configurar circuit breaker para mensagens do gestor

[x] Escrever testes de integração com LinkedIn

[ ] Remover SybaseZombie (bloqueado por “histórico do escritório”)

[ ] Implementar RH (depende de prod owner acreditar que pessoas existem)


Risco

ALTO — Breaking change na camada “aguentar calado”. Exige data migration de culpa_interna → limite_saude_mental.

Mitigação: Blue/Green Career Deployment: manter emprego atual (blue) enquanto sobe entrevistas (green); fazer cutover quando offer.signed == true.


Como testar

  1. Rodar make aplicar-curriculo && make entrevistas.

  2. Verificar logs: grep -i "parabéns, aprovado" pipeline.log.

  3. Se falhar, retryWithBackoff() e chocolates.


Screenshots (interpretação artística)

+--------------------+ 500s +------------------+
| Dev Júnior | -----------> | Gestor Advogado |
+--------------------+ blame +------------------+
| ^
| 429 too many tasks |
v |
+-------------+ burnout +-----------------------+
| Sybase | <--------- | Empresa Familiar™ |
+-------------+ +-----------------------+


Changelog

feat: adiciona mergePeaceOfMind()

fix: captura exceção PrazosAbusivosException

refactor: extrai sanidade para módulo externo (freelance, vagas novas)

docs: atualiza README: “não aceite PR gigante sem review, nem salário 2k salvando SEFAZ”


Comentários de Review

@senior-que-viu-de-tudo

LGTM, mas sugiro colocar retry policy no buscarNovaVaga() com maxAttempts = infinito e julgamentoAlheio = ignore.

@dev-que-se-demitiu

Aprovado com gosto. Só lembra de rodar pre-commit: negociar_salario.sh.

@bot-ci

❌ ci/life falhou: “Remover SybaseZombie” marcado como TODO eterno.
✅ lint/senso-comum passou: “não demitir-se antes de ter outra oferta”.

@psicologo-devops

nit: renomear burnout para technical_debt_of_self. Mais fiel ao domínio.


Notas finais (estilo crônica)

O GPT travando na média é o microcosmo do caos: sistema mal dimensionado+pressa+economia burra de recurso = timeout existencial.

Empresa familiar desorganizada é monólito legado: todo mundo mexe, ninguém versiona, e os bugs são “cultura da empresa”.

A estratégia é observabilidade de carreira: métricas (quanto você aprende e ganha), logs (como se sente), traces (para onde está indo). Se o SLO de sanidade for violado, dispara page: atualiza currículo.


Merge Strategy

Squash & merge quando offer.signed == true.
Até lá: Draft PR aberto, com auto-cancel de deploy em sextas.

Mensagem de commit final:
“Refatora vida: remove Sybase, adiciona dignidade. BREAKING CHANGE: sanidade agora é obrigatória.”

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions