Candidatar agora »

Engenheiro(a) de Software Rust

Localização: 

Brazil, BR

Perfil profissional:  Telco e mídia
Experiência requerida: 
Modalidade do cargo: 
Rol:  T III

Buscamos um(a) Engenheiro(a) de Software com sólida experiência em Rust para atuar no desenvolvimento e evolução de sistemas de alta performance, seguros e confiáveis. Procuramos um profissional com experiência prática utilizando Rust em ambientes produtivos, boa base de engenharia de software e capacidade para atuar com autonomia técnica na construção de soluções robustas e escaláveis.


Responsabilidades e atribuições:

  • Desenvolver, testar, manter e evoluir serviços e componentes utilizando Rust;

  • Construir soluções com foco em alta performance, segurança de memória, estabilidade e confiabilidade;

  • Participar do design técnico e da arquitetura de novas funcionalidades;

  • Avaliar alternativas técnicas e discutir trade-offs junto ao time de engenharia;

  • Desenvolver código Rust idiomático, bem estruturado, documentado e testável;

  • Criar e manter testes unitários e de integração;

  • Realizar code reviews, contribuindo para a qualidade, padronização e evolução do código;

  • Investigar e solucionar problemas relacionados à performance, concorrência, memória e utilização de recursos;

  • Trabalhar com programação assíncrona e processamento concorrente;

  • Colaborar com times de Produto, QA, Infraestrutura e demais áreas técnicas na entrega de soluções ponta a ponta;

  • Participar de processos de integração e entrega contínua (CI/CD);

  • Contribuir para a definição e evolução de padrões, ferramentas e boas práticas de engenharia do time.

Requisitos e qualificações:

  • Experiência de 3 a 5 anos com desenvolvimento de software;

  • Experiência mínima de 1 a 2 anos desenvolvendo soluções em Rust em ambiente produtivo;

  • Domínio dos principais conceitos da linguagem Rust, incluindo ownership, borrowing, lifetimes, traits e sistema de tipos;

  • Experiência com o ecossistema Rust, incluindo Cargo, crates.io e gerenciamento de dependências;

  • Conhecimento em programação assíncrona com async/await, Tokio e/ou async-std;

  • Boa compreensão de concorrência, gerenciamento de memória e utilização eficiente de recursos;

  • Experiência com testes automatizados, incluindo testes unitários e de integração;

  • Conhecimento de estruturas de dados e algoritmos;

  • Experiência com Git e fluxos colaborativos de desenvolvimento e versionamento;

  • Conhecimento de práticas e pipelines de CI/CD;

  • Conhecimentos em GitLab CI/CD;

  • Familiaridade com ambientes Linux e utilização de linha de comando;

  • Inglês técnico para leitura e interpretação de documentação.

Diferenciais:

  • Experiência com Docker e Kubernetes;

  • Conhecimentos em Java;

  • Experiência com aplicações distribuídas, microsserviços ou sistemas de alta performance;

  • Vivência com otimização e troubleshooting de performance;

  • Experiência com aplicações que demandem alto nível de concorrência e confiabilidade;

  • Conhecimentos em arquitetura e design de software;

  • Vivência com metodologias ágeis e ambientes de engenharia com práticas maduras de desenvolvimento;

  • Conhecimentos em agilidade empresarial, de processos e estrutural.

Candidatar agora »