Job responsibilities
- Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Develops secure high-quality production code, and reviews and debugs code written by others
- Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
- Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
- Leads communities of practice across Software Engineering to drive awareness and use of new and leading-edge technologies
- Take end to end responsibilities of areas/applications and drive projects or Complex assignments
- Provide overall direction, oversight, and coaching for entry-level to mid-level software engineers that work on basic to moderately complex tasks
- Design, Enhance and Develop various Applications/Modules in Electronic Trading Stack such as Smart Order Routing, Internal Matching Engine, Market Access, and Risk Management in C++
- Develop scalable real-time processing solutions using agile methodologies, and develop and maintain automated testing
- Ensures successful collaboration across teams and stakeholders
- Identifies and mitigates issues to execute a book of work while escalating issues as necessary
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years of applied experience
- Hands-on practical experience delivering system design, application development, testing, and operational stability
- Advanced knowledge of C++11 onward; Template and generic programming
- Expertise in multi-threading/concurrent programming
- Proficiency in automation and continuous delivery methods
- Proficient in all aspects of the Software Development Life Cycle and advanced understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
- Strong Unix/Linux background with understanding of OS and kernel architecture
- Experience with Scripting such as Shell, Perl, or Python
- Proven experience in design and development of low latency, real-time, scalable electronic trading systems
- Advanced knowledge of Software Architecture, Design, Algorithms
- Strong network programming with good understanding of TCP/UDP protocols
Preferred qualifications, capabilities, and skills
- Understanding of FIX protocol is desirable
- Knowledge of market data distribution and order management system
- Familiarity with modern Continuous Integration development practices
- Exposure/Ability learn other languages & technologies like Java, Cloud Technologies etc.
- Kernel tuning and low-level system programming
- Knowledge of Electronic Trading and Equities, Futures, and Options Exchange Connectivity in global markets is desirable
- Ability to work collaboratively in teams and develop meaningful relationships to achieve common goals