Uma empresa crescendo rapidamente, que fornece business intelligence global, análise de mercado e insights sobre o consumidor, está procurando contratar um Engenheiro de Software. O engenheiro deverá trabalhar com uma equipe de desenvolvedores experientes e recursos comerciais para criar e manter aplicativos internos e externos. A empresa estabeleceu um vasto portfólio de produtos, bem como um banco de dados de clientes que inclui as principais multinacionais do mundo, bancos, consultorias, bibliotecas e escolas de administração. Esta é uma grande chance para desenvolvedores brasileiros assumirem uma vaga de trabalho remoto em uma empresa revolucionária resolvendo grandes desafios e identificando oportunidades de negócios.
Responsabilidades:
- Elaborar aplicativos de acordo com as necessidades do usuário final e conforme as discussões com a equipe Scrum
- Monitorar projetos, tarefas e bugs usando o sistema de rastreamento de trabalho especificado
- Entender os requisitos partindo de uma perspectiva de negócios, além de contribuir para a elaboração de aplicativos claros e fáceis de usar da perspectiva do usuário
- Criar aplicativos completamente novos ou aproveitar a funcionalidade dos já existentes
- Trabalhar de perto com os membros da equipe para encontrar as melhores soluções possíveis para aplicativos
- Implantar e desenvolver soluções de tecnologia para otimizar a funcionalidade, facilidade de uso e apresentação dos produtos
- Participar de pesquisas independentes e contribuir para discussões técnicas
- Compreender e contribuir para o nível de qualidade de código e cobertura de teste dentro da equipe Scrum
- Envolver-se em discussões técnicas contribuindo para o design e desenvolvimento
- Colaborar com analistas de negócios, gerentes de produto e/ou clientes internos/externos para garantir que os requisitos sejam entendidos
- Contribuir para a prática de BDD/TDD/DDD como parte das melhores práticas de engenharia de software
- Participar de revisões de código por pares regulares com seus colegas para identificar e eliminar bugs e problemas de desempenho, garantindo a qualidade do código e do produto
- Garantir a conformidade do produto final com as especificações do usuário final
- Participar de revisões regulares com grupos de usuários finais designados, quando necessário
- Certificar-se de testar a funcionalidade do seu próprio código e do de seus colegas para garantir seu desempenho
- Monitorar, analisar e atuar em bugs pós-implantação
- Revisar o feedback dos usuários e propor/implementar planos de ação para desenvolvimento com base nessas discussões
- Fornecer qualquer suporte necessário aos usuários finais dos aplicativos e efetuar alterações no código conforme necessário
- Contribuir para o treinamento dos membros da equipe em práticas de desenvolvimento Agile
- Utilizar padrões de design apropriados e os princípios SOLID e de design diariamente
- Demonstrar responsabilidade técnica por projetos e tarefas, garantindo sua conclusão bem-sucedida dentro dos prazos do projeto
- Escrever documentação concisa para aplicativos e sites
- Mostrar iniciativa para usar novas tecnologias e metodologias que beneficiarão os projetos
- Assumir a responsabilidade e voluntariar-se para colaborar com a equipe de entrega
- Orientar e guiar os membros da equipe júnior
- Aprimorar suas habilidades regularmente no que toca às mais novas tendências e práticas do mundo de tecnologia
Requisitos:
- Bacharelado ou Mestrado em Engenharia ou Ciência da Computação (ou experiência equivalente)
- Pelo menos 3 anos de experiência relevante com desenvolvimento usando ou exposição a tecnologias Microsoft .NET
- Expertise na construção de arquitetura de microsserviços, aplicações web e/ou console, bem como Windows e Web Services
- Experiência com .NET Core, WebAPI Net Framework 4.6., Asp.Net Core e Angular
- Noções básicas sobre SQL Server ou Azure SQL e/ou NoSQL
- Conhecimento sobre práticas de DevOps, incluindo integração/implantação contínua (CI/CD), automação de QA, etc.
- Familiaridade com o processo de lançamento, bem como com desenvolvimento em nuvem e monitoramento de saúde da solução
- Conhecimento sobre desenvolvimento baseado em alternância de recursos
- Amplas habilidades com ferramentas como Postman, Insomnia, MSTest/NUnit, Protractor, Jasmine, JMeter e OWASP ZAP
- Conhecimento sobre tecnologias de nuvem, como Azure e Google cloud
- Expertise em programação OOP (experiência teórica e prática de princípios e padrões de design orientado a objetos)
- Experiência com metodologias Agile e BDD (Behaviour Driven Development)
- Conhecimento em Test Driven Development (TDD), Domain Driven Design (DDD) e Event Driven Architecture
- Noções básicas sobre API Gateways e Service Discovery
- Familiaridade com ambientes de programação do Visual Studio e Azure DevOps
- Fluência em inglês, verbal e escrito, de modo a manter uma excelente comunicação com as equipes técnicas e comerciais
- Boas habilidades administrativas e organizacionais
- Ser motivado e ambicionar assumir maiores responsabilidades pessoais
- Demonstrar excepcional atenção aos detalhes e compromisso com a qualidade aliados a raciocínio crítico e habilidades de tomada de decisão