Sr. Software Engineer (C, C++, or Rust)

PartnerverseIndiana, United States
Full TimeOn-siteMidLimited info disclosed
12 views0 applications

Description

We are looking for a Senior Systems Engineer with 10+ years of experience in systems-level engineering (Rust/C/C++), including 5+ years of production Rust, to design and build high-performance, low-latency, fault-tolerant trading infrastructure. Prior hands-on experience with financial trading systems is mandatory. Responsibilities Design, develop, and maintain high-performance backend services using Rust - Build scalable and reliable distributed systems capable of handling high request volumes - Optimize application performance, memory usage, and resource utilization - Design clean, maintainable, and well-tested software architecture Collaborate with product, engineering, and DevOps teams to deliver production-ready solutions Participate in architecture discussions, code reviews, and technical planning - Troubleshoot production issues and improve system reliability and observability - Write clean, well-documented, production-quality code following engineering best practices Required Qualifications 10+ years of professional systems programming experience in Rust, C, or C++ (5+ years production Rust) Mandatory: hands-on experience with financial trading systems — exchanges, order books, matching engines, OMS/RMS, or market data systems (equities, F&O, FX, commodities, or crypto) Strong understanding of exchange mechanics — order types, price-time priority matching, spot trading, derivatives (futures/perpetuals), options, margining and liquidation concepts Strong experience building production-grade, low-latency, high-throughput backend applications Solid understanding of distributed systems and concurrent programming — Raft/consensus, replication, snapshots, deterministic state machines, exactly-once semantics Advanced concurrency: lock-free/wait-free structures, ring buffers, thread-per-core design, core pinning Strong understanding of networking concepts — TCP/IP, UDP, multicast, real-time communication, asynchronous networking Experience designing and implementing binary communication protocols for inter-service communication (SBE, Protocol Buffers, FlatBuffers, Cap'n Proto) Experience with microservices architecture and event-driven systems - Experience with messaging systems such as Aeron, Kafka, NATS, or similar high-performance platforms Strong understanding of in-memory data structures and efficient memory management — cache lines, memory ordering, NUMA, allocation-free design Experience working with relational databases and caching systems Experience working in Linux-based production environments Familiarity with containerization and modern deployment practices Strong debugging, profiling, and benchmarking skills (perf, flamegraphs, Criterion) - Excellent problem-solving and analytical abilities; ability to work independently and take ownership of technical deliverables Preferred Technical Experience Tokio, Tonic (gRPC), Serde, Tracing, Criterion, Cargo/Clippy/Rustfmt - Aeron, LMAX Disruptor, Chronicle, or FIX engines Kernel-bypass networking concepts (io_uring, DPDK, AF_XDP); hardware timestamping Lock-free or wait-free programming techniques Options pricing / Greeks / volatility surface exposure Preferred Qualifications Experience designing highly available and fault-tolerant systems (active-active, consensus-based failover) Deterministic simulation / property-based testing of stateful systems Exposure to cloud infrastructure and production monitoring tools Open-source contributions (openraft, TigerBeetle, tokio, etc.) or personal Rust systems projects Selection Process 3 Rounds of Technical Interview 1 Round of Management Interview Shortlisting based on work evidence (repo/PR/design doc/write-up of a hard problem solved) Systems design deep-dive (order book / matching engine design), hands-on coding round, distributed systems round