Round 1:
Create an immutable class having integer, string and date params
Design SMS service system with retry attempts of 3. Lets say you have a load balancer passing msg request to one of the SMS service boxes. Design this system such that max 3 retry attempts can be made. Each retry attempt should be made after the x(1, 2, 3) mins delay of the last failure. Assume, a different sms channel is available which can consume the msg(forwarded from the sms service box) and send it to the recipient. This sms channel will also acknowledge the success/failure back to sms service requestor.
There are 3 tables - Subject, teacher, subjects_and_teachers - subjects_and_teachers contains many to many relationship for subjects and teachers - one subject can be taught by multiple teachers and one teacher can teach multiple subjects - Write a query to get the count of teachers for each the subject. Also, take care of displaying the count if there is no teacher teaching any subject.
Round 2:
Design circular queue of a fixed size. May use Node and pointer mechanism. How about doing the same problem using arrays. Make sure you implement enqueue, dequeue, isFull, front and rear methods.
Design IRCTC search service database schema. It asks for date, source, destn and shows available trains. Please see some trains run on mon, tue only. some trains run on mon, wed, fri only and likewise. Extend this problem, to display available seats too.
Round 3:
About current project architecture : session management in my project
Design Api rate limiter
Difference between lock and tryLock. Where would you use tryLock. Implement your own trylock assuming the legacy Java environment(1.4)
Design or performance enhancement anytime.