Skip to content

Instantly share code, notes, and snippets.

@marcelgsantos
Created January 20, 2026 04:05
Show Gist options
  • Select an option

  • Save marcelgsantos/91cccaeb6ca6860b24dcf2033e1150b0 to your computer and use it in GitHub Desktop.

Select an option

Save marcelgsantos/91cccaeb6ca6860b24dcf2033e1150b0 to your computer and use it in GitHub Desktop.
Matriz de Competências de Engenharia Loop

Matriz de Competências de Engenharia Loop

1. Introdução

Este documento tem como objetivo descrever as atribuições técnicas e não técnicas para engenheiros de software júnior, pleno e sênior que atuam em frontend, backend ou ambos. Para cada nível, presume-se que se tenha todas as habilidades do nível anterior.

Este documento permite:

  • ter clareza sobre o que é esperado para cada nível;
  • ter clareza sobre o que é esperado para o próximo nível e planejar uma promoção;
  • ter clareza sobre se está fazendo o que é esperado para o seu nível e, caso contrário, ter um guia claro para ajudar a atingir o objetivo;

2. Matriz

Júnior

Habilidades Comportamentais

  • Atua no contexto da equipe;
  • Trabalha no contexto da tarefa e entende como ela impacta na solução completa;
  • Busca resolver problemas simples;
  • Ao ficar bloqueado, busca resolver o bloqueio e, caso não resolva, pede ajuda aos pares;
  • Busca mentoria e evolução constante;
  • Participa das discussões técnicas, faz perguntas e propõe soluções simples;
  • Tem conhecimento básico, se interessa e faz perguntas sobre o negócio;
  • Participa de code review e aprende sobre boas práticas e regras de negócio;
  • Tem domínio básico das ferramentas do dia a dia como editor e terminal;
  • Comunica-se de forma clara e direta com a equipe;
  • Procura aplicar melhorias no código sempre que encontrar uma oportunidade;
  • Segue as convenções e boas práticas definidas pela equipe;
  • Recebe feedbacks e usa-os como oportunidade de evolução e melhoria;
  • Contribui para criar ou manter um ambiente respeitoso e acolhedor;

Habilidades Técnicas

  • Conhecimentos básicos sobre Linux e terminal;
  • Conhecimento básico de versionamento de código, principais comandos do Git e principais funcionalidades do GitHub;
  • Conhecimento básico dos principais conceitos e comandos do Docker;
  • Conhecimento sólido sobre a base de sua linguagem de programação, framework e ecossistema;
  • Conhecimento sobre protocolo HTTP e APIs REST;
  • Conhecimento básico de orientação a objetos;
  • Conhecimento básico de bancos de dados relacionais e SQL;
  • Conhecimento básico sobre princípios de design, código limpo e refatoração;
  • Conhecimento básico sobre arquitetura limpa e domain-driven design;
  • Conhecimento básico sobre testes automatizados e pirâmide de testes;
  • Compreensão da importância e uso de ferramentas de análise estática como estilo de código e linters;
  • Conhecimento básico sobre segurança;
  • Noções básicas sobre infraestrutura e computação em nuvem;

Pleno

Habilidades Comportamentais

  • Atua no contexto da equipe e auxilia outras equipes;
  • Trabalha além do contexto da sua própria tarefa, possui clareza sobre as outras tarefas do projeto e está apto para ajudar os pares;
  • Busca resolver problemas de complexidade média;
  • Ao ficar bloqueado, é assertivo e possui repertório para resolver o bloqueio. Ajuda a desbloquear os pares;
  • Recebe mentoria e busca evolução, dá orientações e promove o compartilhamento e nivelamento de conhecimento;
  • Participa das discussões técnicas e, com embasamento, propõe soluções ao problema com assertividade;
  • Tem conhecimento médio sobre o negócio e busca ampliar este conhecimento em conversas com seus pares e pessoas de outras áreas;
  • Toma decisões com maior impacto técnico e de negócio;
  • Faz code review mais detalhado com atenção às boas práticas e regras de negócio;
  • Participa e contribui com a comunidade em eventos;
  • Tem pleno domínio das ferramentas do dia a dia como editor e terminal;
  • Sabe se comunicar com públicos diferentes e estabelece conexões entre produtos, negócios e tecnologia;
  • Dá e recebe feedbacks para evolução própria e de outras pessoas da equipe;
  • Ajuda na integração de novos membros na equipe;
  • Tem conhecimento sobre a base de código da empresa e propõe melhorias para manter o código consistente;
  • Propõe o uso de convenções e boas práticas já estabelecidas pelo mercado;
  • Busca influenciar positivamente as pessoas da equipe;

Habilidades Técnicas

  • Conhecimento sólido de Linux e terminal (gerenciar recursos, processos, redes e configuração);
  • Conhecimento sólido de versionamento de código, incluindo branching models, estratégias de merge, resolução de conflitos e boas práticas;
  • Conhecimento sólido de contêineres, orquestração de contêineres e troubleshooting de ambientes;
  • Conhecimento sólido da sua linguagem de programação e biblioteca padrão;
  • Conhecimento sólido de frameworks e seu funcionamento interno;
  • Conhecimento sólido do ecossistema em que sua tecnologia está inserida;
  • Conhece e utiliza bibliotecas que aumentam produtividade e padronizam o desenvolvimento;
  • Conhecimento sólido do protocolo HTTP e modelagem de APIs REST;
  • Conhecimento sólido de orientação a objetos;
  • Conhecimento sólido de bancos de dados relacionais, modelagem, ACID, indexação e otimização de consultas;
  • Conhecimento básico sobre bancos de dados não relacionais (Redis e Elasticsearch);
  • Conhecimento sólido de princípios de design como coesão, acoplamento, SOLID e object calisthenics;
  • Conhecimento sólido de código limpo e refatoração;
  • Conhecimento sólido de arquitetura limpa e domain-driven design;
  • Conhecimento básico sobre outros padrões arquiteturais (ports and adapters e microsserviços);
  • Conhecimento sólido sobre testes automatizados, dublês de testes, configuração e boas práticas;
  • Promotor do uso e mantenedor de ferramentas de análise estática como estilo de código e linters;
  • Conhecimento sólido em segurança de aplicações, com domínio dos principais riscos OWASP e práticas para preveni-los;
  • Conhecimento sólido sobre infraestrutura e computação em nuvem (VPC, WAF, load balancer, máquina virtual e banco de dados);
  • Experiência prática com deploy e gestão de aplicações em PaaS, incluindo execução de builds, gerenciamento de ambientes, integrações e observabilidade;
  • Conhecimento básico sobre cache;
  • Conhecimento básico sobre ferramentas de fila e processamento assíncrono;
  • Conhecimento básico sobre WebSockets e comunicação real-time;
  • Conhecimento básico sobre integração e entrega contínua, monitoramento, profiling e gerenciamento de logs;
  • Documenta código, APIs e processos seguindo padrões internos, garantindo clareza, rastreabilidade e alinhamento com boas práticas;

Sênior

Habilidades Comportamentais

  • Colabora de forma proativa com o time, promovendo cooperação e troca de conhecimento;
  • Procura ativamente ajudar os colegas de equipe na resolução de problemas;
  • Atua como promotor da evolução técnica da equipe;
  • Incentiva boas práticas, padrões de qualidade, aprendizado contínuo e autonomia;
  • Media conflitos de forma ativa e construtiva, buscando consenso e alinhamento entre as pessoas da equipe;
  • Dá e recebe feedbacks claros e frequentes com foco em impacto e evolução contínua dos colegas de equipe;
  • Participa de reuniões técnicas com escuta ativa, propondo e discutindo soluções;
  • Se compromete com rituais, participa ativamente das dinâmicas e possui foco nos objetivos coletivos;
  • Contribui ativamente para a arquitetura do projeto, identifica problemas e propõe melhorias;
  • Lida com tarefas de alta complexidade, avalia impactos e toma decisões técnicas bem fundamentadas;
  • Atua como promotor das tecnologias utilizadas, está por dentro das novidades e direciona o time;
  • Lidera iniciativas de forma proativa com o objetivo de guiar a equipe na resolução de problemas;
  • Possui conhecimento amplo do negócio e compartilha ativamente este conhecimento entre as pessoas da equipe;
  • Participa e contribui ativamente com a comunidade de software;
  • Possui conhecimento amplo para além da área técnica de atuação para tomar as melhores decisões;
  • Se responsabiliza pelas soluções que lidera, acompanha problemas até a resolução e responde pelos impactos técnicos e de negócio;

Habilidades Técnicas

  • Conhecimento sólido sobre sistemas operacionais (processos, threads, system calls e gerenciamento de memória);
  • Conhecimento sólido sobre protocolos de rede como DNS, HTTPS, SSL/TLS e modelo OSI;
  • Conhecimento avançado sobre segurança incluindo criptografia e algoritmos de hash;
  • Conhecimento avançado sobre banco de dados como window functions, concorrência, replicação, modelos de lock e teorema CAP;
  • Conhecimento sólido dos conceitos chave de observabilidade para instrumentação, monitoramento e telemetria;
  • Conhecimento sólido sobre cache e estratégias de cache;
  • Conhecimento sólido sobre filas, processamento assíncrono e ferramentas relacionadas como RabbitMQ;
  • Conhecimento sobre paralelismo, concorrência e programação assíncrona;
  • Conhecimento sólido sobre microsserviços, monolitos modulares e arquitetura orientada a eventos;
  • Arquitetura e organização de domínios complexos;
  • Projeta softwares com foco em desempenho, escalabilidade e custo operacional;
  • Conhecimento sólido sobre estratégias de deploy como blue green, deploy canário e feature flags;
  • Conhecimento sólido sobre testes de carga, estresse e ferramentas relacionadas como k6 e JMeter;
  • Conhecimento avançado sobre infraestrutura e computação em nuvem (elasticidade, serviços gerenciados e FaaS);
  • Conhecimento sólido sobre infraestrutura como código e ferramentas relacionadas como Terraform;
  • Conhecimento sobre servidores como Nginx, Apache ou Caddy;
  • Conhecimento sobre outras linguagens e paradigmas de programação;
  • Conhecimento básico sobre o funcionamento de runtimes como V8 e Zend Engine;
  • Possui visão ampla do processo de construção de software e sugere melhorias no processo;
  • Conhecimento sólido e promotor de práticas ágeis como XP, Scrum e Kanban;
  • Capacidade de tomada de decisão técnica de forma pragmática;
  • Conduz e registra decisões técnicas de impacto utilizando ADRs, RFCs e diagramas arquiteturais;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment