The second round builds on the basics by focusing on the candidate’s ability to apply their knowledge to more complex problems. For databases, questions might explore SQL queries in more depth, asking candidates to write queries involving multiple joins, subqueries, and aggregations. Candidates could be asked to design a database schema for a specific application, taking into account normalization, indexing, and constraints to ensure data integrity and performance. In terms of operating systems, the interviewer might ask about process synchronization, deadlocks, and inter-process communication. Candidates could be challenged to explain the differences between various types of operating system kernels (monolithic, microkernel, etc.) and to discuss concepts like virtual memory, paging, and segmentation. For algorithms and data structures, candidates might be asked to solve problems involving more advanced data structures like trees, graphs, and hash tables.