
Quantitative Software Engineer: Fast Engineering
Role summary
Two Sigma is seeking a Quantitative Software Engineer to join their Fast Engineering team. This role involves building a next-generation framework for low-latency feature construction and alpha generation using Rust. You will collaborate with researchers to deploy quantitative models in C++, Rust, and Python, design and build new components to overcome research roadblocks, and analyze quantitative characteristics from real-time data. The ideal candidate will have a strong background in systems programming languages like Rust, C++, or C, experience with Python for quantitative analysis, and a minimum of 1 year of software engineering and quantitative analysis experience, with 5-10+ years preferred. A BS in Computer Science, Mathematics, Physics, or a related field is required.
Position Summary
Two Sigma is a leading quantitative investment management and trading firm. The company applies a scientific approach to investing, combining cutting-edge technology, artificial intelligence, data science, and quantitative research with rigorous human inquiry to capitalize on market opportunities and deliver alpha for investors.
Our team of engineers, quantitative researchers and data scientists looks beyond the traditional to test hypotheses and develop creative solutions to some of the world’s most complex economic problems.
In Fast Engineering, we are building the next-generation user-friendly framework supporting low-latency and resource-intensive feature construction, alpha generation and trading across a diverse set of asset classes and markets globally. The framework consists of reusable building blocks packaged into a suite of libraries written in the Rust programming language. These building blocks cover foundational infrastructure as well as finance-related functions.
As a quantitative software engineer, you will work directly with researchers to help them use our low-latency components to deploy quantitative models in C++, Rust, and less latency sensitive models in Python. When you discover roadblocks for new types of models, you will design and build new components to enable those models to be researched and deployed. You will also understand, build, iterate and expand on the research done by our research groups. You will engage with research topics and cover new domains quickly; collaborate to build deep expertise with Two Sigma data and tools; apply high standards to the code and develop an ability to identify highly impactful projects in a sophisticated, constantly evolving and critically important domain.
You Will Take On The Following Responsibilities
- Develop a deep understanding in multiple research domains
- Become a technical SME for the systems underpinning our research areas and help evolve these components
- Partner closely with our research partners to ideate and iterate within new areas of research. Engineers prototype, design, and implement low-latency quantitative components to permit new classes of quantitative models and tactics
- Analyze quantitative characteristics from data generated in real-time trading and simulations
- Research, develop, and simulate quantitative changes to alpha models, feature pipelines, and trading strategies
- Perform quantitative analysis to characterize and understand the quantitative impact of our work on Two Sigma’s trading models to drive discussions with researchers, engineers and business leaders
You Should Possess The Following Qualifications
- Minimum 1 year of experience with 5-10+ years of experience preferred in software engineering and quantitative analysis
- BS in Computer Science, Mathematics, Physics or related technical/quantitative subject area
- Deep knowledge of developing high performance software in a systems programming language such as Rust, C, or C++, and an ambition to become an SME at Rust
- Experience using Python for quantitative analysis
- Excellent interpersonal skills
- Knowledge of low-latency software development and optimization, statistical methods, convex optimization and finance and market structures are beneficial
You Will Enjoy The Following Benefits
- Core Benefits: Fully paid medical and dental insurance premiums for employees and dependents, competitive 401k match, employer-paid life & disability insurance
- Perks: Onsite gyms with laundry service, wellness activities, casual dress, snacks, game rooms
- Learning: Tuition reimbursement, conference and training sponsorship
- Time Off: Generous vacation and unlimited sick days, competitive paid caregiver leaves
- Hybrid Work Policy: Flexible in-office days with budget for home office setup
The base pay for this role will be between $165,000 and $300,000. This role may also be eligible for other forms of compensation and benefits, such as a discretionary bonus, health, dental and other wellness plans and 401(k) contributions. Discretionary bonus can be a significant portion of total compensation. Actual compensation for successful candidates will be carefully determined based on a number of factors, including their skills, qualifications and experience.
We are proud to be an equal opportunity workplace. We do not discriminate based upon race, religion, color, national origin, sex, sexual orientation, gender identity/expression, age, status as a protected veteran, status as an individual with a disability, or any other applicable legally protected characteristics.
Two Sigma is committed to providing reasonable accommodations to qualified individuals in accordance with applicable federal, state, and local laws.
If you believe you need an accommodation, please visit our website for additional information.
Sample Two Sigma interview questions
- 1
Implement a microblogging site with functionalities like Twitter.
system designmedium - 2
Longest Consecutive Sequence Determine the length of the longest consecutive elements sequence. Input: nums = [0,3,7,2,5,8,4,6,0,1] Output: 9 Explanation: The longest consecutive sequence is 0 through 8 (length 9), utilizing a hash set to check connectivity in linear time.
codingmedium - 3
Diameter of a Binary Tree Find the diameter of a binary tree. Input: root = [1,2] Output: 1 Explanation: The longest path is simply the single edge connecting the root node to its only child.
codingmedium - 4
Rotate a linked list to the right by k places. Given the head of a linked list, rotate the list to the right by k places. Input: head = [0,1,2], k = 4 Output: [2,0,1] Explanation: The list has a length of 3. Rotating by 4 is mathematically equivalent to rotating by 1 (4 mod 3 = 1).
codingmedium - 5
Merge a New Interval Merge a new interval into a list of non-overlapping intervals. Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] Output: [[1,2],[3,10],[12,16]] Explanation: The new interval overlaps with [3,5], [6,7], and [8,10], merging them all into the unified block [3,10].
codingmedium
Sign up for a personalized interview prep pack tailored to this role.