Technical phone screen. The interview started out like most, with getting to know each other and discussing our backgrounds.
The prompt for the interview was incredibly wordy. It took about 8 paragraphs to say something that could have been communicated in one. It consumed about 5 minutes of the interview just to read the whole thing, followed by another 5 minutes to clarify what exactly was being asked.
It was an algorithm question with multiple parts. Once one part was completed, another part was added on.
The interviewer stated, repeatedly, that performance was not critical. They were looking for clean, well-tested code that works, rather than whether the algorithm performed in O(n) time or something similar.
While working through the problem, I repeatedly stated that given more time, I would refactor it to run faster. I identified the current algorithm's runtime and the estimated runtime after optimization, explaining what I would do to achieve it, and emphasized that I was proceeding this way due to time constraints. The interviewer seemed satisfied.
Upon completing parts 1a, 1b, and 2a of the challenge, we ran out of time. I spent about one-third of my coding time (time not spent clarifying the prompt) writing tests.
Despite the interviewer saying testing the code was important, he would often say something like, "Don't worry about writing more tests, let's move on."
During the last 10 minutes of the interview, I asked some basic questions about his experience at Stripe, such as, "Do you feel like your work has an impact?" and "What's the company culture like?" These questions were deflected, and no direct answers were given. He went off on a tangent about the ethics of the company, stating that Stripe is not the most ethical but tries to compensate by offering carbon-offsetting programs to customers. This was quite unexpected and confusing why he would bring it up.
I received an email the next morning stating I was declined. I'm not sure about their standards or how far they expect candidates to get in the prompt. However, the interviewer had me feeling like I performed well and that the code I wrote was clean and well-tested. He even hinted that they would probably invite me for a virtual on-site.
The question was long and convoluted, but it essentially came to this:
Given a string of server statuses (e.g., "1 0 0 1") and a time the server was taken offline, determine how many statuses the server was offline. 0 indicates the server is running; 1 indicates the server is offline.
Given the above, determine the best time to have taken the server offline.
Given a string with multiple server statuses nested together, determine the best time to take the server offline, but only for the innermost BEGIN/END combinations. Example strings were like "BEGIN BEGIN 0 0 1 END BEGIN 0 1 END".
The following metrics were computed from 201 interview experiences for the Stripe Software Engineer role in United States.
Stripe's interview process for their Software Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having good feelings for Stripe's Software Engineer interview process in United States.