Proximie
Headlands Technologies LLC
Desarrollador de Software C++
Sobre la oportunidad
Descripción del puesto de Desarrollador de Software (C++) para Headlands Tech
Ubicaciones: Ámsterdam; Chicago; Londres; Nueva York
Los recién graduados deben postularse a través de la oferta de empleo separada para recién graduados.
Estamos orgullosos de ser un lugar de trabajo que promueve la igualdad de oportunidades y de proporcionar a los empleados un entorno de trabajo libre de discriminación y acoso. Todas las decisiones de empleo en Headlands Tech se basan en las necesidades del negocio, los requisitos del puesto y las cualificaciones individuales, sin tener en cuenta la raza, el color, la religión o las creencias, el origen nacional, el sexo, la orientación sexual, la identidad/expresión de género, la edad, el estatus de veterano protegido, el estatus de persona con discapacidad o cualquier otra característica legalmente protegida aplicable. Headlands Tech no tolerará la discriminación ni el acoso basados en ninguna de estas características.
Al completar esta solicitud, usted acepta nuestra Política de Privacidad GDPR d1yu8ia9htmon.cloudfront.net/gdpr-privacy-policy/ y nuestras Políticas de Privacidad d1yu8ia9htmon.cloudfront.net/privacy-policy/.
Alcance
Como desarrollador de software en Headlands Tech, diseñará, desarrollará e implementará el software de negociación de la Firma en el lenguaje de programación C++. Trabajará en estrecha colaboración con los equipos de investigación, sistemas y operaciones para diseñar, implementar y analizar nuevos algoritmos de negociación electrónica automatizada. Desempeñará un papel clave en el diseño y la construcción de la infraestructura de software de la Firma para dar soporte a líneas de negocio nuevas y existentes. Además, ampliará la plataforma de investigación propietaria de la Firma para mejorar el rendimiento y dar soporte a nuevos mercados, productos y funcionalidades.
Día a día
Esta no es una lista exhaustiva, pero representa una selección de los tipos de tareas que los desarrolladores de software en Headlands Tech asumen mientras desarrollan y mantienen un sistema de negociación automatizado a gran escala de 24 horas.
- Construir, mantener y mejorar la conectividad del mercado
- Aprovechar la infraestructura existente, extendiendo la funcionalidad cuando sea necesario
- Desarrollar una comprensión profunda del comportamiento del mercado para integrarlo en nuestro sistema de negociación existente
- Mantener y extender la infraestructura de investigación principal
- Diseñar, implementar y mantener sistemas de almacenamiento distribuidos con diversos requisitos de rendimiento y fiabilidad
- Abordar las limitaciones de rendimiento dentro de nuestro propio software, bibliotecas y aplicaciones de código abierto, Linux, etc.
- Investigar nuevas tecnologías para mejorar la estabilidad, escalabilidad y rendimiento
- Implementar nuevas estrategias de negociación en colaboración con los equipos de investigación y operaciones
- Extender el marco de estrategias para permitir nuevos comportamientos y mejorar los existentes
- Investigar problemas de señales para el sistema de negociación
- Conciliar diferencias entre el rendimiento de las estrategias de negociación en simulación frente a producción
- Investigar problemas de negociación en producción en colaboración con los equipos de operaciones, sistemas e investigación
- Optimizar el rendimiento del sistema de negociación en tiempo real
- Medir latencia y rendimiento a través de microbenchmarks, profiling, tracing, etc.
- Optimizar el código existente utilizando estructuras de datos lock-free, intrínsecos del compilador, etc.
- Desarrollar nuevos algoritmos para abordar limitaciones de rendimiento en una capa de abstracción superior
- Rearquitectar componentes del sistema de negociación para eliminar cuellos de botella
- Programación de redes fundamental
- Implementar protocolos de red de bajo nivel
- Investigar capturas de red para comprender la latencia y el comportamiento de la comunicación tanto del mercado como interna
- Garantizar la estabilidad y fiabilidad continuas del sistema de negociación
- Construir sistemas de monitorización para estrategias de negociación y todas las demás piezas de nuestra infraestructura
- Realizar revisiones de código de otros desarrolladores, investigadores y miembros del equipo de operaciones
Cualificaciones
- Título preferido en cualquier área relacionada con la informática (p. ej., informática, ingeniería informática, etc.)
- En su defecto, amplia experiencia profesional en desarrollo de software
- Amplios conocimientos de los fundamentos de la ingeniería de software
- Interés genuino en la resolución de problemas técnicos, junto con una gran capacidad para implementar soluciones
- Bajo ego, capaz de trabajar tanto en un entorno de equipo colaborativo como de forma autónoma
- Comprometido con el diseño e implementación de soluciones totalmente automatizadas, escalables y mantenibles con pruebas exhaustivas
- Capacidad superior para escribir en C++, o experiencia con otro lenguaje de programación imperativo con tipado estático
- Cómodo operando en varios niveles de abstracción diferentes, desde máquinas individuales hasta sistemas distribuidos a gran escala
- Sólidos conocimientos de los detalles de la computación en toda la pila técnica
- Conocimiento de Linux es un plus
- Experiencia en la industria de la negociación preferida pero no obligatoria
