Posted 6 months ago
Location – Gurgaon
We are currently seeking a skilled C++ Developer to join our dynamic team and contribute to
the development and optimization of our trading systems.
Requirements:
- Proven experience in C++ development, preferably in a low-latency or HFT environment.
- Strong understanding of raw sockets and experience with packet capture and analysis.
- Proficiency in multithreading and synchronization mechanisms in C++.
- Expertise in memory management, including the use of smart pointers and custom memory
pools. - Knowledge of cache coherency and techniques to optimize cache performance.
- Familiarity with motherboard and CPU architecture, and how it impacts system performance.
- Experience with CPU flags and their usage in software optimization.
- Strong problem-solving skills and the ability to work in a fast-paced, high-pressure
environment. - Excellent communication skills and the ability to work collaboratively in a team.
Preferred Qualifications: - Experience with high-frequency trading systems and financial markets.
- Knowledge of network protocols and performance optimization techniques.
- Familiarity with profiling and benchmarking tools.
Responsibilities:
1. Raw Sockets: - Develop and maintain software components that use raw sockets for packet capture and
analysis. - Optimize raw socket performance to minimize packet loss and latency.
2. PCAP Analysis: - Implement solutions for capturing and analyzing network traffic using PCAP.
- Utilize tools like libpcap and Tcpdump to filter and process specific packet types.
3. Multithreading: - Design and implement multithreaded applications to enhance system performance and
scalability. - Manage thread lifecycle and synchronization to ensure efficient parallel processing.
4.Cross Thread Safety: - Ensure thread safety in shared data structures using synchronization mechanisms.
- Implement best practices for cross-thread communication and data sharing.
5.Memory Management: - Efficiently manage dynamic memory allocation and deallocation.
- Utilize smart pointers and other C++ techniques to optimize memory usage and minimize
fragmentation.
6. Cache Coherency: - Write cache-friendly code to optimize performance in multicore systems.
- Implement techniques to reduce cache misses and false sharing.
7. Custom Memory Pool Programming: - Develop custom memory pools to enhance memory management efficiency.
- Integrate custom memory pools with existing code and third-party libraries.
8. Motherboard and CPU Architecture: - Understand and leverage the key components of motherboard and CPU architecture to
optimize system performance. - Utilize advanced CPU features like SIMD, multithreading, and out-of-order execution.
9.CPU Flags and Optimization: - Optimize software performance using CPU flags such as SSE, AVX, and FMA.
- Profile and benchmark code to measure and improve performance based on CPU-specific
instructions.