Skip to content

About the Role

As a Java software developer at Headlands Tech, you will work in close collaboration with the research, systems, and operations teams to design, engineer, implement, and maintain the Firm's software written in Java. You will play a key role in designing and constructing the Firm's software infrastructure to support new and existing lines of business, and expand the Firm's proprietary research platform to improve performance and support new exchanges, products and functionality.

  • Maintain and extend core research infrastructure
  • Design, implement, and maintain distributed storage systems with various performance and reliability requirements
  • Address performance limitations within our own software, open-source libraries and applications, Linux, etc.
  • Investigate new technologies to improve stability, scalability, and performance of a distributed computing farm
  • Develop and improve monitoring and proactive detection capabilities
  • Perform basic data analysis to support decision making and better plan for future growth
  • Improve networking communication between different components of the system to achieve optimal latency and throughput
  • Communicate with stakeholders across teams to understand needs and define application specifications
  • Conduct code reviews of other developers, researchers and operations team members
  • Participate in the recruitment process by conducting interviews and providing candidate evaluations

Requirements

  • Preferred degree in any computing related area (e.g., computer science, computer engineering, etc.)
  • In lieu of this, extensive professional software development experience
  • Well-versed in the fundamentals of software engineering
  • Genuine interest in solving technical problems, along with a strong ability to implement solutions
  • Low ego, able to work both in a collaborative team setting and autonomously
  • Committed to designing and implementing fully automated, scalable, and maintainable solutions with extensive testing
  • Comfortable operating at various levels of abstraction, from individual machines to large scale distributed systems
  • Strong knowledge of the details of computing all throughout the technical stack
  • Superior ability to write, refactor, and debug programs in Java
  • Good knowledge of networking and storage systems
  • Experience or knowledge of C++ is a plus
  • Knowledge of Linux is a plus
  • Experience in the trading industry is a plus