Desenvolvedor Sênior em Ruby on Rails
O nosso cliente procura um profissional experiente para atuar como referência técnica em design e arquitetura de software.
Responsabilidades:
* Ajudar no treinamento e mentoria de outros desenvolvedores, mantendo abertura para aprender com os colegas.
* 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.
* Projetar, implementar e testar sistemas de alta disponibilidade para processamento de dados de telemetria, incluindo geolocalização, mapeamento e correlação de dados de localização, aplicação de regras com base em geofences (cercas virtuais) para envio de notificações, gestão de relacionamentos comerciais que permitam o compartilhamento de ativos e acesso seguro a interfaces web e APIs.
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.
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).