Skip to content

Instantly share code, notes, and snippets.

@GuillaumeFalourd
Last active October 31, 2024 19:13
Show Gist options
  • Select an option

  • Save GuillaumeFalourd/a82f182697e26ec3d1dbb2be0eca207c to your computer and use it in GitHub Desktop.

Select an option

Save GuillaumeFalourd/a82f182697e26ec3d1dbb2be0eca207c to your computer and use it in GitHub Desktop.

Níveis de Senioridade

1. Desenvolvedor Backend Cloud Júnior

Conhecimento Técnico:

  • Linguagem de Programação: Consegue desenvolver APIs RESTful básicas em uma linguagem de programação comum (ex: Python, Java, Go).
  • Containers: Sabe criar um Dockerfile simples e usar docker-compose para rodar a aplicação localmente.
  • Persistência de Dados: Consegue integrar a aplicação com um banco de dados (relacional ou NoSQL) e realizar operações CRUD.
  • Infraestrutura como Código (IaC): Tem noções básicas de Terraform e consegue seguir exemplos para provisionar recursos simples (ex: uma instância de banco de dados ou um bucket S3).
  • Kubernetes: Consegue criar manifestos básicos para deployar uma aplicação em um cluster Kubernetes (ex: Deployment, Service).
  • Segurança: Tem noções básicas de segurança, como uso de variáveis de ambiente para credenciais e boas práticas de autenticação. Comportamental:

Colaboração:

  • Participa ativamente de discussões técnicas e busca ajuda quando necessário.
  • Documentação: Consegue escrever um README.md claro e objetivo, explicando como rodar a aplicação e acessar a API.
  • Feedback: Recebe bem feedbacks e está disposto a aprender e melhorar.

Case Prático:

  • Criar uma API simples com persistência de dados, containerizar a aplicação e rodá-la localmente com docker-compose.
  • Criar um manifesto Kubernetes básico para deployar a aplicação em um cluster local (ex: minikube).
  • Escrever um README.md explicando como rodar a aplicação e acessar a API.

Performance Report:

  • Avaliar a capacidade de seguir boas práticas de desenvolvimento e containerização.
  • Avaliar a clareza da documentação e a capacidade de rodar a aplicação localmente.

2. Desenvolvedor Backend Cloud Pleno

Conhecimento Técnico:

  • Linguagem de Programação: Desenvolve APIs RESTful mais complexas, com autenticação e autorização (ex: JWT).
  • Containers: Cria Dockerfiles otimizados e configurações mais avançadas de docker-compose (ex: múltiplos serviços, como banco de dados e cache).
  • Persistência de Dados: Integra a aplicação com diferentes tipos de bancos de dados e implementa estratégias de migração de dados.
  • Infraestrutura como Código (IaC): Escreve módulos Terraform para provisionar recursos mais complexos (ex: clusters Kubernetes, balanceadores de carga).
  • Kubernetes: Cria manifestos Kubernetes mais avançados, incluindo Ingress, ConfigMaps, Secrets e Auto-scaling.
  • Segurança: Implementa boas práticas de segurança em APIs e infraestrutura (ex: uso de Snyk para análise de vulnerabilidades, configuração de RBAC no Kubernetes).

Comportamental:

  • Autonomia: Consegue tomar decisões técnicas de forma independente e propor soluções para problemas mais complexos.
  • Mentoria: Ajuda desenvolvedores mais juniores a resolver problemas e a entender boas práticas.
  • Documentação: Escreve documentação técnica detalhada, incluindo diagramas de arquitetura e explicações sobre decisões técnicas.

Case Prático:

  • Criar uma API com autenticação e autorização, containerizar a aplicação e rodá-la com docker-compose.
  • Escrever módulos Terraform para provisionar um cluster Kubernetes e outros recursos necessários (ex: banco de dados, balanceador de carga).
  • Criar manifestos Kubernetes avançados para deployar a aplicação no cluster provisionado, incluindo Ingress e Secrets.
  • Escrever um README.md explicando como rodar a aplicação localmente e como provisionar a infraestrutura e deployar a aplicação no Kubernetes.

Performance Report:

  • Avaliar a capacidade de criar uma arquitetura escalável e segura.
  • Avaliar a qualidade dos módulos Terraform e dos manifestos Kubernetes.
  • Avaliar a clareza e a completude da documentação técnica.

3. Desenvolvedor Backend Cloud Sênior

Conhecimento Técnico:

  • Linguagem de Programação: Desenvolve APIs RESTful complexas, com foco em escalabilidade, performance e segurança.
  • Containers: Cria Dockerfiles altamente otimizados e configurações avançadas de docker-compose para ambientes de desenvolvimento e produção.
  • Persistência de Dados: Implementa estratégias avançadas de persistência, como sharding, replicação e backup.
  • Infraestrutura como Código (IaC): Escreve módulos Terraform reutilizáveis e modulares, com foco em escalabilidade e boas práticas de arquitetura.
  • Kubernetes: Implementa soluções avançadas em Kubernetes, como Service Mesh, CI/CD pipelines integrados e monitoramento com Prometheus e Grafana.
  • Segurança: Implementa práticas avançadas de segurança, como políticas de rede no Kubernetes, segurança de API e auditoria de logs.

Comportamental:

  • Liderança Técnica: Lidera discussões técnicas e toma decisões estratégicas para o time.
  • Mentoria: Atua como mentor para desenvolvedores mais juniores e plenos, ajudando-os a crescer tecnicamente.
  • Documentação e Comunicação: Escreve documentação técnica detalhada e clara, e comunica decisões técnicas de forma eficaz para diferentes stakeholders.

Case Prático:

  • Criar uma API complexa com autenticação, autorização e otimizações de performance.
  • Escrever módulos Terraform modulares e reutilizáveis para provisionar uma infraestrutura escalável e segura.
  • Criar manifestos Kubernetes avançados, incluindo Service Mesh e monitoramento.
  • Implementar uma pipeline de CI/CD para deployar a aplicação no Kubernetes.
  • Escrever um README.md e uma documentação técnica detalhada explicando as decisões de arquitetura e como rodar a aplicação e a infraestrutura.

Performance Report:

  • Avaliar a capacidade de liderar a criação de uma arquitetura robusta e escalável.
  • Avaliar a qualidade dos módulos Terraform e dos manifestos Kubernetes, com foco em reutilização e boas práticas.
  • Avaliar a capacidade de implementar soluções de segurança e monitoramento.
  • Avaliar a clareza e a profundidade da documentação técnica.

Critérios de Avaliação para Performance Reports

Boas Práticas de Arquitetura:

  • Modularidade, clareza e escalabilidade da aplicação e da infraestrutura.
  • Uso de ADRs (Architecture Decision Records) para justificar decisões técnicas.

Containerização:

  • Qualidade e otimização dos Dockerfiles e docker-compose.
  • Facilidade de rodar a aplicação localmente e em ambientes de produção.

Infraestrutura como Código (IaC):

  • Qualidade dos módulos Terraform: modularidade, reutilização e boas práticas.
  • Capacidade de provisionar uma infraestrutura escalável e segura.

Kubernetes:

  • Qualidade dos manifestos Kubernetes: uso de Ingress, ConfigMaps, Secrets, Auto-scaling, etc.
  • Implementação de soluções avançadas, como Service Mesh e monitoramento.

Segurança:

  • Implementação de boas práticas de segurança em APIs e infraestrutura.
  • Uso de ferramentas como Snyk para análise de vulnerabilidades.

Documentação:

  • Clareza e completude da documentação técnica.
  • Explicação das decisões de arquitetura e como rodar a aplicação e a infraestrutura.

Colaboração e Mentoria:

  • Capacidade de colaborar com o time e ajudar desenvolvedores mais juniores.
  • Participação em discussões técnicas e liderança de decisões estratégicas.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment