tala logo

Tala Interviews

1 experience17 reads
Tala | SDE 2 | Remote | July 2024 [Offer]
tala logo
Tala
sde 2remote3 yearsOffer
August 18, 202417 reads

Summary

I recently interviewed for an SDE 2 position at Tala in July 2024 and successfully received an offer. The interview process involved multiple rounds, covering technical knowledge, data structures and algorithms, low-level design, and system design.

Full Experience

I interviewed at Tala for the SDE 2 role, which was a remote opportunity. My current experience is 3 years in a Fintech startup. The interview process consisted of several rounds:

Round 1 (Hiring Manager) (45 min):
This round focused on my technical understanding and behavioral aspects. We discussed core concepts like the CAP theorem and sharding. Additionally, there were some general behavioral questions to understand my approach and fit.

Round 2 (Data Structures & Algorithms / Low-Level Design) (1 hr):
This round started with two medium-difficulty DSA problems. The first was 'Jump Game II'. Following that, I was given a unique problem: 'Find if Array Can Be Sorted by Swapping Adjacent Elements with Same Set Bits'. After solving these, we had some time remaining, so the interviewer introduced an LLD question about designing a fintech loan system. This round also briefly touched upon API design, ER diagrams, and some Spring Boot-related questions.

Round 3 (System Design) (1 hr):
This round focused on high-level system design. I was tasked with designing a payment system responsible for disbursing money to user bank accounts via a Third-Party Bank API. We discussed assumptions such as fast initial acknowledgment from the API but potentially long processing times, and considered metrics like 500,000 records per day. Key discussion points included DB choice and design, API design, and the overall system flow.

Round 3 (Low-Level Design) (1 hr):
This round specifically focused on Low-Level Design. The problem was to design the booking module for a "BookMyShow" like system. The requirements included listing movies, choosing showtimes and cinemas, real-time seat selection, booking confirmation with payment, and handling concurrent bookings to prevent overbooking.

I was informed that I was selected for the role, and I've also shared the compensation details on LeetCode.

Interview Questions (7)

Q1
CAP Theorem Discussion
Other

Discussion about the CAP theorem.

Q2
Sharding Concepts
System Design

Discussion about sharding.

Q3
Jump Game II
Data Structures & AlgorithmsMedium

Given an array of non-negative integers nums, you are initially positioned at the first index, and each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps.

Q4
Sort Array by Swapping Adjacent Elements with Same Set Bits
Data Structures & Algorithms

You are given an array of positive integers. In one operation, you can swap any two adjacent elements if they have the same number of set bits. You are allowed to do this operation any number of times (including zero). Return true if you can sort the array, else return false. Example 1: Input: nums = [8,4,2,30,15] Stack = [2,15] Output: true

Q5
Fintech Loan System Design (LLD)
System Design

X is a fintech company offering 2 different types of loan under scheme_1 and scheme_2. scheme_2 offers lower interest rates. Every customer joins scheme_1 first. Once they pay off their first loan in any scheme they are rewarded with points. 10% customers with highest rewards automatically gets upgraded to scheme_2. Product also requires a way to manually offer a scheme to a group of customers. If the customer has an open loan under any scheme, we don’t want to offer them another scheme until they pay off the open loan. We want to maintain the history of the offered schemes.

Q6
Payment Disbursement System Design
System DesignHard

In this section, we will design a Payment system that is responsible for disbursing the money to user’s bank account via Third Party Bank API.

Some assumptions are:

  • initial acknowledgement from 3rd party bank api is fast
  • the actual process from 3rd party bank api could take up to several hours to complete

Metrics:

  • 500,000 records per day

Discussion topics:

  • DB choice & design
  • API design
  • overall system design & flow
Q7
BookMyShow Booking Module Design (LLD)
System Design

Design book my show.

The system should allow users to view movies playing in different cinemas, select a showtime, choose seats, and make a booking. Focus on the booking module of the system.

Requirements: List Movies: Users should be able to view movies currently playing in different cinemas. They should be able to select a movie to view its details including available showtimes. Choose Showtime and Cinema: After selecting a movie, users should be able to choose a cinema and a showtime for which they want to book tickets. Seat Selection: Users should be able to select one or more seats for the chosen showtime. The system should display available seats and should update this information in real-time as users book or release seats. Booking Confirmation: After selecting their seats, users proceed to confirm their booking by making a payment. Upon successful payment, the booking should be confirmed, and an e-ticket should be generated. Handle Concurrent Bookings: The system should handle concurrent seat bookings where multiple users might attempt to book the same seat at the same time.

Have a Tala Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Tala.