Junior C++ Software Developer

Overview

We are a dynamic and growing trading firm, currently seeking an innovative Software Developer to join our team. This role is pivotal to our dual mission: developing cutting-edge automated trading strategies and commercializing our existing trading platforms and tools. Our primary trading assets are equity options and equities, with an exciting expansion into futures on the horizon. As a key member of our relatively small but rapidly expanding team, you will have the opportunity to make substantial contributions and experience significant upward mobility within the company. Your work will not only shape the future of our trading operations but also influence the evolution of our commercial products. This is a unique chance to be part of a firm where individual efforts have a direct and meaningful impact.

Key Responsibilities

Develop and Optimize Automated Trading Strategies: Design, implement, and refine algorithms specifically for equity options, equities, and futures trading.

Commercialize Products: Play a key role in turning existing trading platforms and tools into market-ready products.

Enhance System Design and Architecture: Contribute to the development and enhancement of our core trading platform, ensuring high performance, scalability, and adaptability to new asset classes.

Collaborate with Traders and Analysts: Work closely with traders to understand their needs, translating complex trading concepts into efficient technical solutions.
Manage Data Analysis and Reporting: Analyze large datasets to enhance and validate trading strategies.

Tune Performance for Low-Latency Operations: Ensure the highest levels of system performance, particularly in the context of high-frequency trading.

Develop Risk Management and Compliance Tools: Create tools for risk assessment, management, and compliance monitoring to ensure adherence to relevant regulations and internal risk guidelines.

Generate Documentation and Reports: Generate comprehensive documentation and reports, supporting both internal strategy development and external product transparency.

Required Skills and Qualifications

Proficiency in C++ for Server-Side Development: Strong C++ skills are essential for our server-side application development, particularly within Linux environments. We value a solid foundation in C++ programming principles and the ability to effectively apply them in complex software development.

Quick Adaptability in Programming: Ability to swiftly learn and integrate new programming tools and methods.

Real-Time Systems Experience: A solid understanding of thread safety and management in multithreaded applications.

Knowledge of SOLID Principles and Data Structures: A firm understanding of these concepts is essential for effective development and problem-solving in our environment.

Network Programming Proficiency: Required for working with our distributed system infrastructure.

Preferred Skills

Professional Experience: Practical, hands-on experience in software development is valued. A formal degree is not a strict requirement, but some level of professional experience is necessary.

Additional Programming Languages: Knowledge of additional programming languages and frameworks, reflecting a versatile skill set.

Expertise in High-Performance Computing: Advanced understanding of optimizing systems for high performance and low latency.

Understanding of Financial Markets: A basic knowledge or interest in financial markets and trading systems.

Familiarity with Database Systems: Experience with both SQL and NoSQL databases, beneficial for managing and optimizing data in distributed environments.

Personal Attributes

Quick to Adapt and Learn: Demonstrates a strong ability to swiftly grasp and apply new concepts and technologies, essential in a fast-paced and evolving environment.

Innovative Problem-Solving: Strong analytical skills with a knack for developing innovative solutions to complex problems.

Impact-Driven Approach: Eagerness to take on responsibilities that directly contribute to the firm’s growth and success.

Collaborative Team Player: Excellent communication skills and a collaborative spirit, essential for working effectively in a team.

Passion for Technology and Innovation: A strong interest in staying abreast of technological advancements, particularly those applicable to our field.

Application Process

Our hiring process is designed to be thorough and engaging, allowing both the firm and the candidate to make informed decisions. It consists of three key stages:

  1. Initial Remote Interview: A short interview conducted remotely to discuss the candidate's background, skills, and interest in the role, and to learn more about our firm and the position.
  2. Coding Challenge: Candidates who progress past the initial interview will be given a coding challenge to assess their technical skills and problem-solving approach.
  3. In-Person Interview: The final stage involves an in-person interview at our office, covering both technical and cultural fit, and may involve meeting with multiple team members.

Next Steps

Please fill out the application below and we will follow up as soon as we are able to.