O que a vaga pede
Desenvolvedor(a) Full Stack PHP/React – Pleno | Projeto CRM
Estamos buscando um(a) Desenvolvedor(a) Full Stack PHP/React Pleno para integrar um projeto de desenvolvimento de um novo CRM corporativo, tendo como referência uma solução já existente.
O profissional participará não apenas da programação, mas também da análise das funcionalidades atuais, compreensão das regras de negócio, definição de soluções técnicas, desenvolvimento, integrações, testes e implantação da nova plataforma.
O projeto possui duração prevista de 12 meses, com contratação PJ, dedicação contínua durante o período e possibilidade de participação em diferentes etapas da construção e evolução do sistema.
Contratação: PJ
Duração prevista: 12 meses
Modelo de trabalho: Remoto
Início: 01/10
Sobre o projeto
O objetivo será desenvolver um novo sistema de CRM, utilizando como referência uma aplicação já existente.
O profissional deverá ser capaz de analisar os fluxos atuais, compreender como determinadas funcionalidades trabalham e ajudar a transformar essas informações em uma nova aplicação, buscando uma arquitetura mais organizada, segura, performática e preparada para evolução.
O projeto envolverá diferentes áreas comuns a sistemas corporativos, como:
- Cadastro e gestão de clientes;
- Contatos e relacionamentos;
- Histórico de interações;
- Atividades e acompanhamentos;
- Processos comerciais;
- Usuários, grupos e permissões;
- Dashboards e indicadores;
- Relatórios;
- Integração com outras aplicações;
- Importação e exportação de informações;
- Registro de históricos e auditoria.
Principais responsabilidades
- Desenvolver e manter o backend utilizando PHP e CodeIgniter 4;
- Desenvolver e evoluir interfaces utilizando React;
- Criar e manter APIs REST para comunicação entre o CRM e aplicações externas;
- Analisar funcionalidades existentes e identificar suas regras de negócio;
- Participar da definição da arquitetura das novas funcionalidades;
- Modelar e evoluir estruturas de banco de dados MySQL;
- Criar consultas eficientes e trabalhar na otimização de performance do banco;
- Implementar autenticação, autorização e controle de acesso;
- Desenvolver sistemas de usuários, perfis, grupos e permissões;
- Implementar histórico e auditoria de operações importantes;
- Desenvolver integrações com sistemas e serviços externos;
- Trabalhar com estratégias de cache e otimização de desempenho;
- Desenvolver rotinas para processamento de operações que não devam bloquear a aplicação;
- Implementar logs e mecanismos que facilitem a identificação de problemas;
- Realizar tratamento adequado de erros e exceções;
- Auxiliar na implantação e manutenção da aplicação em ambiente Ubuntu/Linux com Apache2;
- Participar de revisões de código e definição de padrões de desenvolvimento;
- Documentar APIs, integrações e decisões técnicas importantes;
- Utilizar Git para versionamento e organização do desenvolvimento;
- Participar de testes, homologações e correções durante a evolução do projeto.
Requisitos obrigatórios
Buscamos profissionais com experiência prática em:
- PHP;
- CodeIgniter 4 ou experiência sólida com frameworks PHP baseados em MVC;
- React;
- JavaScript;
- MySQL;
- Desenvolvimento e consumo de APIs REST;
- JSON e comunicação entre aplicações;
- Git;
- Linux/Ubuntu;
- Ambiente de aplicações PHP utilizando Apache2;
- Modelagem de banco de dados relacional;
- Criação e otimização de consultas SQL;
- Autenticação e autorização de usuários;
- Tratamento de erros e logs;
- Boas práticas de desenvolvimento e organização de código.
Conhecimentos importantes para o projeto
Além das tecnologias utilizadas, valorizamos profissionais que tenham conhecimento sobre:
Arquitetura de aplicações
- Separação entre Controller, Service e camada de acesso aos dados;
- Organização de regras de negócio fora dos Controllers;
- Código reutilizável e de fácil manutenção;
- Princípios de arquitetura de software;
APIs e integrações
- APIs RESTful;
- Versionamento de APIs;
- Autenticação por Token, JWT ou mecanismos equivalentes;
- Integração com sistemas externos;
- Webhooks;
- Tratamento de falhas em integrações;
- Timeouts e políticas de retry;
- Documentação de APIs.
Banco de dados
- Relacionamentos;
- Foreign Keys;
- Índices;
- Transactions;
- Análise e otimização de consultas;
- Controle de integridade de dados;
- Migrations.
Segurança
- Controle de acesso baseado em usuários, grupos, perfis ou funções;
- Validação de dados;
- Proteção contra SQL Injection;
- XSS;
- CSRF;
- Controle de acesso às APIs;
- Rate Limiting;
- Armazenamento seguro de credenciais e tokens.
Performance
- Estratégias de cache;
- Otimização de consultas;
- Paginação de grandes volumes de dados;
- Processamento de tarefas pesadas;
- Identificação de gargalos da aplicação.
Diferenciais
Não são requisitos eliminatórios, mas serão considerados diferenciais:
- Experiência anterior com CRM, ERP ou sistemas corporativos;
- Experiência na reconstrução ou modernização de sistemas existentes;
- Experiência com sistemas que possuam regras de negócio complexas;
- Experiência com aplicações SaaS ou Multi-Tenant;
- Redis;
- Docker;
- Swagger / OpenAPI;
- PHPUnit;
- Testes automatizados;
- CI/CD;
- Filas e processamento assíncrono;
- WebSockets;
- Conhecimento de LGPD;
- Experiência com sistemas de auditoria;
- Experiência com dashboards e grandes volumes de informações.
Perfil profissional que buscamos
Mais do que apenas domínio das tecnologias, procuramos alguém que tenha capacidade de entender o problema antes de desenvolver a solução.
Esperamos que o profissional consiga:
- Compreender regras de negócio;
- Analisar funcionalidades de um sistema existente;
- Identificar fluxos e dependências entre diferentes áreas do sistema;
- Transformar funcionalidades existentes em requisitos técnicos;
- Questionar comportamentos que não estejam claros;
- Propor soluções técnicas quando necessário;
- Identificar possíveis problemas de arquitetura;
- Trabalhar com autonomia;
- Organizar e documentar o próprio desenvolvimento;
- Comunicar riscos, dificuldades e decisões técnicas;
- Pensar na manutenção e evolução futura do sistema.
Um cenário comum durante o projeto será:
Sistema existente → análise da funcionalidade → identificação das regras de negócio → definição da solução → modelagem de dados → desenvolvimento backend → desenvolvimento da interface → testes → homologação.
Por esse motivo, buscamos alguém que se sinta confortável participando de todo esse processo.
O que esperamos em relação à senioridade
A vaga é direcionada a profissionais Pleno ou Sênior.
Será importante possuir autonomia suficiente para receber uma demanda funcional, analisá-la e contribuir para sua transformação em uma solução técnica, sem depender de uma especificação detalhada de implementação para cada tarefa.
Etapas do processo seletivo
O processo poderá envolver:
- Análise de perfil e experiências anteriores;
- Conversa inicial sobre o projeto;
- Entrevista técnica;
- Analise de Portifólio