Sênior Engenheiro de Software - Ruby on Rails
O nosso time de desenvolvimento está à procura de um profissional experimentado em design e desenvolvimento de APIs, com foco em Ruby on Rails para trabalhar em projetos relacionados a georastreamento. O projeto envolve expansão da capacidade dos sistemas e melhoria contínua da nossa experiência de desenvolvimento.
Como Sênior Engenheiro de Software, você estará envolvido na resolução de problemas e solicitações de clientes, além de apoiar o time em processos de deploy, testes e manutenção de aplicações em nuvem.
Aqui estão algumas das responsabilidades do cargo:
* Ajudar no treinamento e mentoria de outros desenvolvedores;
* Participar de discussões de requisitos, arquitetura e design;
* Colaborar na definição da arquitetura com foco na flexibilidade de curto prazo e ganhos sustentáveis de longo prazo;
* Atuar como referência técnica com conhecimento sólido em design e arquitetura de software;
Habilidades e Conhecimentos Necessários:
* Experiência em design e desenvolvimento de APIs, com preferência por conhecimento em GraphQL;
* Experiência sólida com Ruby on Rails (diversas versões);
* Conhecimento desejável em JavaScript, Typescript, Angular, React e Next.js;
* Pelo menos 7 anos de experiência profissional em desenvolvimento de software;
* Experiência com CI/CD, Gitlab, Docker, AWS e PostgreSQL;
* Conhecimento em microserviços, micro frontends, automação de testes e revisão de código;
* Experiência com sistemas transacionais de alto volume;
* Ter trabalhado com tecnologias como Telemática, IoT ou voltadas para veículos será considerado um diferencial;
* Experiência com produtos B2B SaaS;
Pré-requisitos Fundamentais:
* Experiência sólida com design e desenvolvimento de APIs (GraphQL);
* Conhecimento avançado em Ruby on Rails;
* Capacidade de explicar e aplicar técnicas padrão de programação (OOP, funcional, etc.);
* Capacidade de traduzir preocupações de negócio para o contexto tecnológico;
* Experiência completa no ciclo de vida de aplicações em nuvem (deploy, testes, manutenção);
* Capacidade de avaliar diferentes abordagens arquiteturais (monolito vs microserviços, por exemplo);
* Dominio de versionamento de código (Git);
* Entendimento sobre diferentes mecanismos de armazenamento de dados (PostgreSQL, Redis) e suas vantagens/desvantagens;
* Vivência com sistemas baseados em mensagens (bus, streaming, pub/sub);
* Experiência com metodologias ágeis (Agile/Lean);