Uber - Software Engineer(Data)
Summary
I interviewed for a Software Engineer (Data) role at Uber and was asked to design a flight booking system that handles both user and admin functionalities.
Full Experience
During my interview for the Software Engineer (Data) position at Uber, I was presented with a system design challenge. The interviewer asked me to design a comprehensive flight booking system that could manage various operations for both end-users and administrators. I had to consider user interactions like searching and booking flights, as well as admin tasks such as adding new flights and reviewing existing bookings. The discussion also involved outlining the core entities and their attributes required for such a system.
Interview Questions (1)
Design and implement a flight booking system that allows users to search and book flights, and enables administrators to add new flight details and show bookings for a given flight.
User functionalities:
flightSearchbookFlightaddUser
Administrator functionalities:
addFlightshowBookings
Proposed entities and their attributes:
- User:
user_id,name,phone,email_id,identity_card,userType - Admin:
admin_id,name,phone,email_id,identity_card - Flights:
flight_id,no_of_seats,src,desc,time_duration - Bookings:
flight_id,user_id,seat_number,src,desc