Software Engineer - Research Technology
DRWAbout the Role
As a Software Engineer, Research Technology, you will contribute to and grow into a small team building the software platform that powers researchers running compute-heavy analyses on very large event-stream datasets. The workload is analogous to a game engine's replay and simulation loop, a telco's real-time packet pipeline, or a bigtech streaming and analytics platform, applied to financial market data.
The stack: modern C++ for the throughput-critical ingest and simulation core, Python plus C++ bindings for research tooling, distributed compute across HPC (Slurm today, evolving). You will help deliver high-quality data, fast and flexible compute tooling, robust simulation and deployment systems, and ergonomics that let researchers iterate quickly.
Key responsibilities include designing and building high-performance data systems, implementing raw exchange data pipelines in modern C++, orchestrating data and compute pipelines on HPC clusters, creating ad-hoc computation frameworks and research tooling, developing simulation frameworks tied to HFT/live trading platforms, supporting training and deployment of quantitative models, monitoring and troubleshooting distributed platforms, and optimizing codebases for performance across the full stack.
Requirements
- 2+ years of professional experience building large-scale, high-performance systems; daily use of modern C++ (>=17) and Python expected.
- Strong CS fundamentals: data structures, algorithms, networking, OS, concurrency, and system design.
- Data engineering fluency: designing schemas, choosing storage formats, understanding compression and I/O trade-offs, and operating pipelines that write and read hundreds of TB.
- Comfortable reasoning about columnar formats (Parquet / Arrow) or their equivalents in your domain (event logs, telemetry, replays).
- Experience designing and operating services or platforms used by other technical users in data-intensive environments.
- Comfortable supporting internal users and iterating on ergonomics and workflows.
- Demonstrated ability to ship production software safely and repeatedly, with an obsession for data driven quality.
- Excellent written and verbal communication; collaborative mindset and empathy.
- Rust experience alongside C++ and Python.
- Experience running compute at cluster scale: job scheduling, resource management, retries, and reliability.
- GPU programming experience.
- Familiarity with ML/Deep Learning frameworks.
- Prior finance or market-data experience, including low-level market connectivity.
- Historical network / packet processing (telco, network appliances, packet-capture replay infrastructure) - any exposure.
- Deterministic simulation and replay systems (game engines, cell simulators, distributed-systems testing frameworks) - any exposure.
- Dev-productivity or platform-engineering for internal users (making other engineers or researchers faster and safer) - any exposure, including internship or open-source work.