<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Carreira |</title><link>https://fehac.dev/pt/tags/carreira/</link><atom:link href="https://fehac.dev/pt/tags/carreira/index.xml" rel="self" type="application/rss+xml"/><description>Carreira</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>pt-br</language><lastBuildDate>Mon, 17 Aug 2026 00:00:00 +0900</lastBuildDate><image><url>https://fehac.dev/media/icon.svg</url><title>Carreira</title><link>https://fehac.dev/pt/tags/carreira/</link></image><item><title>A IA já roubou o trabalho do dev</title><link>https://fehac.dev/pt/blog/ai-ja-mudou-o-trabalho-do-dev/</link><pubDate>Mon, 17 Aug 2026 00:00:00 +0900</pubDate><guid>https://fehac.dev/pt/blog/ai-ja-mudou-o-trabalho-do-dev/</guid><description>&lt;p&gt;Palavras difíceis de engolir: a IA não vai roubar o trabalho do dev. Ela já
roubou.&lt;/p&gt;
&lt;p&gt;Toda semana aparece um artigo novo perguntando se a IA vai substituir os
programadores. A premissa está errada. Não é &amp;ldquo;quando vai&amp;rdquo;: ela já substituiu.&lt;/p&gt;
&lt;p&gt;O trabalho que existia em 2022 não existe mais. O que sobrou tem outro nome,
outra natureza e outro conjunto de habilidades. Adianto o nome: engenharia de
harness.&lt;/p&gt;
&lt;p&gt;Quem ainda está discutindo se deve ou não &amp;ldquo;adotar IA&amp;rdquo; está basicamente
discutindo se embarca num trem que já partiu.&lt;/p&gt;
&lt;p&gt;Isso é a minha opinião, formada por operar esse fluxo todos os dias, e não uma
previsão confortável sobre um futuro distante.&lt;/p&gt;
&lt;h2 id="contexto-como-eu-trabalho-hoje"&gt;Contexto: como eu trabalho hoje&lt;/h2&gt;
&lt;p&gt;Sou engenheiro de backend e infraestrutura. Sou o único dono da infra AWS da
empresa onde trabalho e carrego o on-call de produção sozinho.&lt;/p&gt;
&lt;p&gt;Quando algo quebra às três da manhã, o telefone que toca é o meu. Não estou
teorizando de fora, tenho vivência diária com isso.&lt;/p&gt;
&lt;p&gt;Meu workflow hoje é o seguinte: eu praticamente não escrevo código. Tomo as
decisões estratégicas e arquiteturais de alto nível, descrevo em linguagem
natural, e agentes de IA implementam.&lt;/p&gt;
&lt;p&gt;Quase nunca leio diffs. Valido por funcionalidade, com testes unitários e E2E
que também são conduzidos por IA.&lt;/p&gt;
&lt;p&gt;Sei o que você está pensando: &amp;ldquo;esse cara não sabe mais programar&amp;rdquo;. Errado. O
que aconteceu é que revisar código deixou de ser a alocação mais eficiente da
minha atenção.&lt;/p&gt;
&lt;p&gt;A IA revisa o mecânico melhor e mais rápido do que eu. Programação virou
commodity. Na verdade sempre foi, só que agora o preço apareceu na etiqueta.&lt;/p&gt;
&lt;p&gt;Ainda existe revisão humana, mas ela foi para o lugar caro: mudanças
irreversíveis, arquitetura, modelo de ameaça, IAM, custo e definição do que um
teste realmente prova.&lt;/p&gt;
&lt;p&gt;Mas se eu não escrevo o sistema, o que eu construo? Essa é a pergunta certa, e
a resposta reorganiza a profissão inteira: eu construo o harness.&lt;/p&gt;
&lt;h2 id="construir-consertar-ficou-barato-demais"&gt;Construir-consertar ficou barato demais&lt;/h2&gt;
&lt;p&gt;Antes de definir harness, o porquê dele. A tese central é simples: o custo de
construir e consertar software despencou.&lt;/p&gt;
&lt;p&gt;Quando o custo de regenerar algo cai perto de zero, revisar cada linha desse
algo vira micro-otimização de um recurso que não é mais escasso.&lt;/p&gt;
&lt;p&gt;Existe uma analogia útil com o compilador, mas não uma equivalência. Ninguém
audita a saída do GCC linha por linha porque compiladores têm semântica estável,
testes, benchmarks e décadas de maturidade.&lt;/p&gt;
&lt;p&gt;Agentes são probabilísticos. A lição que importa não é tratá-los como
compiladores. É mover a verificação para onde ela escala: contratos de
comportamento, testes, métricas, gates e rollback.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Ah, mas e os bugs? E vazamento de dados, corrupção de estado, custo de cloud
explodindo?&amp;rdquo; Esses problemas sempre existiram, antes de qualquer LLM.&lt;/p&gt;
&lt;p&gt;O erro é inevitável em qualquer regime. A pergunta certa nunca foi &amp;ldquo;como evitar
todo erro&amp;rdquo;, e sim &amp;ldquo;quão rápido eu detecto, limito e conserto?&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;E responder isso de forma automática, contínua e barata é exatamente o trabalho
que sobrou para o humano.&lt;/p&gt;
&lt;h2 id="harness-é-o-novo-código"&gt;Harness é o novo código&lt;/h2&gt;
&lt;p&gt;Se o código é descartável, sua confiança inteira precisa morar em outro lugar.
Esse lugar é o harness.&lt;/p&gt;
&lt;p&gt;O nome vem de &lt;em&gt;test harness&lt;/em&gt;: o ambiente, as dependências e os controles usados
para exercitar um componente em teste. Na era dos agentes, o conceito expandiu.&lt;/p&gt;
&lt;p&gt;Harness é todo o aparato ao redor do código gerado que responde, automaticamente
e o tempo todo, a uma única pergunta: isso funciona dentro dos limites que eu
aceito?&lt;/p&gt;
&lt;p&gt;Um agente sozinho perde coerência quando a tarefa cresce. O contexto enche, o
escopo escapa e ele marca como pronta a feature que só parece pronta.&lt;/p&gt;
&lt;p&gt;A divisão em
fecha esse buraco.&lt;/p&gt;
&lt;p&gt;Separar quem gera de quem julga é parte central desse loop. Um agente revisando
o próprio trabalho tende a se aprovar. Um avaliador cético, com critérios e
acesso ao sistema rodando, encontra a feature de mentira que o gerador chama de
pronta.&lt;/p&gt;
&lt;h3 id="o-loop-que-interessa"&gt;O loop que interessa&lt;/h3&gt;
&lt;div class="mermaid"&gt;flowchart TD
A[Eu aprovo&lt;br/&gt;a spec] --&gt; B[Planner quebra a spec&lt;br/&gt;em tarefas e contratos]
B --&gt; C[Generator implementa&lt;br/&gt;com testes]
C --&gt; D[Evaluator exercita&lt;br/&gt;o artefato e critérios]
D --&gt; E[Gate executa testes,&lt;br/&gt;métricas e políticas]
E --&gt; F{Contrato e gates&lt;br/&gt;passaram?}
F --&gt;|não| C
F --&gt;|sim| G[Entrega no alvo real]
G --&gt; H[Eu valido&lt;br/&gt;a experiência]
&lt;/div&gt;
&lt;p&gt;No meu harness, eu aprovo a especificação executável e valido a experiência
entregue. Entre esses dois pontos, o agente trabalha contra uma escada de testes
e um gate que bloqueia regressão.&lt;/p&gt;
&lt;p&gt;O meu harness inclui:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uma
que aprovo antes da implementação, com cenários e decisões registradas&lt;/li&gt;
&lt;li&gt;Step definitions falhando antes da implementação e testes de aceitação rodando no comando normal de testes&lt;/li&gt;
&lt;li&gt;Domínio testável sem UI, rede, relógio ou filesystem reais, com seams injetáveis e fakes de primeira classe&lt;/li&gt;
&lt;li&gt;Testes de interação que atravessam o pipeline real de eventos em modo headless, em vez de chamar handler direto&lt;/li&gt;
&lt;li&gt;Um script de gate único para agente, hook, CI e humano, com níveis fast, push e full&lt;/li&gt;
&lt;li&gt;Format, lint em deny, testes, limites de tamanho, direção de dependências, auditoria de dependências e ratchet de cobertura&lt;/li&gt;
&lt;li&gt;
, teto de complexidade, CRAP score e orçamento de performance como métricas de qualidade&lt;/li&gt;
&lt;li&gt;Specs, contexto de trabalho, definição de pronto e ratchets versionados para o próximo agente retomar o estado real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;É a execução prática da regra do
.&lt;/p&gt;
&lt;h3 id="parêntese-técnico-cc-e-crap"&gt;Parêntese técnico: CC e CRAP&lt;/h3&gt;
&lt;p&gt;Complexidade ciclomática, ou CC, conta os caminhos independentes que uma função
abre. Ela não mede linhas. Cada decisão acrescenta uma rota que o teste precisa
conhecer.&lt;/p&gt;
&lt;div class="mermaid"&gt;flowchart TD
A[Começo] --&gt; B{Conta ativa?}
B --&gt;|não| X[Recusa]
B --&gt;|sim| C{É admin?}
C --&gt;|sim| Y[Permite]
C --&gt;|não| D{Plano pago e&lt;br/&gt;e-mail verificado?}
D --&gt;|sim| Y
D --&gt;|não| X
&lt;/div&gt;
&lt;p&gt;Esse fluxo tem três decisões. A CC é 4: o caminho-base mais uma unidade por
decisão. Não diz que a função está errada. Diz que ela tem quatro caminhos
independentes para justificar com teste.&lt;/p&gt;
&lt;p&gt;Uma função com CC 1 é linear. Com CC 10, já é preciso explicar por que dez
caminhos independentes vivem no mesmo lugar. No meu harness, o lint tem teto
para essa dívida não crescer no escuro.&lt;/p&gt;
&lt;p&gt;CRAP transforma isso em risco: função complicada e sem teste custa caro para
mudar. A fórmula usada pelo harness é &lt;code&gt;CRAP = CC² × (1 - cobertura)³ + CC&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Função&lt;/th&gt;
&lt;th style="text-align: right"&gt;Cobertura&lt;/th&gt;
&lt;th style="text-align: right"&gt;CRAP&lt;/th&gt;
&lt;th&gt;Leitura&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CC 4&lt;/td&gt;
&lt;td style="text-align: right"&gt;100%&lt;/td&gt;
&lt;td style="text-align: right"&gt;4&lt;/td&gt;
&lt;td&gt;cobertura reduz o score ao valor da CC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CC 4&lt;/td&gt;
&lt;td style="text-align: right"&gt;50%&lt;/td&gt;
&lt;td style="text-align: right"&gt;6&lt;/td&gt;
&lt;td&gt;a falta de cobertura já aumenta o risco&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CC 4&lt;/td&gt;
&lt;td style="text-align: right"&gt;0%&lt;/td&gt;
&lt;td style="text-align: right"&gt;20&lt;/td&gt;
&lt;td&gt;quatro decisões sem teste viram dívida&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CC 10&lt;/td&gt;
&lt;td style="text-align: right"&gt;0%&lt;/td&gt;
&lt;td style="text-align: right"&gt;110&lt;/td&gt;
&lt;td&gt;a combinação escala rápido demais para ignorar&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Métrica mede a qualidade do artefato. Ela não sabe se o artefato é o que o
produto pediu. A spec Gherkin descreve cenários Given, When e Then; os testes
de aceitação executam esses cenários pelo caminho do usuário.&lt;/p&gt;
&lt;p&gt;Cobertura só mostra que o código rodou. Mutation testing muda o código de forma
controlada e verifica se a suíte mata a mudança. Mutante sobrevivente é teste
que passou sem restringir o comportamento que importa.&lt;/p&gt;
&lt;p&gt;O harness é o que separa vibe coding de produção de slop. O dev deixou de
desenvolver sistemas para desenvolver o harness que permite que sistemas sejam
gerados.&lt;/p&gt;
&lt;p&gt;O código virou output. O harness virou o produto. Isso é AI harness engineering,
e é o fundamento da profissão daqui para frente.&lt;/p&gt;
&lt;p&gt;O dev que não aprende isso fica com duas opções, ambas ruins: ler cada diff,
mais lento que a máquina, ou confiar às cegas, mais irresponsável que a máquina.&lt;/p&gt;
&lt;p&gt;O operador com harness não escolhe entre velocidade e confiança. Ele constrói a
confiança uma vez, em infraestrutura, e a máquina a executa em toda mudança.&lt;/p&gt;
&lt;h2 id="o-failure-ledger-é-a-memória-que-falta"&gt;O failure ledger é a memória que falta&lt;/h2&gt;
&lt;p&gt;O pulo do gato é fazer o harness se alimentar sozinho. Cada falha relevante em
produção precisa virar um artefato que muda o comportamento da próxima rodada.&lt;/p&gt;
&lt;p&gt;Eu chamo isso de &lt;em&gt;failure ledger&lt;/em&gt;: um livro-razão de tudo que já quebrou e do
que foi feito para impedir ou detectar a repetição.&lt;/p&gt;
&lt;p&gt;Cada entrada é dado operacional: incidente, hipótese, sinal, causa, correção,
teste, alerta, versão e dono.&lt;/p&gt;
&lt;p&gt;RAG guarda fatos sobre o mundo. O ledger guarda o que o agente e o sistema
fizeram no mundo, o contexto daquela decisão e a consequência observada.&lt;/p&gt;
&lt;h3 id="parêntese-rag-não-substitui-ledger"&gt;Parêntese: RAG não substitui ledger&lt;/h3&gt;
&lt;p&gt;
. O retriever busca contexto relevante
e o modelo usa esse contexto para responder ou tomar a próxima decisão.&lt;/p&gt;
&lt;p&gt;Isso resolve acesso à informação. Se o runbook de uma API está indexado, o
agente pode recuperá-lo antes de chamar a ferramenta. RAG não registra que a
chamada foi feita, com quais argumentos, qual efeito externo aconteceu e se o
resultado foi bom ou ruim.&lt;/p&gt;
&lt;p&gt;No ledger, decisão, ação, resultado e causa são o centro. Sem essa cadeia, você
dá contexto ao próximo agente, mas não prova o que o anterior fez.&lt;/p&gt;
&lt;p&gt;Agente sem memória de resultado é estagiário com amnésia: executa, quebra,
começa de novo e repete.&lt;/p&gt;
&lt;p&gt;
.
Sem histórico causal, o incidente seguinte vira inferência, não evidência.&lt;/p&gt;
&lt;p&gt;Uma entrada útil do meu ledger teria, no mínimo, incident_id, commit e imagem do
deploy, versão do prompt e do modelo, tool calls, inputs sanitizados, assertions
quebradas, trace, métrica, blast radius e a contramedida criada.&lt;/p&gt;
&lt;p&gt;A contramedida não é só &amp;ldquo;corrigi o bug&amp;rdquo;. Pode ser um teste de regressão, uma
invariante no banco, uma política IAM, um alarme de custo, um canário ou uma
aprovação antes de alterar estado irreversível.&lt;/p&gt;
&lt;p&gt;O estado do ledger deve ser append-only. Correção é evento novo, não edição da
história. Sem isso você não responde o que o agente decidiu, por que decidiu e
qual dado anterior contaminou a decisão.&lt;/p&gt;
&lt;p&gt;Meu objetivo é simples: a mesma falha não deveria nos ensinar a mesma lição duas
vezes. Não é magia. Dependências e requisitos mudam, e um teste pode continuar
incompleto. Mas esquecer o que quebrou é escolha, não destino.&lt;/p&gt;
&lt;p&gt;O ledger aprende com uma falha real. Ainda falta testar o que não falhou, mas
vai falhar. Esperar o incidente para descobrir se o sistema se recupera é uma
forma cara de testar recuperação.&lt;/p&gt;
&lt;p&gt;É por isso que a Netflix entra aqui. O
.
Não é uma história sobre servidores aleatórios caindo. É um método para trocar
suposição por evidência antes que a produção faça o experimento por você.&lt;/p&gt;
&lt;p&gt;O paralelo com agentes é direto. O ledger transforma a falha que já aconteceu
em contramedida. O teste de caos força falhas plausíveis para verificar se as
contramedidas, os limites e a recuperação realmente funcionam.&lt;/p&gt;
&lt;p&gt;Para agentes, isso significa testar timeout de ferramenta, resposta 429, schema
desatualizado, fila fora de ordem, permissão IAM negada, migração parcial, cache
mentiroso e prompt injection vindo da saída de uma ferramenta.&lt;/p&gt;
&lt;p&gt;Não basta ver se o agente concluiu a happy path. Ele precisa sobreviver a dados
ruins, dependência lenta, autorização revogada e efeito externo que diz sucesso
sem ter acontecido.&lt;/p&gt;
&lt;p&gt;Uma ressalva honesta: o ledger aprende com falha que aconteceu e foi detectada.
Ele é cego para corrupção silenciosa, permissão larga que ninguém explorou e
custo vazando devagar.&lt;/p&gt;
&lt;p&gt;Para essas classes de problema, a resposta é mais harness: detector de anomalia
de billing, reconciliação de dados, drift de schema, varredura de segredo,
auditoria periódica de permissões e limites de blast radius.&lt;/p&gt;
&lt;h2 id="terceirize-o-sensível-vibecode-o-resto"&gt;Terceirize o sensível, vibecode o resto&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;Mas e as partes críticas? Auth, pagamento, identidade?&amp;rdquo; Resposta: você não
deveria estar escrevendo isso na unha em 2026, com ou sem IA.&lt;/p&gt;
&lt;p&gt;Stripe, Okta, Clerk. Empresas com times inteiros dedicados só a isso fazem
melhor do que você jamais fará. Terceirizar o sensível é boa engenharia, ponto.&lt;/p&gt;
&lt;p&gt;O que sobra como responsabilidade sua depois de terceirizar? Integração,
configuração e os seus dados de domínio, aqueles que nenhum SaaS resolve por
você.&lt;/p&gt;
&lt;p&gt;A maioria dos vazamentos que vejo não é código ruim. É bucket S3 público,
política IAM permissiva, webhook sem validação de assinatura e cola mal feita
entre componentes.&lt;/p&gt;
&lt;p&gt;A superfície de erro migrou do código para a cola. Ou seja: migrou para
exatamente o território do harness.&lt;/p&gt;
&lt;p&gt;O modelo completo fecha assim:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Compre o sensível: auth, pagamento e identidade.&lt;/li&gt;
&lt;li&gt;Vibecode o descartável: praticamente todo o resto.&lt;/li&gt;
&lt;li&gt;Concentre o cérebro humano no harness: testes, observabilidade, configuração e decisão de risco.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Isso não é preguiça. É alocação racional do recurso mais caro do sistema, que é
a sua atenção.&lt;/p&gt;
&lt;h2 id="o-dev-de-crud-já-era"&gt;O dev de CRUD já era&lt;/h2&gt;
&lt;p&gt;Alocação racional tem um lado B: ela expõe quem estava alocado no lugar errado.&lt;/p&gt;
&lt;p&gt;Pensa no dev das antigas: recebia ticket, escrevia endpoint, montava CRUD em
cima do ORM, mapeava request para query para response e ia levando de sprint em
sprint.&lt;/p&gt;
&lt;p&gt;Backend de sistema interno, formulário para o banco, relatório para a tela. Vida
estável.&lt;/p&gt;
&lt;p&gt;Esse trabalho foi o primeiro a virar commodity, e não por acaso. É o código mais
previsível, repetitivo e bem representado nos dados de treino que existe.&lt;/p&gt;
&lt;p&gt;Ambiguidade quase zero. Um agente entrega em minutos, por centavos, e ainda
entrega com teste junto. Não existe cenário em que digitar isso à mão seja uma
alocação defensável de um salário de engenheiro.&lt;/p&gt;
&lt;p&gt;A parte desconfortável: esse dev não &amp;ldquo;vai ser&amp;rdquo; substituído. Já foi. O crachá
ainda existe; a função, não.&lt;/p&gt;
&lt;p&gt;A vaga sobrevive por inércia organizacional, e inércia é um prazo, não uma
proteção. Quando uma empresa descobre que um operador com agentes entrega o
backlog de N devs de CRUD, a matemática do headcount se resolve sozinha.&lt;/p&gt;
&lt;p&gt;É extinção com delay, e o delay está encurtando.&lt;/p&gt;
&lt;p&gt;Os anos de experiência desse dev não convertem automaticamente para o trabalho
novo. Saber escrever um CRUD não é saber o que medir, quando desconfiar, nem
como desenhar um teste que prova alguma coisa.&lt;/p&gt;
&lt;p&gt;São músculos diferentes. A rota de fuga existe, mas não se chama &amp;ldquo;aprender a
fazer prompt&amp;rdquo;. Prompt é trivial. Se chama aprender a construir harness.&lt;/p&gt;
&lt;p&gt;Quem fizer essa migração vira operador. Quem não fizer vai competir em preço com
uma API que cobra centavos por milhão de tokens.&lt;/p&gt;
&lt;h2 id="o-dev-virou-operador"&gt;O dev virou operador&lt;/h2&gt;
&lt;p&gt;Junta tudo isso e o quadro fica claro: o &amp;ldquo;dev&amp;rdquo; que usa IA hoje não é mais dev
no sentido de 2022. É um operador.&lt;/p&gt;
&lt;p&gt;Quem não entende de system design, produto, segurança e harness já ficou para
trás, mesmo que ainda não tenha percebido.&lt;/p&gt;
&lt;p&gt;Digitar código virou o cartão perfurado da nossa era. O que não virou legado foi
fundamento: saber o que construir, como estruturar, o que medir e quando
desconfiar.&lt;/p&gt;
&lt;p&gt;A camada de valor subiu, e quem ficou agarrado na camada de baixo está competindo
com uma API.&lt;/p&gt;
&lt;p&gt;Tem um efeito colateral que pouca gente discute: a pirâmide achatou. O júnior
que só escrevia código perdeu a função, mas o caminho para virar quem toma
decisão de arquitetura passava justamente por anos escrevendo código.&lt;/p&gt;
&lt;p&gt;A indústria ainda não resolveu de onde vão sair os próximos operadores. Isso
sugere que quem já cruzou a ponte fica mais escasso com o tempo, não menos.&lt;/p&gt;
&lt;h2 id="a-defasagem-que-ninguém-te-conta"&gt;A defasagem que ninguém te conta&lt;/h2&gt;
&lt;p&gt;Agora a parte incômoda. O trabalho já mudou, mas o mercado ainda não.&lt;/p&gt;
&lt;p&gt;A maioria das empresas contrata, entrevista e paga pelo modelo antigo. LeetCode,
diff review ao vivo, system design sem IA. Existe uma defasagem brutal entre o
que o trabalho virou e o que o funil de contratação mede.&lt;/p&gt;
&lt;p&gt;Isso gera uma situação esquisita: o operador é mais valioso na prática e, ao
mesmo tempo, mal medido pelo processo seletivo.&lt;/p&gt;
&lt;p&gt;A consequência prática é que você precisa dos dois modos. Opera do jeito novo
no dia a dia e mantém o modo entrevista aquecido em paralelo.&lt;/p&gt;
&lt;p&gt;É irritante? É. Mas é o pedágio de estar na frente da curva enquanto o resto do
mercado alcança.&lt;/p&gt;
&lt;h2 id="concluindo"&gt;Concluindo&lt;/h2&gt;
&lt;p&gt;A discussão &amp;ldquo;IA vai substituir devs?&amp;rdquo; já morreu, só não avisaram todo mundo. A
substituição aconteceu na natureza do trabalho, não nas vagas.&lt;/p&gt;
&lt;p&gt;O que era escrever código virou orquestrar agentes com julgamento. O que era
code review virou engenharia de harness. O que era &amp;ldquo;conhecer o codebase&amp;rdquo; virou
&amp;ldquo;conhecer o sistema pelos seus sinais&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A aposta não é defender a habilidade antiga. É ser excelente no que sobrou de
humano no loop: decisão, arquitetura, harness e a responsabilidade final por
aquilo que roda.&lt;/p&gt;
&lt;p&gt;Construir-consertar ficou barato. Julgamento continua caro. Cobre por ele.&lt;/p&gt;</description></item></channel></rss>