Code day to day in C++ and other programming languages
Design and implement software requirements and new product features
Enhance and maintain existing functionality
Participate in design discussions and review sessions
Create high-level and detailed design documents
Assist with product documentation, unit testing and ensuring overall product quality
Support, maintain, and enhance existing and new product functionality for trading software in a real-time, multi-threaded, multi-tier server architecture environment to create high and low level design for concurrent high throughput, low latency software architecture
Provide software development plans that meet future needs of clients and markets
Evolve the new software platform and architecture by introducing new components and integrating them with existing ones
Perform memory and resource management analysis
Analyze stack traces, core dumps and production incident reports from traders and support teams
Propose fixes, enhancements to existing trading systems
Adhere to release and sprint planning with the Quality Assurance Group and Project Management
Attend and participate in daily scrum meetings
Design, develop, program server-side software components
What Will You Bring to the Table
A minimum 5 years of solid modern C++ development experience and the ability to understand, write, review and debug multithreaded code is required
Proven experience in multi-threaded applications with a focus on performance is required
Experience in the trading industry (specifically market data algorithmic trading) is strongly preferred
Experience with Linux operating systems is a plus
Knowledge of Python is a plus
Knowledge of Scala is a plus
Experience with financial trading systems experience is a plus but not required
Strong object-oriented design and programming skills
Ability to understand business requirements and translate them into technical requirements and working application code
Familiarity with agile/iterative development methodologies