Recently, another classmate asked Stripe OA, the question types are still the familiar ones, and overall there is not much change. I would like to briefly synchronize the latest situation with you so that students who are preparing for interviews with this company can have a good idea.

Stripe OA basic form
Stripe’s OA has always been relatively fixed:
- Duration: 60 minutes
- Number of questions: 1 question
- Type: Hard OOD (object-oriented design)
Although there is only one question, don’t be fooled by the number. This question is very long and requires a lot of implementation. Basically, you are designing the class structure while reading the question. At the same time, you need to quickly complete the code implementation, which requires both coding speed and design capabilities. The good news is that the current Stripe OA question bank is actually very small. Over the years, this company has basically come up with three sets of questions repeatedly. Many students have done dozens of OA sets, and according to statistics, they still rotate these classic questions.
Stripe OA exclusive real questions
This is a multi-stage load balancer implementation problem, which needs to gradually implement 5 parts of the function. The core is to provide each CONNECT Requests are assigned to target Jupyter servers and logged, while handling rules such as disconnection and sticky routing.
Part 1: Basic load balancing
- Goal: for new
CONNECTRequest to select the server with the smallest number of current connections; if the numbers are the same, select the server with the smallest index (index starts from 1). - Data structure: Need to maintain the current number of connections for each server
Connections_count(Array, length isNumTargets). - Output: for each
CONNECTRequest, returnConnectionId,userId,targetIndexFormat log.
Part 2: Handling disconnections
- New
DISCONNECTRequest: According toConnectionIdFind the server where it is located and reduce the number of connections to the server by 1. - Data structure: new
Connection_to_targetDictionary, record eachConnectionIdThe corresponding target server index. - Constraint:
DISCONNECTOnly for connectedConnectionId.
Part 3: Sticky routing based on object ID
- Add new constraints: if there are multiple
CONNECTRequests specifying the same objectId must be routed to the same server, even if that server is currently under higher load. - Data structure: new
Object_to_targetDictionary, record eachObjectIdBind target server index. - Logic: processing
CONNECT, check firstObjectIdWhether the server has been bound; if it has been bound, use the server directly; otherwise, the load balancing logic of Part 1 will be executed andObjectIdBind to the selected server.
A bit of real advice
The difficulty of the Stripe OA 60-minute question is not in the algorithm, but in the ability to implement the project. The biggest challenge for many students when doing this question is actually time management. We have taught a lot about Stripe OA and are familiar with common problem types and implementation ideas. If you are currently preparing for Stripe or similar engineering implementation-based OA, and hope that someone can help you control the rhythm, remind you of key nodes, and avoid getting stuck on details during the exam, you can also Contact us Learn about specific preparation plans.