¿Cómo es trabajar en Hudson River Trading?

Para dar mi contexto de respuesta, debo describir mi fondo. Actualmente estoy trabajando como programador en HRT. He trabajado tanto en el rol de “Programador principal” como en el de “Desarrollador de Algo” en HRT (también creé un nuevo rol llamado “Ingeniero de Algo” que es una combinación de los dos). Un “Programador principal” en HRT es muy parecido a un programador de sistemas en una compañía de software tradicional y un “Desarrollador de Algo” es un programador con una inclinación estadística (también conocida como “cuant”). Antes de llegar a HRT, trabajé como desarrollador de software y líder de desarrollo en Microsoft en Washington, HTC en Washington, en ArenaNet (Guild Wars 2 !!!) en Washington y, antes, en algunas empresas menos notables. Debido a que HRT es el único operador algorítmico para el que he trabajado, no puedo arrojar mucha luz sobre cómo es trabajar en HRT en comparación con trabajar en una empresa similar. Espero que uno de mis compañeros de trabajo pueda hacerlo en otra respuesta.

En comparación con las empresas de software “tradicionales”

Cuando llegué a HRT por primera vez de compañías de software y videojuegos más tradicionales, algunas cosas me eran muy familiares. HRT tiene un entorno de software muy “costa oeste” en el que me sentí inmediatamente cómodo. Es decir, los programadores solo informan a otros programadores. Los socios que dirigen la empresa son altamente técnicos y todos programan activamente. El ambiente es extremadamente informal. HRT ve a sus programadores como su activo número 1 y nos tratan (miman) en consecuencia. Esto se sintió muy similar a mis empleadores anteriores. La TRH también es muy pequeña y tiene una atmósfera bastante “amable”: no se aprecian los gritos (si esto le parece obvio, supongo que no ha trabajado en muchas compañías de software).

Una diferencia importante entre trabajar en HRT y una compañía de software tradicional es que la calidad media de sus contrataciones de programación es significativamente mayor que en cualquier otro lugar en el que haya trabajado. Creo que este es el resultado de lo que pueden pagar, tanto en tiempo como en dinero. HRT gana bastante dinero por empleado, por lo que pueden pagar lo mejor. Tampoco necesitan contratar rápidamente a muchas personas para poder esperar lo mejor. Cualquier otro lugar en el que he trabajado generalmente puede permitirse uno u otro, pero no ambos. El resultado es un conjunto extremadamente competente de programadores (y a menudo programadores muy competentes muy jóvenes). En compañías anteriores, estaba acostumbrado a trabajar con algunas personas que eran tan “buenas” como yo y de vez en cuando alguien que era mejor. Me sentí muy humilde cuando comencé a trabajar en HRT. Al principio fue un poco incómodo para mí al principio, pero ahora ha marcado una gran diferencia en mi nivel de habilidad. Cuando la gente decía “siempre habrá alguien más inteligente que tú”, lo descarté con arrogancia como un lugar común para las personas que no querían esforzarse intelectualmente. Ahora tengo un recordatorio diario de cuán cierto es eso.

Puedo decir con seguridad que la compensación de HRT es la mejor que he experimentado personalmente en mi carrera. Incluso con el cambio en el costo de vida de Seattle a Nueva York, encuentro que tengo un estilo de vida más agradable y puedo ahorrar más dinero. Más importante aún, encuentro que siempre estoy al tanto de los nuevos proyectos que puedo intentar para aumentar mi compensación, por lo que siento que tengo mucho control sobre mi propio destino financiero. No creo que pueda decir lo mismo en ningún otro momento de mi carrera. Creo que es difícil lograr este nivel de control sobre su propia compensación solo con la programación, a menos que alcance un nivel muy alto en una corporación o sea un miembro muy temprano de una startup.

Lo que hago día a día no necesariamente se siente tan diferente de lo que hice día a día en trabajos anteriores, aparte de que tengo que esforzarme un poco más para sentir que estoy al día con mis compañeros. Diría que un programador experto en Google, Amazon o Microsoft que trabaja en problemas informáticos distribuidos, o problemas analíticos en tiempo real, tiene un trabajo bastante similar a un Programador principal en HRT, en el día a día. Lo mismo ocurre con un programador de servidor que trabaja en un videojuego.

A menudo comparo el trabajo de un desarrollador de Algo con un programador de juegos: una combinación de análisis, repetición, agregar nuevas características específicas del juego (mercado) y ver los resultados con los jugadores (o nuevamente, los mercados).

Día a día y entorno técnico

Se espera que todos los miembros de los equipos Core y Algo programen diariamente. Los principales lenguajes que utilizamos son C ++ y Python, aunque no necesariamente esperamos que los nuevos empleados conozcan estos lenguajes. Creo que el énfasis importante aquí es que todos programan. Core está mucho más centrado en los problemas a nivel de máquina, como hacer que el código de red sea más rápido o más robusto, y Algo se centra más en el código de mercado y el análisis de datos y la estrategia específica, pero todos programamos. Ser un gran programador es muy valorado tanto en Core como en Algo, pero se requiere para Core. He conocido programadores increíbles en ambos equipos, pero diría que en Algo, la programación es un medio para un fin, mientras que en Core es el fin. Dicho esto, si un programador de Algo comete un montón de código que nadie puede entender y ocasionalmente se cuelga, es muy posible que lo retiren 🙂 Hablando de eso, Core tiende a tener revisiones de código más rigurosas, pero si el código está en un área sensible será revisada en gran medida por varias personas independientemente del equipo. Las pruebas unitarias y las pruebas de integración son muy empleadas por ambos equipos y se ejercen en un entorno de backtesting. (Nota: si bien se espera que los candidatos principales sean excelentes programadores, en general solo se espera que los candidatos de Algo estén familiarizados con la programación, pero deben ilustrar la capacidad de convertirse rápidamente en expertos. Si el candidato de Algo es un excelente programador, eso es una gran ventaja. )

Nuestro entorno de máquina está compuesto principalmente por máquinas Linux y FreeBSD. La gente generalmente se conecta remotamente a una máquina desde una computadora portátil Apple (aunque algunas personas usan Windows). Era un programador y usuario de Windows bastante duro (que venía de Microsoft) pero ahora uso exclusivamente un Macbook y un programa en Linux. Usamos git y svn para el control de fuente y tendemos a usar productos Atlassian para wiki, integración continua, etc.

HRT es muy amigable con el código abierto. Usamos proyectos de código abierto con frecuencia. Se me ha permitido investigar e introducir algunos nuevos personalmente; Por ejemplo, implementé un sistema de análisis usando la tecnología Storm de Twitter, ¡fue muy divertido! HRT también permite contribuir de nuevo a proyectos de código abierto, suponiendo que se revise la contribución para garantizar que no estamos revelando IP relacionada con el comercio, que casi nunca es un problema.

Probablemente esto no sea tan importante, pero muchos de nosotros recientemente hemos estado usando Sublime Text (mi favorito personal) con el complemento Clang que compila el código en segundo plano; Dicho esto, todavía hay bastantes usuarios de emacs y vim.

Tanto en Core como en Algo, los equipos suelen ser de 3 a 6 personas que se centran en un tipo particular de comercio (Algo) o un tema de tecnología (Core). Los equipos deciden de manera bastante independiente cuál será su próximo conjunto de proyectos en una base de 2 a 8 semanas (cada equipo lo hace de manera diferente, pero el enfoque general es a corto plazo). Los equipos principales deben tender a ser mucho más conscientes de las solicitudes de equipos externos (generalmente equipos Algo). Además, el equipo Core ocasionalmente asume un proyecto a largo plazo que requiere tocar mucha infraestructura, como la integración de componentes FPGA.

Si bien hay un equipo de Operaciones activo que hace el trabajo pesado de monitorear la máquina y procesar la salud durante el horario comercial, el hecho es que la mayoría de los miembros de Core y Algo tienen componentes de los cuales son responsables de monitorear durante el transcurso del día. Entonces diría que hay un aspecto de DevOps en la mayoría de los trabajos de programadores. Dicho esto, no me han despertado por la noche o en medio de una cena más de una o dos veces al año. Algunas personas probablemente son un poco peores que esto, pero no mucho.

En general, diría que la calidad del código es similar a la de otras compañías de software tradicionales (más aún en el código del grupo Core), pero el código generalmente no se estabiliza para tantos escenarios diferentes como sería un producto como Windows, ya que el código de HRT solo se ejecuta en algunas configuraciones particulares diferentes de máquinas y de una manera particular (a diferencia del software del usuario final). La ventaja es que no hay ciclos prolongados de corrección de errores, pero la desventaja es que si toma el código de otra persona para reutilizarlo, debe comprender qué tan bien ejercitado está y en qué escenarios se ha utilizado. En general no hay dependencias de nivel binario.

En el final

Lo que he escrito hasta ahora se parece demasiado a un campo de reclutamiento, por lo que me gustaría ofrecer un contrapunto. HRT es una pequeña empresa de software y matemáticas, por lo que no creo, por ejemplo, que sea una buena capacitación para alguien que quiera ser Director Gerente de un banco de inversión ni una buena capacitación para alguien que quiera aprender cómo administrar equipos para crear productos de nivel mundial (por ejemplo, un vicepresidente de Microsoft o Apple). HRT también está muy dirigido hacia el objetivo de obtener ganancias. En la mayoría de las otras compañías de software, los programadores están aislados del hecho de que están trabajando indirectamente para maximizar las ganancias porque están trabajando directamente en un producto. Sinceramente, extraño trabajar en un producto; especialmente un producto que sé que usarán personas de todo el mundo. Como cualquier trabajo, este tiene sus desventajas, y yo diría que para mí, no tener un producto y clientes es el más grande. Por otro lado, no hay plazos impuestos externamente, lo cual es bastante bueno 🙂

Para ver la estructura de empleo, el siguiente enlace es útil:

Hudson River Trading

More Interesting

¿Los programadores tienen días en los que no logran nada en el trabajo?

¿Por qué trabajo tan bien en el último minuto?

¿Cuáles son algunos buenos artículos sobre el futuro del trabajo?

Veterinarios experimentados en la fuerza laboral: ¿Cómo reacciono ante los principales errores en el trabajo?

¿Cuáles son los desafíos para un desarrollador web que trabaja de forma remota?

Tengo mi empresa registrada en una dirección diferente. Ahora, aunque me quedo en Bangalore, trabajo desde casa. ¿Cuál es el procedimiento para adquirir un número de IVA y CST en Karnataka sin tener una oficina aquí?

¿Cuáles son las profesiones que los amantes del anime disfrutarían como su trabajo?

¿Hay algún trabajo legítimo y realista de trabajos en el hogar? ¿Qué habilidades necesito y cómo las obtengo?

Cuando Google adquiere una empresa, ¿los empleados de la empresa ahora tienen que pasar por el proceso de entrevista de Google? ¿Las personas que no pasan la entrevista son despedidas?

¿Cómo desconectar mi mente después de llegar a casa desde la oficina? ¿Cómo me deshago de los pensamientos relacionados con el trabajo en casa?

¿Cómo se siente trabajar en la industria financiera como ingeniero?

¿Por qué es tan difícil encontrar un buen trabajo en Nueva York?

¿Cuál es tu mayor error relacionado con el trabajo?

¿Es posible que India también cambie a 6 horas hábiles?

¿Es normal tener que enviar un informe de estado de todo lo que haces cada día al CEO?