Avisa-me quando chegar um registo verificado a esta profissão → · Marque quais destas tarefas são suas (VOLO Pro, gratuito) → · Para uma equipa ou um curso de finalistas →
Programador backend
É dono da parte em que estar errado sai caro e não se vê — os dados que têm de continuar coerentes, o dinheiro que não pode mexer-se duas vezes, e o serviço que tem de estar de pé às três da manhã.
Encontra um invariante do teu sistema que nunca possa ser violado, e confirma se alguma coisa o faz cumprir mesmo ou se toda a gente simplesmente evita parti-lo.
Isto não é uma probabilidade de perder o emprego. Combina que parte da carga de tarefas do posto está exposta à automatização com até onde a adoção chegou de facto: serve para comparar profissões sobre uma base constante, e para mais nada.
Escrito para engenheiros que constroem serviços, APIs e camadas de dados. Corta por camada e não por senioridade — as páginas de júnior e de experiente cortam ao contrário e um engenheiro de backend sénior está nas duas. O trabalho de plataforma e de fiabilidade de sistemas sobrepõe-se mas responde por coisas diferentes; os pipelines de dados têm página própria.
O que está mesmo a mudar#
A unidade de análise é a tarefa, não o nome do posto. Um posto não é substituído: é a mistura de tarefas dele que se move.
Cada quadrado é uma tarefa. O tamanho é o peso que tem no trabalho; a cor, para onde a tarefa está a ir. Clique num quadrado para ver o que esse juízo não estabelece.
Gerar um endpoint não é o mesmo que decidir que ele deve existir, o que tem de garantir, ou o que acontece quando é chamado duas vezes. Escrever raramente foi a parte cara deste trabalho.
A Uber relata que uma ferramenta redige agora correções para corridas de dados de baixo nível no seu código Go, com os responsáveis pelo código a aceitar a maioria e a rejeitar algumas que passaram nos testes mas estavam erradas; trata-se de corridas numa só base de código, não de transações nem de ordem entre serviços. Os incidentes quase nunca são atribuídos publicamente a código de concorrência gerado, e esse silêncio não é prova de que não aconteça.
A Google relata que a maior parte do código de uma grande migração de identificadores foi escrita por IA, enquanto cada alteração foi revista e posta em produção por pessoas; trata-se de uma alteração de código numa empresa, não de uma migração de esquema numa base de dados em produção. A afirmação é sobre quem decide e responde por isso, e não sobre quem a escreve.
A agência de cibersegurança do Reino Unido aconselha a escrever a lógica de autorização mais perto do manual, e um teste de referência concluiu que cerca de metade dos backends funcionais dos modelos podia ser explorada; nenhum dos dois é um estudo de defeitos que separe o código gerado do código escrito à mão dentro da mesma base de código, que é o que o resolveria. Os ambientes regulados já exigem aqui a assinatura de uma pessoa, e pode ser isso, mais do que a dificuldade, a segurar o trabalho.
Nada aqui mede quanto disto é hoje conduzido por ferramentas na prática, e a resposta difere enormemente entre uma equipa com orçamento de observabilidade e uma sem ele.
Isto nada diz sobre se a carga de piquete está a subir ou a descer — que é a pergunta que de facto importa à maioria dos engenheiros e aquela que ninguém publica.
É este o teu trabalho? Di-lo e esta página estreita-se à tua parte dele.
O nome de um posto é um pacote de tarefas compradas em conjunto, e não há duas pessoas com o mesmo pacote. Não é enviado nada para lado nenhum: fica neste navegador.
Mudanças recentes#
Orientações da agência nacional de cibersegurança do Reino Unido, escritas por um dos seus arquitetos de segurança principais, que situam o desenvolvimento assistido por IA num espetro que vai do totalmente gerado ao manual. Aconselham a deslizar para o manual quando se constrói lógica de autenticação ou de autorização, quando se tratam dados pessoais sensíveis, quando se lida com segredos, tokens ou credenciais, ou quando as consequências de uma falha de segurança seriam significativas. São conselhos, não uma regra vinculativa, e não proíbem usar IA para código de segurança; não dão números sobre como os programadores trabalham de facto.
Uma falha, um recuo, uma regulação ou um custo estão a travar a adoção. Pode baixar uma avaliação ou alargar a sua incerteza.
O mesmo recenseamento: 20 perguntas fixas colocadas a todas as agências que reportam por dever legal, cada uma respondida com Sim ou Não, com o produto indicado e as licenças por escalões. Gerar código com IA tem Sim em 31 de 45, sétimo lugar entre os 20. O que dá valor a esta linha para além da contagem é a coluna do produto, porque as ferramentas nomeadas não existiam há três anos: GitHub Copilot na Agricultura, nos Assuntos dos Veteranos, na SEC e em mais uma dúzia, Claude Code no Interior, Poolside na Segurança Interna e no Trabalho, Codex no Gabinete de Gestão de Pessoal, Amazon Q Developer na Saúde e Serviços Humanos. Compare-se com a linha das reservas de viagem do mesmo ficheiro, onde a maioria dos Sim nomeia o SAP Concur: naquela pergunta as agências apontavam em boa medida para uma plataforma que já tinham, e nesta não. Três limites. Um escalão de 10 000 a 50 000 na Energia ou na Agência de Protecção Ambiental é uma licença empresarial que também responde a outras linhas deste ficheiro, pelo que não é uma contagem de pessoas a escrever código com ela. Um Sim é o empregador a declarar que dispõe da ferramenta, não uma medição de quanto código ela escreve nem de quanto desse código fica. E a pergunta diz código sem dizer back-end ou front-end, nem há quanto tempo está no ofício quem o escreve; este registo fica aqui porque escrever código de serviço rotineiro é o que esta tarefa é, não porque o inventário o diga.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
Um teste de referência com revisão por pares, de 392 tarefas de backend, cada uma um conjunto de endpoints a implementar a partir de uma especificação, com testes funcionais e explorações de segurança de ponta a ponta, incluindo controlo de acesso inadequado e autorização incorreta. O melhor modelo em correção chegou aos 62%; em média, cerca de metade dos programas corretos que cada modelo produziu podia ser explorada; e o melhor modelo em código correto e seguro chegou aos 35%. São modelos de 2025 a escrever backends inteiros a partir de uma especificação, não alterações dentro de uma base de código existente, e alguns autores trabalham para uma empresa que constrói agentes de programação com IA.
Uma falha, um recuo, uma regulação ou um custo estão a travar a adoção. Pode baixar uma avaliação ou alargar a sua incerteza.
Um artigo com revisão por pares, de engenheiros da Uber, sobre uma ferramenta que corre no próprio fluxo de trabalho de desenvolvimento da Uber. Ao longo de 18 meses identificou 404 corridas de dados reproduzíveis na base de código Go da Uber, produziu correções para 224 (55%), e os programadores aprovaram 193 delas (86%) na revisão de código; entre as correções rejeitadas havia algumas consideradas incorretas apesar de terem passado nos testes iniciais. A Uber não vende a ferramenta. Abrange corridas de dados de baixo nível numa linguagem e numa base de código, não transações, idempotência, novas tentativas nem ordem entre serviços, e cada correção passou pela revisão de uma pessoa.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
Engenheiros da Google a descrever o seu próprio uso de modelos de linguagem em grandes migrações internas de código. Num estudo de caso, os identificadores da base de código do Ads (mais de 500 milhões de linhas) tiveram de passar de 32 para 64 bits para evitar cenários de transbordo para valores negativos que podiam causar interrupções do serviço; 80% das modificações de código nas alterações integradas foram inteiramente escritas por IA, na maioria dos casos uma pessoa teve de reverter pelo menos algumas das alterações do modelo, e os engenheiros estimaram que o tempo total foi reduzido em 50%. O artigo diz que as revisões de código e a implementação das alterações ainda exigem um operador humano. A Google vende os modelos que usou. Isto é uma mudança de tipo no código de toda uma base de código, não uma migração de esquema de uma base de dados em produção.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
Uma grande empresa tecnológica, com dados declarados pela própria e sem definição de como se mede o «gerado» (preenchimento automático ou funções inteiras). O número abrange todo o código novo da Google sem dizer de que tipo; este registo fica associado a esta tarefa porque escrever código de serviço rotineiro — handlers, validação, chamadas entre serviços e os respetivos testes — é exatamente esta tarefa, e não porque a declaração aponte para o trabalho de backend. Nada diz sobre contratações, e a revisão continuou nas mãos dos engenheiros.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
Uma estimativa interna da Amazon sobre a própria engenharia da Amazon, publicada pela empresa que vende a ferramenta — quem faz o trabalho, quem o mede e quem o vende são a mesma parte, o que é dito aqui porque não pode ser verificado de fora. A empresa publica também o seu método: o tempo poupado foi estimado a partir do número de dependências Java migradas, assumindo um dia ou mais de tempo de programador por dependência feita à mão. Repara no que a migração é: uma subida de versão de linguagem tem um compilador e uma bateria de testes existente como árbitro, por isso o sucesso é verificável por máquina em cada passo — a forma mais favorável possível para este género de automatização e não um resultado geral sobre o trabalho de backend. E repara no que é afirmado e no que não é: 4.500 anos é trabalho não feito, mais de mil programadores, sem que em lado nenhum se diga que algum deles saiu ou que um lugar foi eliminado.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
Um artigo com revisão por pares, sobretudo de autores da Microsoft, sobre uma ferramenta para engenheiros de prevenção que tratam incidentes na nuvem. O seu componente de recolha de informação de diagnóstico está implantado em mais de 30 equipas da Microsoft há mais de quatro anos; um componente de previsão da causa raiz que usa um modelo de linguagem, depois de uma fase preliminar bem-sucedida, está a ser usado ativamente por uma equipa de gestão de incidentes há vários meses. Ajuda no diagnóstico; não decide o que reverter ou aceitar, e a Microsoft vende os modelos envolvidos.
Uma empresa pô-lo em produção. Pode mover a linha de base, ponderado pela escala e por quanto esse contexto se parece com o teu.
O que isto significa para ti#
A metade visível deste trabalho — endpoints e canalização — é a metade exposta, e é aquilo para que terias sido contratado. As partes que se aguentam são sobre o que nunca pode acontecer, e isso aprende-se estando presente quando alguma coisa aconteceu. Chega-te a uma escala de prevenção mais cedo do que é confortável.
A tua posição é mais forte do que a da página de frontend na tarefa mais exposta, e a razão não é o trabalho ser mais difícil — é estar errado sair caro e não se ver, por isso a responsabilidade está concentrada. Repara no modo de falha que isso cria: rever alterações geradas em sistemas onde um erro fica silencioso durante meses.
As tuas opções#
Quatro direções, cada uma com as suas restrições reais e com uma coisa que podes testar esta semana. Continuar como estás é uma opção legítima; só tem de ser uma opção escolhida.
Ir para onde um erro sai caro
Pagamentos, contabilidade, identidade, tudo o que tenha um regulador — domínios onde uma alteração sem vigilância não é permitida, por isso a revisão e a responsabilidade são financiadas em vez de assumidas.
Mais lento, mais processo, e a profundidade leva anos. É outro género de engenharia, e não o mesmo trabalho numa sala mais segura.
Encontra um invariante do teu sistema que nunca possa ser violado, e confirma se alguma coisa o faz cumprir mesmo ou se toda a gente simplesmente evita parti-lo.
Ser dono da fronteira que os agentes podem atravessar
Alguém tem de decidir o que uma alteração automatizada pode tocar num serviço onde um erro é silencioso. Na maioria das equipas isso não foi dado a ninguém, e é por isso que aparece nas revisões de incidentes em vez das descrições de funções.
Responsabilidade sem título, por agora. Assume-a por escrito ou vai ser-te atribuída na primeira vez que algo se partir.
Escreve o que uma alteração automatizada consegue hoje integrar e implementar no teu serviço sem uma pessoa no caminho. Põe isso a circular e vê quem fica surpreendido.
Passar para trabalho de dados ou de plataforma
O raciocínio sobre coerência, falha e custo transfere-se diretamente, e ambos são sítios onde o mesmo critério é aplicado a uma superfície mais larga.
Ambos te afastam mais do produto e das pessoas que o usam, que é o custo com que alguns engenheiros se importam.
Segue um número de um painel da empresa até à tabela de onde vem, e conta por quantas transformações passou.
Perguntas frequentes#
As partes movem-se a velocidades diferentes, por isso um único número esconderia aquilo de que precisas. Escrever endpoints é já em grande medida trabalho de máquina. Decidir o que nunca pode acontecer quando dois pedidos chegam ao mesmo tempo, ou o que uma mensagem de erro pode revelar, não se moveu, porque são posições pelas quais se responde e não de escrever. Um sinal que consegues verificar: quando algo se partiu no trimestre passado, a parte difícil foi encontrá-lo ou decidir o que fazer com ele?
Na sua tarefa mais visível está menos exposto, e a razão vale a pena ser percebida em vez de tomada como consolo: a correção no backend é muitas vezes invisível e cara quando falha, por isso mais parte do trabalho é responsabilidade. É uma diferença estrutural, e não uma ordenação de dificuldade, e pode mudar — a metade de endpoints deste trabalho está exposta exatamente nos mesmos termos que a metade de frontend.
Para as entrevistas, isso ainda não mudou. Para o trabalho, a divisão honesta é que lembrar-se de um algoritmo conta menos do que contava, enquanto raciocinar sobre falhas conta mais — saber o que uma nova tentativa faz a um sistema que já está a sofrer é a mesma competência que as perguntas de desenho de sistemas tentam testar, aplicada a algo real. Aprende-a com os teus próprios incidentes e não com uma lista.
Já consegue escrever um rascunho, e não é essa a restrição. A restrição é alguém ter de garantir o que ele nunca pode fazer, migrar os dados dele anos mais tarde sem perder nada, e estar acordado quando ele falhar. São posições de responsabilidade, e a responsabilidade não ficou mais barata — nos domínios regulados tornou-se mais explicitamente obrigatória.
A estudar para isto?
Estes cursos levam até aqui. As páginas deles desdobram quais das suas competências se transferem e o que costuma faltar a quem se licencia.
Em que assentam estes juízos#
Dos 6 juízos de tarefa desta página, 6 apoiam-se num evento verificado e 0 são inferência da plataforma, cada um etiquetado onde aparece. Por detrás há 2 dimensões tecnológicas, uma trajectória reconstruída desde que os modelos de linguagem chegaram ao público e 8 eventos verificados.
Ver que tecnologias, como chegou aqui e o método →
Onde se situa na classificação oficial: competências, conhecimentos e profissões afins →
Outros cargos na mesma função#
Uma empresa divide o seu trabalho em funções antes de o dividir em cargos. Estes estão em Tecnologia e dados ao lado deste — um facto sobre organigramas, não um juízo de que sejam parecidos ou de que estejam a mudar na mesma direcção.
Programador de software júnior · Engenheiro de software experiente · Programador frontend · Engenheiro de dados · Engenheiro de aprendizagem automática · Investigador de IA · Testador de software / engenheiro de QA · Analista de dados · Cientista de dados · Estatístico · Economista · Analista de negócio · Responsável de sistemas de negócio · Técnico de suporte informático / helpdesk · Analista de segurança (SOC) · Engenheiro de DevOps / engenheiro de plataforma / SRE · Engenheiro de redes · Redator técnico / engenheiro de documentação · Gestor de candidaturas a financiamento
