Interview experience
Virtusa Interview Questions and Answers (2026)
Real Virtusa interview questions - candidate interview experiences and HR round prep, in one place.
Overview
Section titled “Overview”Virtusa’s fresher process is a standard IT-services loop - an aptitude-and-coding online assessment, an OOP/SQL technical interview, an optional group discussion, and HR.
Virtusa interview process at a glance
Section titled “Virtusa interview process at a glance”| Round | Duration | What they test |
|---|---|---|
| Online assessment | 2-3 hrs (varies) | Aptitude, logical reasoning, verbal, technical MCQs, coding |
| Technical interview | 30-45 min | OOP, SQL, DSA basics, project discussion |
| Group discussion (some drives only) | 15-20 min | Communication, structure, listening |
| HR interview | 15-30 min | Motivation, relocation, shifts, joining |
Common HR questions asked at Virtusa
Section titled “Common HR questions asked at Virtusa”- Tell me about yourself?
- Why Virtusa, and why IT services?
- Are you willing to relocate to another delivery centre and work client-aligned shifts?
- Walk me through your project and the hardest problem you solved in it?
Sample answer frameworks for each of these are on the Virtusa HR interview questions page.
Common technical interview questions and answers
Section titled “Common technical interview questions and answers”Q: What is the difference between method overloading and overriding?
Overloading means two or more methods in the same class share a name but differ in parameter list (type, count, or order). It is resolved by the compiler at compile time using the static type of the arguments, which is why it is called static or compile-time polymorphism. Return type alone cannot distinguish overloads. Overriding means a subclass provides its own implementation of a method inherited from a parent with the same signature; the JVM picks which version to run at run time based on the actual object, which is dynamic polymorphism. An overriding method cannot reduce visibility and cannot throw broader checked exceptions than the parent.
Q: Explain abstraction versus encapsulation with a concrete example.
Abstraction is about hiding complexity behind a simpler contract - you declare an interface PaymentGateway with a charge() method, and callers do not know whether the implementation talks to a card network or a wallet. Encapsulation is about hiding data - you make the balance field private and expose deposit() and withdraw() so no caller can set a negative balance directly. The distinction interviewers want is that abstraction is design-level (what a type does), while encapsulation is implementation-level (how its state is protected). In Java, abstraction is achieved with abstract classes and interfaces, encapsulation with access modifiers plus getters and setters.
Q: What is the difference between WHERE and HAVING in SQL?
WHERE filters individual rows before any grouping happens, so it cannot reference aggregate functions. HAVING filters the groups produced by GROUP BY, so it can reference aggregates such as COUNT, SUM, or AVG. The logical order of evaluation is FROM, then WHERE, then GROUP BY, then HAVING, then SELECT, then ORDER BY - which also explains why a column alias defined in SELECT is usable in ORDER BY but not in WHERE. For example: SELECT dept_id, COUNT(*) FROM employees WHERE salary > 50000 GROUP BY dept_id HAVING COUNT(*) > 5;. Putting the salary filter in HAVING would be wrong, and putting the COUNT filter in WHERE would be a syntax error.
Q: Explain INNER JOIN, LEFT JOIN and how to find unmatched rows.
INNER JOIN returns only rows where the join condition matches in both tables. LEFT JOIN returns every row from the left table, filling NULLs in the right-hand columns where there is no match. RIGHT JOIN is the mirror image, and FULL OUTER JOIN keeps unmatched rows from both sides. To find employees with no department assigned, the standard anti-join is SELECT e.* FROM employees e LEFT JOIN departments d ON e.dept_id = d.id WHERE d.id IS NULL;. The IS NULL check on the right-hand key is what converts a LEFT JOIN into an anti-join, and it is a very common Virtusa follow-up.
Q: What is normalisation, and what do 1NF, 2NF and 3NF mean?
Normalisation organises tables to remove redundancy and update anomalies. First normal form requires atomic column values and no repeating groups - no comma-separated list of phone numbers in one cell. Second normal form additionally requires that every non-key column depends on the whole composite primary key, not just part of it. Third normal form additionally removes transitive dependencies, where a non-key column depends on another non-key column - storing dept_name alongside dept_id in an employee table violates 3NF because dept_name depends on dept_id, not on the employee. In practice teams sometimes denormalise deliberately for read performance, and saying that shows judgment rather than rote learning.
Q: How does a database index speed up queries, and what does it cost?
A typical index is a B-tree keyed on one or more columns, so looking up a value takes O(log n) page reads instead of a full table scan that reads every row. A clustered index physically orders the table rows by the key and there can be only one; a non-clustered index is a separate structure holding key values plus row pointers. The cost is that every INSERT, UPDATE, and DELETE must also maintain the index, so write throughput drops and disk usage rises. Indexes also stop helping when the query applies a function to the indexed column, such as WHERE YEAR(created_at) = 2024, because the engine can no longer match the stored keys.
Q: How do you reverse a string in place, and what is the complexity?
Use two pointers, one at index 0 and one at the last index, swap the characters they point to, then move them towards each other until they cross. That is O(n) time with O(1) extra space, and it works on a char array in Java or a list in Python. In Java a plain String is immutable, so you either convert to a char array or use StringBuilder’s reverse() method; in C you can swap in place directly in the buffer, remembering the terminating null byte stays at the end. If the interviewer adds Unicode, note that swapping raw bytes breaks multi-byte characters and you should operate on code points.
Q: What is the difference between an ArrayList and a LinkedList?
ArrayList is backed by a resizable array, so random access by index is O(1), but inserting or deleting in the middle is O(n) because elements must shift, and growth occasionally costs a full copy into a larger array. LinkedList is a doubly linked list, so inserting or deleting at a known node is O(1), but reaching index i requires walking the chain, making get(i) O(n). In real code ArrayList wins almost always because contiguous memory is cache-friendly and the pointer overhead per LinkedList node is significant. Use LinkedList mainly when you need a queue or deque with heavy head insertions, and even then ArrayDeque is usually faster.
Frequently asked questions about Virtusa interviews
Section titled “Frequently asked questions about Virtusa interviews”What is the Virtusa placement interview experience like?
Virtusa fresher hiring usually runs in four stages: 1. Online assessment - aptitude, logical reasoning, verbal ability, technical MCQs and coding questions. 2. Technical interview (30-45 min) - programming fundamentals, OOP, SQL, data structures, and a detailed project discussion. 3. Group discussion (15-20 min) - held only on some drives, on a general topic. 4. HR interview (15-30 min) - motivation, relocation, shifts, and joining timeline. Reports vary by drive and track.
What questions are asked in the Virtusa placement interview?
Virtusa interviews commonly cover: aptitude, logical reasoning and verbal ability in the online test; easy-to-medium coding problems on arrays and strings; OOP concepts (abstraction, encapsulation, overloading vs overriding); SQL joins, GROUP BY and WHERE vs HAVING; DBMS basics such as normalisation and indexes; a walkthrough of your own project; and HR questions on why Virtusa, relocation, shifts and the service agreement.
How many rounds are there in the Virtusa placement interview?
Most candidate reports describe three to four rounds: an online assessment, one or two technical interviews, an optional group discussion, and an HR round. The group discussion is frequently dropped depending on applicant numbers and time. Virtusa also runs different fresher tracks with different numbers of coding sections, so check that cycle’s college placement email.
What is the Virtusa technical interview like?
The Virtusa technical interview (30-45 min) usually starts with a detailed project discussion - stack choice, your specific contribution, and the hardest bug you fixed - then moves to OOP concepts, SQL query writing, DBMS basics, and one or two coding problems on arrays or strings. Expect to be quizzed on any language or framework listed on your resume.

