C++ Software Developer

HEADLANDS TECHNLOGIES L.L.C.
Chicago, IL, United States
6 days ago
Apply on www.careerbuilder.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours

Tech stack

Abstraction Layers Algorithmic Trading C++ (Programming Language) Code Review Computer Engineering Data Structures Linux Distributed Data Store Distributed Systems Monitoring of Systems Network Programming Network Protocols
+7 more
Open Source Technology Performance Tuning Server Administration Software Engineering Software Systems Information Technology Programming Languages

Job description

As a software developer at Headlands Tech you will design, engineer and implement the Firm’s trading software in the C++ programming language. You will work in close collaboration with the research, systems, and operations teams to architect, implement and analyze new automated electronic trading algorithms. You will play a key role in designing and constructing the Firm’s software infrastructure to support new and existing lines of business. In addition, you will expand the Firm’s proprietary research platform to improve performance and support new exchanges, products and functionality., This isn’t an exhaustive list, but represents a selection of the types of tasks that software developers at Headlands Tech take on while developing and maintaining a large scale 24 hour automated trading system.

  • Build, maintain, and improve exchange connectivity
  • Leverage existing infrastructure, extending functionality where necessary
  • Build a deep understanding of exchange behavior to integrate into our existing trading system
  • Maintain and extend core research infrastructure
  • Design, implement, and maintain distributed storage systems with various different 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
  • Implement new trading strategies in collaboration with research and operations teams
  • Extend strategy framework to enable new behaviors and improve existing ones
  • Investigate signal issues for trading system
  • Reconcile differences between trading strategies performance in simulation versus production
  • Investigate production trading issues in collaboration with operations, systems, and research teams
  • Optimize the performance of the live trading system
  • Measure latency and throughput through microbenchmarks, profiling, tracing, etc.
  • Optimize existing code using lock free data structures, compiler intrinsics, etc.
  • Develop new algorithms to address performance limitations at a higher abstraction layer
  • Rearchitect components of the trading system to eliminate bottlenecks
  • Fundamental network programming
  • Implement low level networking protocols
  • Investigate network captures to understand latency and behavior of both exchange and internal communication
  • Ensure the continued stability and reliability of the trading system
  • Build monitoring systems for trading strategies and all other pieces of our infrastructure
  • Conduct code reviews of other developers, researchers and operations team members

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
  • Superior ability to write in C++, or experience with other statically-typed imperative programming language
  • Comfortable operating at various different levels of abstraction, from individual machines to large scale distributed systems
  • Strong knowledge of the details of computing all throughout the technical stack
  • Knowledge of Linux a plus
  • Experience in the trading industry preferred but not mandatory, Algorithms, Analysis Skills, C++ Programming Language, Code Reviews, Computer Engineering, Computer Science, Data Collection, Data Structures, Distributed Computing, Large-Scale Systems, Linux Operating System, Network Programming, Network Protocols, Open Source, Operations Research, Performance Management, Performance Tuning/Optimization, Problem Solving Skills, Programming Languages, Simulation, Software Administration, Software Development, Software Engineering, System Operations, Systems Maintenance, Team Player, Technical/Engineering Design, Trading Systems, Writing Skills

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.careerbuilder.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

1:20 min

Identifying multi-disciplinary talent for developer experience engineering roles

Hazal Mestci +1 · Coffee With Developers

52 sec

Running persistent Linux environments directly on Windows

Ben Breard Ben Breard · World Congress 2025

3:39 min

Addressing code review surrender and process exploitation

Laura Tacho Laura Tacho · World Congress 2026 Europe

4:42 min

Building robust data structures with structs and bound functions

Rainer Stropek Rainer Stropek · World Congress 2021

4:18 min

Prioritizing communication and structural awareness over strict tool mastery

Liam Hurrel +1 · World Congress 2021

3:55 min

Demonstrating .NET installation on Debian and Azure Linux

Silvano Coriani Silvano Coriani · Europe 2026 Virtual

Videos

See all

Related articles

See all