Skip to content

Latest commit

 

History

History
71 lines (61 loc) · 3.5 KB

ProgramadorPleno.md

File metadata and controls

71 lines (61 loc) · 3.5 KB

#Programador PHP Pleno

##Responsabilidades

Desenvolvedor com experiência um pouco mais consolidada no desenvolvimento de software. Seu foco de atuação é na análise e desenvolvimento das funcionalidades dos software, sugerindo melhorias no processo e auxiliando os programadores junior e estagiários sempre que houver possibilidade/necessidade.

##Requisitos

  • Todas as do Programador PHP Junior, porém com maior desenvoltura (qualidade, produtividade e autonomia);
  • Domina os diagramas de classe e sequência da UML;
  • Conhecimento mais aprofundado sobre o protocolo HTTP
    • Utilização correta dos métodos (ao menos OPTIONS, GET, POST, PUT e DELETE);
    • Utilização correta dos status codes (envio e recebimento);
    • Negociação de conteúdo através dos headers de requisição (language, content­type, encoding, etc).
  • Utilização avançada de bancos de dados relacionais
    • Gerenciamento de schemas;
    • Gerenciamento de permissões;
    • Modelagem de dados, planejando os schemas para ter utilização otimizada dos tipos de colunas ;
    • Criação de queries complexas (subqueries)
  • Conhecimento intermediário sobre sistemas operacionais (processos, redes, estruturas de diretórios e configurações básicas) e linha de comando. Comandos como ps, kill, ifconfig, nmap, hostname, find, grep, >, >>, |, &, su, sudo, wget, crontab;
  • Conhecimento básico de segurança e criptografia de dados
    • SSL;
    • Geração de hash utilizando salt (HMAC);
    • Algoritmos de criptografia (DES, 3DES, etc).
  • Codificar a segurança da aplicação de acordo com as especificações fornecidas por especialistas em segurança de TI.
  • Sabe fazer as tarefas de debug e profile usando o xdebug ou zend debugger com o objetivo de localizar erros e otimizar os códigos;
  • Conhece os design patterns básicos
    • Abstract Factory;
    • Factory Method;
    • Singleton;
    • Adapter;
    • Decorator;
    • Proxy;
    • Facade;
    • Composite;
    • Strategy;
    • State.
  • Codifica seguindo ao menos KISS (keep it simple, stupid), DRY (don't repeat yourself), SRP (single responsability principle) e DIP (dependency inversion principle);
  • Possui entendimento básico e aplica as regras de clean code e object calisthenics;
  • Conhecimento de arquitetura de software, princípios SOLID e refatoração;
  • Conhecimento e compreensão da motivação do gerenciamento de assets (otimização de imagens, minificação, concatenação, cache busting);
  • Conhece sobre o grupo de interoperabilidade entre frameworks (PHP-FIG) e suas recomendações (PSRs)
  • Sabe as distinções entre PEAR e o Composer (e sabe utilizar ambos);
  • Criação de testes de unidade;
  • Conhecimento mais avançado do uso do git (merge, rebase, stash, branch, tag, cherry­pick);
    • Gerenciamento de branchs para desenvolvimento em equipe;
  • Consegue analisar um problema, pensando nas necessidades a serem contempladas computacionalmente, trazendo soluções viáveis;
  • Conhecimento sobre Cloud Computing (IaaS, PaaS e SaaS);
  • Conhece o manifesto ágil e seus princípios, e entende os papéis definidos pelo SCRUM

#Desejável

  • Conhecimentos avançados de algum framework MVC
  • Conhecimentos em bancos de dados NoSQL

#Perfil esperado

  • Disciplina e organização é fundamental;
  • Sedento por conhecimento;
  • Traz críticas em relação a ferramentas utilizadas, com o objetivo de melhorar o desenvolvimento;
  • Pesquisador nas horas vagas, trazendo novidades que podem ser realmente aplicadas nos projetos;
  • Senso crítico;
  • Engajamento com a equipe, para crescimento sustentável de todos.