Squarepoint Capital interview experience Real time questions & tips from candidates to crack your interview

SWE(C++)

Squarepoint Capital
upvote
share-icon
4 rounds | 8 Coding problems

Interview preparation journey

expand-icon
Journey
I started my preparation around July and learned the basics of C++ from various books and blogs. I also practiced competitive programming and DSA on coding platforms regularly until October. I continued revising OS, Computer Networks, and C++ until November, when my interview finally took place.
Application story
I applied for the C++ Quantitative Developer role at Squarepoint Capital through an on-campus recruitment drive. The process began with an initial resume shortlisting, followed by a rigorous online technical assessment that focused heavily on advanced C++ data structures and competitive programming-style logic. After clearing the assessment, I moved on to a series of technical interview rounds. These interviews were deeply technical, going beyond standard software engineering to focus on systems programming, low-latency optimizations, and the internal mechanics of the C++ language.
Why selected/rejected for the role?
I believe I was selected because of my deep knowledge of C++ internals and my ability to reason through complex concurrency problems. While many candidates can solve algorithmic problems, I demonstrated "mechanical sympathy"—an understanding of how software interacts with hardware (CPU caches, memory barriers, etc.). Additionally, my preparation was aligned with a long-term goal of working in the HFT space, which was reflected in my ability to discuss low-latency concepts with genuine interest and technical accuracy.
Preparation
Duration: 4 Months
Topics: Data Structures, Pointers, OOPS, Algorithms, Dynamic Programming, Operating System, C++, Linux
Tip
Tip

Tip 1: Study memory alignment, data locality, and the cost of dynamic dispatch. Be prepared to explain why a std::vector of structs is often superior to a std::vector of pointers in terms of CPU cache utilization.
Tip 2: Practice implementing various data structures like Vector, Order Book, Unordered Map, and LRU Cache.
Tip 3: Practice coding questions daily for the OA round.

Application process
Where: Campus
Eligibility: Above 7 CGPA (CS branch), and above 8 CGPA in the rest. (Salary Package: 66 LPA)
Resume Tip
Resume tip

Tip 1: Showcase low-level mastery. Don’t just list “C++”; highlight projects where you managed memory manually, used multithreading, or optimized code for performance.

Tip 2: Quantify your impact. Instead of saying “Optimized a system,” say “Reduced latency by 15% by implementing a lock-free queue.” HFT firms value candidates who think in terms of microseconds and resource efficiency.

Interview rounds

01
Round
Medium
Online Coding Interview
Duration90 minutes
Interview date6 Oct 2025
Coding problem3

The test was conducted during the daytime and included three easy DSA questions.

1. Palindrome Partitioning

Moderate
25m average time
75% success
0/80
Asked in companies
QualcommMorgan StanleyQuikr

You are given a string 'S'. Your task is to partition 'S' such that every substring of the partition is a palindrome. You need to return all possible palindrome partitioning of 'S'.

Note: A substring is a contiguous segment of a string.

For Example:
For a given string “BaaB”
3 possible palindrome partitioning of the given string are:
{“B”, “a”, “a”, “B”}
{“B”, “aa”, “B”}
{“BaaB”}
Every substring of all the above partitions of “BaaB” is a palindrome.
Problem approach

Count Character Pairs: Count the frequencies of all characters in the array. Since a palindrome is built using pairs of identical characters (with at most one middle character), count how many pairs you have in total and how many “leftover” odd characters remain.

Sort by Length: Sort the original string lengths in ascending order. It is always more efficient to complete a short palindrome first because it requires fewer character pairs, leaving more resources to try and complete longer strings.

Greedy Allocation: Iterate through the sorted lengths. For each string of length L, you need ⌊L/2⌋ pairs to fill it. If you have enough pairs, subtract them and increment your count. Don’t worry about the middle character for odd-length strings; the leftover characters from Step 1 will naturally fill those spots.

Try solving now

2. Reverse Stack Using Recursion

Easy
21m average time
80% success
0/40
Asked in companies
AmazonNoBrokerGrab

Reverse a given stack of 'N' integers using recursion. You are required to make changes in the input parameter itself.


Note: You are not allowed to use any extra space other than the internal stack space used due to recursion.


Example:
Input: [1,2,3,4,5] 
Output: [5,4,3,2,1]

add image

Problem approach

Bit-by-Bit Evaluation (LSB to MSB): Since the sum S is fixed, the total contribution of all ai​⊕x must equal S. Iterate through bits from k=0 to 61. At each step k, the k-th bit of the sum is determined by the k-th bits of the modified elements (ai​⊕x) and the carry from the (k−1) position.

Greedy Choice with Carry Management: For each bit k, you have two choices: set the k-th bit of x to 0 or 1.

If you set xk​=0, the k-th bit of the i-th term is ai,k​.

If you set xk​=1, the k-th bit of the i-th term is 1−ai,k​.
Calculate how many 1s are contributed to the k-th position for both choices. Choose the value for xk​ that results in a k-th bit of the total sum that matches Sk​ (the k-th bit of S).

Recursive Backtracking (or DP): Because a choice at bit k affects the carry to bit k+1, a pure greedy approach might fail. You must use a recursive function solve(bit, carry) to explore whether a valid x exists. Since the carry can be large, you must observe that the carry eventually stabilizes or can be capped, allowing for a memoized search.

Try solving now

3. Minimum Sum Subarray

Easy
15m average time
85% success
0/40
Asked in companies
Snapdeal Ltd.Zeta

You have been given an array/list 'ARR' consisting of 'N' integers.

Your task is to find the minimum possible sum of a non-empty subarray of this array.

Note:

An array 'C' is a subarray of array 'D' if it can be obtained by deletion of several elements(possibly zero) from the beginning and the end of array 'D'. For example, all the non-empty subarrays of array [1,2,3] are [1], [2], [3], [1,2], [2,3], [1,2,3].

For Example :

Input: 'N' = 3 , 'ARR' =  [-5, 10 , 0]
Output: -5

Explanation : The non empty subarrays possible for 'ARR' are [-5], [10], [0], [-5, 10], [-5, 0], [10, 0], [-5, 10, 0]. The sum of the elements of these subarrays are -5, 10, 0, 5, -5, 10, 5. The minimum of them is -5.
Problem approach

Identify the Greedy Choice: To minimize the total sum, each operation should provide the maximum possible reduction. The reduction gained by dividing x is x−⌈x/2⌉=⌊x/2⌋. This reduction is always non-decreasing with respect to x, meaning you should always pick the largest current element in the array for each of the k operations.

Use a Max-Heap (Priority Queue): Repeatedly finding the maximum in a raw array would take O(n) per operation, leading to O(nk), which is too slow. Instead, push all elements into a Max-Priority Queue. This allows you to extract the maximum and re-insert the halved value in O(logn) time.

Iterate and Re-sum: Perform the operation exactly k times (or until the maximum element becomes 0). In each iteration:

Extract the top element max_val.

Calculate new_val = ceil(max_val / 2.0).

Push new_val back into the heap.
After k operations, the sum of all elements currently in the heap is your answer.

Try solving now
02
Round
Hard
Video Call
Duration120 minutes
Interview date5 Nov 2025
Coding problem3

It was an afternoon interview. Conducted on the HackerRank platform.

1. Core Concepts

This round involved extensive questions on OS, OOP, and implementation.

  • Given a memory address, I had to determine whether it was in the stack or heap:
    bool isHeap(void *mem_addr) {}
  • Explain the memory layout of a process.
  • Why are system calls needed, and can you name some of them? (Learn)
  • Can we use std::move for an rvalue?
  • What exactly does std::move do?
  • What is std::function, and where can it be used?
  • What is RAII, and why is it used?

They aimed to assess core concepts. They also helped during the implementation part, and writing in a pseudocode manner was acceptable to them.

Problem approach

Tip 1: Read the OSTEP book for OS 
Tip 2: Study the Multithreading in Action (C++) book for multithreading

2. Thread Pool

They also asked me to implement a thread pool in C++ using mutexes, semaphores, threads, and a queue.

Problem approach

Tip 1: Practice implementing std::vector, thread pool, memory pool, or have a rough idea of them.

3. String Class

They also asked me to implement a String class (copy constructor/assignment and move constructor/assignment).

Problem approach

Tip 1: Practice implementing std::vector, thread pool, and memory pool, or have a rough idea of them.

03
Round
Easy
Video Call
Duration90 minutes
Interview date15 Nov 2025
Coding problem1

It was similar to the previous interview and was conducted on the HackerRank platform. This round was slightly shorter and easier.

1. C++ Concepts

This round focused on C++ and implementation.

  • What is uint8_t?
  • If I declare a vector v = {1, 2, 3}, what will &v and &v[0] actually give?
  • How do you find the space occupied by this vector?
  • Then, I was given an implementation-based question involving basic DSA.
  • What is struct padding, and why is it used?
  • What are the different types of casting?
  • We also had a discussion on std::move, pointers, etc.
Problem approach

Tip 1: Again, read any C++ book to understand the underlying concepts of how memory interacts with C++.

04
Round
Easy
HR Round
Duration30 minutes
Interview date28 Nov 2025
Coding problem1

It was in the evening and conducted on a video call.

1. HR Questions

  • Why did I want to join this firm?
  • What happens if I have a different opinion than my manager on a project?
  • How would I approach a new tech stack entering the market?
Problem approach

Tip 1: Practice some basic HR questions from the internet.
Tip 2: Be confident.

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

Which data structure is used to implement a DFS?

Choose another skill to practice
Similar interview experiences
company logo
SDE - 1
3 rounds | 7 problems
Interviewed by OYO
5027 views
0 comments
0 upvotes
company logo
SDE - Intern
2 rounds | 3 problems
Interviewed by Amazon
1077 views
0 comments
0 upvotes
company logo
SDE - 1
2 rounds | 5 problems
Interviewed by Meesho
6697 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 9 problems
Interviewed by Salesforce
3720 views
0 comments
0 upvotes