A driven software development professional is required in the BGC Trading Systems development team. The role involves support and enhancement of business functionality of BGC's proprietary trade execution systems working as a part of distributed team of developers in the UK and US.
BGC Trading systems are both Java and C++. The role offers exposure to these varied technology stacks using both languages. The systems in question comprise of client front-end applications and multiple server components.
- The Java systems support Web, Java Swing and FIX access both for external traders and internal brokers. The application is written in core Java and executes in a Spring container; its code base supports multiple asset classes.
- The C++ Trading systems are written using a series of components that orchestrate proprietary and FIX messages between the UI and the backend trading platform using sockets as well as our enterprise API.
The appropriate candidate will start by bringing the Java system up-to-date with upgrades to the underlying core-java version and integrating it with BGC's core data services and data repositories. The candidate will further learn the system by performing escalated business support, problem triage and analysis, identifying fixes and enhancements and implementing them in code, as well as working on the business-driven feature enhancements to the system.
- Renovation of current technology used and integration to core services at BGC
- Develop new trading system functionality to meet BGC's business and regulatory requirements
- Provide escalated development support for the trade execution systems and be a part of an on-call rota and provide out of hours support if necessary
- Building complex Core Java applications and real-time C++ applications
- Knowledge of multi-threading and concurrency
- Knowledge of the Linux operating system (system calls, multi-threading, IPC, sockets)
- Industry strength messaging architecture such as Solace/29 West
- Efficient in-memory data management and associated data structures/techniques
- Developing client/server applications
- Troubleshooting and performance optimization tools
- Web technology stacks
- Understanding of design patterns, data structures and algorithms
- Working experience in relational database technology; Oracle Preferred
Desirable "Bonus" Skills:
- Financial Markets knowledge
- Spring Boot, Java messaging, Swing
- Agile methodologies/practices
- Dev-Ops tooling (Git/TeamCity/Ansible/Docker/Kubernetes)
- FIX (The Financial Information eXchange) protocol
Education to degree level is preferred.
- Self-starter, taking initiative at every opportunity, curious and willing to learn
- Holding practical view of technology as a tool to achieving the goal rather than the goal itself
- Good written and oral communication is essential