SaFi Bank Space : SaFi Pair Programming & System Design Problems - Rebecca and Zhenghong

  • Pair Programming (Duration: around 1 hour)

Option 1: Check for Balanced Brackets in an expression

Check Points:

  1. the candidate should present his/her solution understandable (i.e., code readability, good communication skills). Otherwise, mark him/her as disqualified.

  2. the preferred solution is to use stack, but if the candidate can solve it with other data structures, it’s OK. If the candidate cannot come up with a solution, just stop here and mark him/her as disqualified.

  3. the candidate should write test cases to validate his/her implementation and correct his/her implementation if there are errors. These cases should cover normal and abnormal paths. For mid-level, senior and lead engineers. (sync with Jideo and HR that candidates should create a empty project with unit test using their preferred IDE)

  4. the candidate should give the time complexity of his/her solution. For senior and lead engineers

  5. the candidate can optimize his/her implementation if possible. For senior and lead engineers(naming convention, readability, logic, corner cases, a better data structure, a better solution in terms of time complexity).

Option 2: String to Integer (AtoI – ASCII to Integer)

  • System Design

System Design Problem Description: Payment System (Duration: around 1 hour)

Check Points:

  1. the candidate can understand the problem and can ask for clarification. For all levels

  2. the candidate can get started with some tools like whiteboard or UML editors(or any other tools they prefer and are comfortable with) to present his/her ideas and the major components of the system. For all levels

  3. other checkpoints are described in the link: Design a payments system