Skip to content

Latest commit

 

History

History
65 lines (55 loc) · 2.76 KB

ProgramadorPleno.md

File metadata and controls

65 lines (55 loc) · 2.76 KB

#Programador PHP Pleno

##Responsabilidades

Desenvolvedor com experiência um pouco mais consolidada no desenvolvimento de softwares. Seu foco de atuação é na análise e desenvolvimento das funcionalidades dos softwares, 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 code (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 básico de segurança e criptografia de dados
    • SSL;
    • Geração de hash utilizando salt (HMAC);
    • Algoritmos de criptografia (DES, 3DES, etc).
  • 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;
  • Domina as PSRs básicas (PSR­0, PSR­1 e PSR­2);
  • 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 usando o git­flow;
  • Consegue analisar um problema, pensando nas necessidades a serem contempladas computacionalmente, trazendo soluções viáveis;
  • 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

#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;
  • Engamento com a equipe, para crescimento sustentável de todos.