Job description
Responsibilities
Implementing trading applications in C++ ,Golang or Rust. Collaborate with other team members and stakeholders. Develops solutions according to specified requirements. Maintain code and write automated/unit tests to ensure the product is of the highest quality. Resolves technical issues through debugging, research, and investigation.
Writing reusable, testable, and efficient code. Being an advocate of coding best practices. Perform Peer/Code Reviews. Optimize and secure applications. Production Support and Bug Fixes.
Qualifications
Degree in Computer Science, Software Engineering, EE or similar Minimum of 2 years developing low latency C++ applications Some knowledge in Golang, and concurrency in golang. Some knowledge in Rust. Knowledge of in-memory key-value stores i.e. REDIS. Knowledge of event driven, reactive programming design. C++ (’11/14) including STL, TMP, Boost, and type safety Proficiency in advanced data structures, algorithms, OO programming, and computational complexity Proficiency in Software Engineering including design/requirement specs, testing, QA, release.
Experience with low-level system facilities: threading, I/O, signals, shared memory. Experience in distributed computing including exchange topology, market gateways, and SORs Knowledge of TCP/IP, UDP, and network topology; experience with socket programming Some Experience in FIX protocol. Knowledge of Dealing Department automation tasks.
Good to have Knowledge of Exchange connectivity, Order Management Systems, and High Frequency Trading Knowledge and familiarity with exchange protocols FIX, ITCH, PITCH, OUCH, and related. Low-latency: hardware tuning, NUMA aware, multi-threaded design, lock-free programming. Low-latency: compiler and cache optimization, user-space networking (kernel bypass), IPC/RPC.
Experience with designing simulation and back-testing frameworks and research infrastructure.