As a Senior Software Engineer, the candidate will join a trading team in Chicago that is focused on creating cutting-edge trading applications and tools In this dynamic environment, you'll collaborate closely with a team of experienced technologists, quantitative researchers, and traders to address technological challenges and contribute to our tech stack in a meaningful way. This role is an excellent opportunity for skilled programmers eager to develop new technologies that directly impact the business.
Responsibilities:
- Executing full life cycle development of applications and libraries related to exchange gateways, trading strategy execution, risk management, trade reporting, and market data feed processing using C++
- Ensuring performance, integrity, and reliability of systems for maintaining maximal uptime, including comprehensive logging and traceability to support mission-critical production systems
- Collaborating with quantitative researchers and traders on strategy development
- Applying agile methodologies in the design, development, and deployment of software
- Guiding less experienced engineers on best practices through mentorship, pair programming, and code reviews
- Delivering production support, maintenance, and performance enhancements of existing systems
- Evaluating new technology and refining our technology stack
Requirements:
- A decade or more of experience developing high-availability server-side systems, preferably in C++
- At least 3 years of experience with modern C++ (14/17/20) standards
- Proficiency in multi-threaded programming and a robust understanding of hardware/software interaction
- A Bachelor's degree in Computer Science, Engineering or related field, paired with practical knowledge of computer science, including algorithms, data structures, distributed systems, and concurrency
- Exceptional verbal and written communication skills
Bonus Skills:
- Prior experience in the trading industry or another latency-sensitive sector involving the resolution of complex and unique problems
- Background in numerical computing and/or working with Quantitative Researchers
- Experience with full life-cycle software development using exotic hardware/software architectures
- Detailed understanding of TCP, UDP, IPV4, and related hardware/software
- Familiarity with multiple programming languages, particularly Java, Python, JavaScript, Ruby
An excellent compensation package is available for the suitable candidate.