The Role
We are seeking a talented and experienced Senior Software Engineer to join our TAPE team at CTC. The TAPE team owns and operates the firm's critical trade and positions system, delivering real-time risk awareness and seamless integration across every trading desk in the organization. As a key contributor to TAPE - our next-generation platform engineered for enhanced scalability, volume capacity, and support for sophisticated trading strategies - you will drive the modernization of our core infrastructure. This role presents an exciting opportunity to tackle complex technical challenges in distributed architecture, high-throughput processing, and ultra-low latency systems, while collaborating closely with both your immediate TAPE team members and the broader technology organization. You'll be instrumental in shaping the future of our trade processing capabilities, working at the intersection of cutting-edge technology and critical financial infrastructure.
What you'll do
- Architect, develop, and maintain high-performance, resilient Java services to power TAPE's critical post-trade processing workflows, including trade capture and position aggregation, with a relentless focus on latency, throughput, and system correctness
- Engineer highly scalable distributed systems capable of processing millions of daily trades across multiple asset classes, with deep optimization at the JVM level - including garbage collection tuning, off-heap memory management, and lock-free/wait-free data structures to achieve predictable, ultra-low latency performance
- Drive deep performance engineering across the stack - profiling, benchmarking, and tuning JVM internals (JIT compilation, memory models, thread affinity, CPU cache optimization) to meet stringent SLAs.
- Work closely with engineers and stakeholders within the CTC technology team to ensure seamless integration across broader technology ecosystem.
- Collaborate with cross-functional teams - including traders, quant developers, and other technical groups - to design, build, and enhance client APIs in Java, C++, and Python
- Leverage distributed caching solutions (e.g., Hazelcast, Oracle Coherence, or Redis) and container orchestration with Kubernetes to optimize system performance and reliability.
- Proactively monitor system health, diagnose performance bottlenecks, resolve production incidents, and maintain detailed technical documentation to support 24/7 operations and regulatory compliance.
What we are looking for
- Bachelor's degree in Computer Science, Engineering, or a related field (or equivalent practical experience).
- Deep expertise in high-performance Java development in a high-volume, low-latency environment. Candidates must demonstrate hands-on experience with:
- JVM internals (JIT compilation, class loading, memory layout, thread scheduling)
- GC tuning and GC-free design (ZGC, Shenandoah, off-heap allocation, object pooling)
- Lock-free and wait-free algorithms, concurrent data structures, and the Java Memory Model
- Strong expertise in distributed systems design - consistency models, fault tolerance, partitioning strategies, and distributed coordination.
- Solid understanding of distributed caching solutions (e.g., Hazelcast, Oracle Coherence, Redis) and their performance characteristics under load.
- Strong problem-solving skills with a proactive, rigorous approach to tackling complex technical challenges.
Nice to have
- Experience with post-trade processing systems including trade capture, position management, settlement workflows, and real-time risk calculations in capital markets environments.
- Understanding of trade lifecycle events, reconciliation processes, and integration between front-office trading systems and back-office settlement operations.
- Design and implement GC-free or GC-controlled Java components, leveraging technologies such as Chronicle Map, Agrona, or similar off-heap libraries to eliminate stop-the-world pauses in latency-sensitive processing paths.
- Proficiency in building and integrating APIs using Java, C++, and Python.