Software Engineer

Responsibilities include:

  • Timely delivery of crucial components used to validate algorithmic trading strategies
  • Design and develop reusable software components capable of running in a high-throughput,  distributed cluster environment
  • Constantly learn and introduce new technologies to streamline data analysis performed by trading strategy, trading execution and data science teams by optimizing storage, retrieval and processing of large data sets


  • Best practices for writing maintainable, well-tested code
  • Understanding of various concepts of distributed software systems through course work or in a work environment
  • Knowledge and experience with a wide range of data storage systems including distributed key-value storage
  • Understanding of parallel algorithms (MapReduce, etc.) for processing large-scale data sets
  • Strong C/C++ programming skills
  • Fluency in scripting (bash, awk or python preferred)
  • Comfortable working in Linux environment