Proximie
Headlands Technologies LLC
Desenvolvedor de Software C++
Sobre a oportunidade
Descrição da vaga de Desenvolvedor de Software (C++) para Headlands Tech
Localizações: Amsterdã; Chicago; Londres; Nova York
Recém-formados devem se candidatar através da vaga separada para Recém-Formados.
Temos orgulho de ser um local de trabalho que oferece igualdade de oportunidades e de proporcionar aos funcionários um ambiente de trabalho livre de discriminação e assédio. Todas as decisões de emprego na Headlands Tech são baseadas nas necessidades do negócio, nos requisitos do cargo e nas qualificações individuais, sem levar em conta raça, cor, religião ou crença, origem nacional, sexo, orientação sexual, identidade/expressão de gênero, idade, status de veterano protegido, status de indivíduo com deficiência, ou quaisquer outras características legalmente protegidas aplicáveis. A Headlands Tech não tolerará discriminação ou assédio com base em nenhuma dessas características.
Ao completar esta inscrição, você concorda com nossas Políticas de Privacidade GDPR d1yu8ia9htmon.cloudfront.net/gdpr-privacy-policy/ e Políticas de Privacidade d1yu8ia9htmon.cloudfront.net/privacy-policy/.
Escopo
Como desenvolvedor de software na Headlands Tech, você projetará, desenvolverá e implementará o software de negociação da Firma na linguagem de programação C++. Você trabalhará em estreita colaboração com as equipes de pesquisa, sistemas e operações para arquitetar, implementar e analisar novos algoritmos de negociação eletrônica automatizada. Você desempenhará um papel fundamental no projeto e construção da infraestrutura de software da Firma para dar suporte a linhas de negócios novas e existentes. Além disso, você expandirá a plataforma de pesquisa proprietária da Firma para melhorar o desempenho e dar suporte a novas bolsas, produtos e funcionalidades.
Dia a Dia
Esta não é uma lista exaustiva, mas representa uma seleção dos tipos de tarefas que os desenvolvedores de software na Headlands Tech realizam ao desenvolver e manter um sistema de negociação automatizado em larga escala de 24 horas.
- Construir, manter e melhorar a conectividade com a bolsa
- Alavancar a infraestrutura existente, estendendo a funcionalidade quando necessário
- Construir um entendimento profundo do comportamento da bolsa para integrar em nosso sistema de negociação existente
- Manter e estender a infraestrutura central de pesquisa
- Projetar, implementar e manter sistemas de armazenamento distribuído com vários requisitos diferentes de desempenho e confiabilidade
- Abordar limitações de desempenho em nosso próprio software, bibliotecas e aplicativos de código aberto, Linux, etc.
- Investigar novas tecnologias para melhorar a estabilidade, escalabilidade e desempenho
- Implementar novas estratégias de negociação em colaboração com as equipes de pesquisa e operações
- Estender o framework de estratégia para permitir novos comportamentos e melhorar os existentes
- Investigar problemas de sinal para o sistema de negociação
- Conciliar diferenças entre o desempenho das estratégias de negociação em simulação versus produção
- Investigar problemas de negociação em produção em colaboração com as equipes de operações, sistemas e pesquisa
- Otimizar o desempenho do sistema de negociação ao vivo
- Medir latência e throughput através de microbenchmarks, profiling, tracing, etc.
- Otimizar o código existente usando estruturas de dados lock-free, intrínsecos do compilador, etc.
- Desenvolver novos algoritmos para abordar limitações de desempenho em um nível de abstração mais alto
- Reestruturar componentes do sistema de negociação para eliminar gargalos
- Programação de rede fundamental
- Implementar protocolos de rede de baixo nível
- Investigar capturas de rede para entender a latência e o comportamento da comunicação da bolsa e interna
- Garantir a estabilidade e confiabilidade contínuas do sistema de negociação
- Construir sistemas de monitoramento para estratégias de negociação e todas as outras partes de nossa infraestrutura
- Realizar revisões de código de outros desenvolvedores, pesquisadores e membros da equipe de operações
Qualificações
- Diploma preferencial em qualquer área relacionada à computação (por exemplo, ciência da computação, engenharia da computação, etc.)
- Em vez disso, vasta experiência profissional em desenvolvimento de software
- Bem versado nos fundamentos de engenharia de software
- Interesse genuíno em resolver problemas técnicos, juntamente com uma forte capacidade de implementar soluções
- Baixo ego, capaz de trabalhar tanto em um ambiente de equipe colaborativo quanto de forma autônoma
- Comprometido em projetar e implementar soluções totalmente automatizadas, escaláveis e de fácil manutenção com testes extensivos
- Habilidade superior em escrever em C++, ou experiência com outra linguagem de programação imperativa com tipagem estática
- Confortável operando em vários níveis diferentes de abstração, de máquinas individuais a sistemas distribuídos em larga escala
- Forte conhecimento dos detalhes de computação em toda a pilha técnica
- Conhecimento de Linux é um diferencial
- Experiência no setor de trading é preferível, mas não obrigatória
