Writing down my 2027 NG Stripe rejection (and, I think, the most complete set of Stripe NG prep material out there).
Timeline
2026.9.3 the role opened and I got a referral from a friend -> 2026.9.4 got the OA -> 2026.9.6 finished the OA, all test cases passed in half an hour -> 2026.9.10 got an email from HR to schedule the Technical Screening -> booked it for 9.16 -> on 9.16 the interviewer had something come up, I waited 15 minutes and it was rescheduled to 9.25 -> 9.25 Technical Screening, all test cases passed -> 9.27 got the news that I passed the Technical Screen and was asked to book the VO -> booked 10.12 for one round of AI Coding, 10.13 for Integration + Bug Squash -> 10.15 rejected
Materials first
I spent almost a month preparing, going through Xiaohongshu and the old posts on the forum, and organized everything into what I think is probably the most complete set of material there is. The material is scattered across many places, so I can't credit each original post here. If you are one of the original posters, please reach out, I'd like to thank you here.
The material includes:
OA / Technical Screen question bank (a fully organized PDF)
AI Coding: collected in a pretty messy way, just skim it, you can look at what I talk about in this rejection write-up
Integration: Bikemap, Payment Reconciliation, Request Replay (judging by the questions and when they were found on the forum, I'd assume these are no longer used)
Bug Squash:
Python: Mako, Requests, Colander
Java (I chose Python so I never did these, and I'm sure there are new questions I missed): Moshi
Integration:
Bikemap has 5 parts in total, and completing 3 is generally enough. So far nobody has said what the 4th/5th parts are.
Payment Reconciliation has 4 parts in total, and the 4th part explicitly says it is not required.
Bug Squash:
Mako: bug 1: the AST was missing the visit_arg function; bug 2: when opening a file it only checked that it exists, not that it is a file (isFile); bug 3: when building the template, if / #comments / endif can't trigger a pass, so compilation fails
Requests: only one bug (not guaranteed accurate). On a 307 redirect, the first request consumes the IOBytes in the body, so the stream pointer ends up at EOF. After the redirect the same request is resent and the body is empty, but the content-size recorded in the header is not 0, so the server is waiting for the client to send something while the client thinks it has already sent everything, and in the end it times out.
Colander: bug 1: the recorded file contained None, the fix is to delete the None; bug 2: the recorded file was nested, e.g. [str1, [str2, [str3, str4], str5], str6, str7], the fix is to write a flatten function to flatten it; bug 3: some results for [] and null were inconsistent and the expected result was for them to be the same, the fix is to add an if == [], then = null in the corresponding method.
Discussion
Loading comments…