Função
O engenheiro de software pleno desenvolverá soluções de alto nível para nossos sistemas.
">
* Implementação de Soluções;
* Escrever e implementar código conforme requisitos;
* Garantir qualidade e usabilidade do produto;
* Testar e depurar em diferentes ambientes;
* Contribuir em decisões de arquitetura e design;
* Revisar código para manter padrões de qualidade;
* Integrar componentes de software;
* Estimar tarefas junto ao Líder Técnico e PM, utilizando métricas da equipe.
Ferramentas essenciais que não podem faltar no seu kit:
* Active Record;
* Internacionalização (I18n);
* Fuso horário em Rails;
* Background Jobs com Sidekiq e ActiveJob;
Banco de Dados e Performance:
* SQL básico;
* Consultas otimizadas no Active Record;
* Migrations e Seeds;
* Noções básicas de Redis e Cache;
* Prevenção de N+1 (Lazy vs Eager Loading).
Integração e APIs:
* APIs REST;
* Autenticação com JWT e Bearer;
* Noções básicas de versionamento e controle de acesso a APIs;
Fundamentos de Desenvolvimento e Arquitetura:
* Orientação a Objetos;
* Princípios SOLID (introdução);
* Padrão MVC;
* Boas práticas de código (convenções e linting).
Testes e Qualidade:
* RSpec;
* Testes unitários;
* Mocks e Factories;
* Testes de integração (básico).
DevOps e Infraestrutura:
* Docker (básico);
* Noções de webserver (Puma, Nginx);
* Noções básicas de AWS (S3).
Ferramentas e Debug:
* Git;
* Debugging no Rails;
* Ferramentas de CI (GitHub Actions, por exemplo).
Ambiente de Desenvolvimento:
* Unix/Linux/MacOS;
* Bundler e RubyGems.
Metodologias:
* Kanban;
* Scrum (noções).