20 perguntas · Node.js
Perguntas de entrevista para Desenvolvedor Node.js
Perguntas sobre event loop, streams, padrões assíncronos, APIs com Express, tratamento de erros e segurança. Servem para separar quem roda npm install de quem mantém um serviço Node saudável sob carga.
Contratar um desenvolvedor Node.js é, no fundo, avaliar julgamento de back-end expresso num runtime específico. O que pega muita gente é que o Node é single-threaded e orientado a eventos, então quem o trata como um servidor tradicional com threads escreve código que bloqueia o event loop sem perceber e derruba o desempenho de todas as outras requisições.
O sinal mais forte numa entrevista de Node é a pessoa entender essa diferença de verdade: trabalho síncrono, um JSON.parse pesado ou um loop de CPU dentro de um handler travam o processo inteiro, e a saída é delegar, usar streams ou um worker. Além do runtime, você quer confirmar que ela sabe estruturar uma API real: ordem dos middlewares, validação, tratamento de erro consistente, não vazar stack trace e não estourar a memória carregando um arquivo grande inteiro em vez de processá-lo como stream.
As perguntas abaixo vão dos fundamentos do event loop para streams e assincronia, depois para desenho de API, tratamento de erros e segurança, que é a ordem em que a maturidade em produção aparece. Preste atenção em quem fala de backpressure, graceful shutdown, timeouts e do que acontece quando uma dependência fica lenta. Combine duas perguntas de runtime com uma discussão de API e o cenário “o serviço está consumindo memória demais”, e você logo vai saber se a pessoa já operou Node em produção ou só fez o CRUD do tutorial.
Event loop e runtime5 perguntas
O Node é single-threaded. Então como ele atende milhares de conexões simultâneas?
O que observar: I/O não bloqueante delegado ao sistema operacional e à libuv, com o event loop executando callbacks quando cada operação termina.
O que significa “bloquear o event loop”, e você pode dar um exemplo de código que faz isso sem querer?
O que observar: Exemplos como funções síncronas de fs ou crypto, JSON.parse de payloads enormes, regex catastrófica ou um loop pesado dentro de um handler.
Como você lidaria com uma tarefa que exige muita CPU no Node sem travar o servidor?
O que observar: Worker threads, processos filhos ou uma fila com workers separados, em vez de rodar o cálculo dentro do handler HTTP.
Qual é a diferença entre process.nextTick, setImmediate e setTimeout(fn, 0)?
O que observar: Que nextTick roda antes de qualquer outra fila, setImmediate roda na fase de check e setTimeout na de timers, e o risco de abusar do nextTick.
Como o Node consegue fazer I/O não bloqueante por baixo dos panos?
O que observar: A libuv, o uso de mecanismos do sistema operacional (epoll, kqueue) e o pool de threads para operações como arquivo, DNS e crypto.
Streams e padrões assíncronos5 perguntas
O que são streams no Node, e quando você processaria um arquivo grande como stream em vez de carregá-lo na memória?
O que observar: Processar por partes com memória constante, em uploads, exportações e logs, usando pipeline para ligar as etapas com segurança.
O que é backpressure, e como as streams lidam com ela?
O que observar: O consumidor mais lento sinalizando ao produtor para pausar, com o retorno de write() e o evento drain, ou o pipeline cuidando disso automaticamente.
Como você executa várias operações assíncronas em paralelo e espera todas terminarem, e qual é a diferença para aguardar uma por vez?
O que observar: Promise.all versus await em sequência, Promise.allSettled quando falhas parciais são aceitáveis e limite de concorrência para não sobrecarregar serviços.
Qual é a diferença entre callbacks, Promises e async/await, e como evitar rejeições não tratadas?
O que observar: A evolução dos padrões, try/catch nos awaits, não deixar Promises soltas e saber que uma rejeição não tratada derruba o processo nas versões atuais.
Como você adicionaria um timeout a uma operação assíncrona que pode travar?
O que observar: AbortController e AbortSignal.timeout, ou Promise.race com um timer, cancelando de fato a operação e não só ignorando o resultado.
APIs e arquitetura5 perguntas
Me explique como funcionam os middlewares no Express e por que a ordem importa.
O que observar: A cadeia com next(), middlewares de autenticação e parsing antes das rotas e o middleware de erro, com quatro argumentos, no final.
Como você estrutura uma aplicação Express ou Fastify que está crescendo para que ela continue fácil de manter?
O que observar: Separação entre rotas, regra de negócio e acesso a dados, módulos por domínio, configuração centralizada e injeção de dependências simples.
Como você centraliza o tratamento de erros numa API Express para que as falhas devolvam respostas consistentes?
O que observar: Um middleware de erro único, classes de erro com status, captura de erros assíncronos e um formato padrão de resposta sem stack trace para o cliente.
Onde e como você valida os dados de entrada de uma requisição?
O que observar: Na borda da aplicação, com schemas (Zod, Joi, JSON Schema), rejeitando cedo com mensagens claras e sem confiar em nada que vem do cliente.
Como você implementa um graceful shutdown para não derrubar requisições em andamento durante o deploy?
O que observar: Tratar o SIGTERM, parar de aceitar conexões novas, terminar as em andamento com um prazo, fechar conexões com banco e filas e só então sair.
Tratamento de erros e segurança5 perguntas
O que acontece com uma exceção não capturada no Node, e como você deve lidar com ela?
O que observar: Que o processo fica em estado incerto: registrar o erro, encerrar de forma controlada e deixar o orquestrador reiniciar, em vez de seguir rodando como se nada tivesse acontecido.
O uso de memória de um serviço Node só aumenta. Como você investiga um vazamento?
O que observar: Heap snapshots comparados ao longo do tempo, --inspect e Chrome DevTools, e suspeitos comuns como caches sem limite, listeners acumulados e closures segurando objetos grandes.
Como você protege uma API Node contra riscos comuns, como injeção, segredos vazados e stack traces expostos?
O que observar: Consultas parametrizadas, validação de entrada, headers de segurança, rate limiting, auditoria de dependências e respostas de erro genéricas em produção.
Como você gerencia segredos e configurações entre ambientes?
O que observar: Variáveis de ambiente ou um cofre de segredos, nada no repositório, validação da configuração na inicialização e rotação de credenciais.
Me conte sobre um incidente em produção com Node que você depurou. Qual foi a causa raiz e o que você mudou?
O que observar: Uma história concreta com sintoma, investigação, causa e uma mudança que evita a repetição, como alerta, teste ou ajuste de arquitetura.
Dicas para a entrevista de Desenvolvedor Node.js
- Garanta que a pessoa entende de verdade o event loop. Não entendê-lo é a maior fonte de código Node ruim.
- Valorize quem fala de streams e backpressure sem ser perguntado. É sinal de experiência real com arquivos e volume de dados.
- Aprofunde o tratamento de erros: respostas consistentes e rejeições tratadas separam seniores de juniores.
- Pergunte sobre o comportamento sob carga e com dependências lentas. Node em produção vive ou morre por timeouts e shutdown.
- Observe a consciência de segurança. Vazar stack trace ou segredos é um erro comum e caro.
FAQ
Perguntas frequentes
Quantas perguntas de Node.js fazer numa entrevista?
De seis a oito num horário de 45 a 60 minutos. Aprofundar o event loop, uma discussão de API e um cenário de produção rende mais do que correr por vinte definições.
Candidatos de Node precisam dominar JavaScript e assincronia?
Precisam. Node é JavaScript no servidor. Se closures, Promises e event loop estiverem frágeis, o código de back-end vai ter bugs sutis de confiabilidade.
Preciso avaliar um framework específico, como Express ou NestJS?
Confirme a familiaridade com o que a sua stack usa, mas priorize o entendimento do runtime e o julgamento sobre APIs. Um bom desenvolvedor Node aprende um framework novo rápido.
O que diferencia uma resposta júnior de uma sênior em Node?
O júnior monta uma rota de CRUD que funciona. O sênior fala de bloqueio do event loop, backpressure, timeouts, graceful shutdown e de incidentes que resolveu de verdade.
Como fazer a triagem de candidatos Node.js antes da entrevista?
Use um teste de habilidades curto ou perguntas de triagem na candidatura para filtrar quem entende de event loop e APIs antes de gastar tempo de entrevista. Na Hireaan, os testes são corrigidos pela IA e os candidatos aparecem ranqueados por aderência à vaga.
Mais bancos de perguntas de entrevista
- PHP / LaravelPerguntas para Desenvolvedor PHP / LaravelSaiba mais
- Python júniorPerguntas para Desenvolvedor Python júniorSaiba mais
- Python sêniorPerguntas para Desenvolvedor Python sêniorSaiba mais
- QAPerguntas para Analista de QA e automação de testesSaiba mais
- ReactPerguntas para Desenvolvedor ReactSaiba mais
- AndroidPerguntas para Desenvolvedor AndroidSaiba mais
Abriu a vaga de Desenvolvedor Node.js? Rode o processo na Hireaan.
A IA ranqueia os candidatos, você agenda as entrevistas, aplica testes de habilidades e envia a proposta, com um preço fixo para o time inteiro.
- 14 dias grátis
- Sem cartão de crédito
- Cancele quando quiser
- Conforme a LGPD
