Software Developer (Java)

Location: Chicago and Amsterdam


Scope:

As a Java software developer, you will work in close collaboration with the client's high-frequency trading team's 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 their software infrastructure to support new and existing lines of business. You will expand the firm’s proprietary research platform to improve performance and support new exchanges, products and functionality.


Qualifications:

  • 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


Day to Day:

This isn't an exhaustive list but represents a selection of the types of tasks that software developers take on while developing and maintaining a large scale 24-hour automated trading system and research framework.


  • 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


Java Software Engineer

Apply Now
Back to search page