Preparing for an interview? Check out Cracking the Coding Interview
Published on

Stripe | L2 Software Engineer | Bangalore | Aug 2023

Author
  • Shared Anonymously

Applied via LinkedIn, and receieved a call from the recruiter, explaining the role they're hiring for.

Interview was in 2 sets, with each set being a knockout:

Set 1

  • Programming Interview (60 mins):
  • I was asked one problem in this round, and few follow up questions on the same.
  • Question asked: There are a list of accounts which belong to a single client. Each account should have a minimum balance 'x'. If any account balance is less than x, we can transfer some amount from different account which has more than 'x' balance. Eventual goal is to have all the accounts rebalanced such that all accounts have min balance. We need to print all the transactions which would need to be done for the same.
  • Example: 80, 120, 110, 100, 90 represent different account balances, and let x = 100. We need to print all transactions:
    T1: Account B -> Account A (20 USD)
    T2: Account C -> Account E (10 USD)
  • Debugging Interview (45 mins):
  • I was shared a private gitlab repository, which I had to clone in my machine and run the test cases.
  • Few test cases were failing due to a bug in the actual code. Objective was to understand what the code is doing and fix the bug, so that all test cases eventually pass. The code I was given was related to JSON parsing.* It's similar to something you might get as part of on prod support. Debugging the code and figure out what's wrong.
  • There were a few follow up questions on how could you look to improve the code quality (code wasn't properly written and wasn't following some common design patterns).

Set 2

  • Integration Interview (60 mins)

  • You'll be given a problem statement that you need to solve using some open source library. They shared a private gitlab repo which I had to work on. Although they do provide the documenation for the library we're supposed to use, but we're free to Google stuff.

  • This was divided into 3 tasks:

  • Task 1: Given some JSON data in a file, read the file and print first x elements from the array. (JSON data had some nested arrays). I was asked to use Jsonite library to parse the JSON here.

  • Task 2: Given some JSON data, use OkHttp library to send the data to an API. Consume the response from API (in byte format), and create a JPG file with the data we received from the API.

  • Task 3: Parse the JSON data from a file (using Jsonite), fetch the set of coordinates from within the JSON and call the API using OkHttp for the same, and create a JPG image from the API response. We had to transform the parsed JSON from the file (every 30th coordinate should have some param x, every 10th coordinate should have some param y, etc).

  • Design Interview (45 mins)

  • It was a typical HLD round. I was asked to design a Ledger system for the different transactions that merchant does using our platform.

  • Another task was to be able to transfer the money back to the merchant daily.

  • This included discussion of what systems we'll use, what the flow would look like, choice of DB, and API design (including what our API contracts and API auth would look like)

  • Hiring Manager (45 mins)

  • This was a behavioral style round where HM asked about what all different problems you faced with current org (both technical and non technical), and how did you overcome that.

  • Most diffucult project you worked on, in depth details on how you went about solving it, and what were the learnings.

  • Why job change

It took about 40 days to get through the interview process. I was offered L2 Software Engineer (6 years exp).

ReportMark as Helpful