Last week, I had an interview with TCS for Prime role. Here are the questions they asked:
Basic software engineering-based questions:
- What is software testing?
- Describe the various steps in the software engineering life cycle.
- What is 'agile' software development?
Backend Authentication-Based:
- What is the difference between Verification and Validation?
- What is a token? What is the difference between token-based and cookie-based authentication? How can we implement them?
Project-Based Questions:
- Explain your project. What were your roles in the project?
- Why did you choose MongoDB over SQL? What are the differences?
- What is database scaling? What is the difference between horizontal scaling and vertical scaling?
- What do you consider while designing a database (since I mentioned I designed the database)?
- What is normalization? How did you ensure that your database adheres to the normal forms?
SQL Queries:
- They gave me a database schema and asked me to write two SQL queries (Level: Easy).
OOPS:
- What is the difference between C++ and Java?
- Follow-up: How do you free memory in C++ since I mentioned C++ does not have built-in garbage collection?
- What are the two steps in Java compilation?
- Write a few string in-built functions.
- Tell me about the last program you wrote since I mentioned I code regularly. I explained a problem on Dijkstra.
Git:
- What is the difference between git and GitHub?
- What is the difference between pushing code in a repository versus uploading it to the cloud (like Google Drive)? What additional functions does it provide?
HR:
- Asked me about my year gap.
- Since you have other offers, why do you want to join TCS?
- Describe your hobbies. Follow-up questions on books and guitar since I mentioned those.
- Location/Time Shift preferences.
Overall, the interview went well and I could answer most of the questions confidently. I received the offer one week later.