i
CGI
Group
Proud winner of ABECA 2025 - AmbitionBox Employee Choice Awards
Filter interviews by
Query to find employees in the same department as the highest-paid employee.
Use a subquery to find the highest salary: SELECT MAX(salary) FROM employees.
Join the employees table with itself to filter by department.
Example query: SELECT name FROM employees WHERE department_id = (SELECT department_id FROM employees WHERE salary = (SELECT MAX(salary) FROM employees));
Extracting the domain name from an email ID involves parsing the string after the '@' symbol.
Use string manipulation functions to split the email ID at the '@' symbol.
For example, for 'user@example.com', the domain is 'example.com'.
In SQL, you can use SUBSTRING_INDEX(email, '@', -1) to get the domain.
In Python, you can use email.split('@')[1] to extract the domain.
Handling high traffic in a Node.js application involves optimizing performance, scaling, and managing resources effectively.
Load Balancing: Distribute incoming traffic across multiple server instances using tools like Nginx or AWS Elastic Load Balancing.
Clustering: Utilize Node.js's built-in cluster module to create multiple instances of your application, taking advantage of multi-core systems.
Caching: Implement c...
I attended XYZ University, known for its strong engineering program and vibrant campus life, fostering both academic and personal growth.
The university offers a diverse range of engineering courses, including software development, data structures, and algorithms.
I participated in various hackathons, where my team developed a mobile app that won first place in a regional competition.
The campus has numerous clubs an...
What people are saying about CGI Group
StringBuffer is synchronized and thread-safe; StringBuilder is unsynchronized and faster for single-threaded scenarios.
StringBuffer is synchronized, making it thread-safe. Example: StringBuffer sb = new StringBuffer();
StringBuilder is not synchronized, making it faster for single-threaded use. Example: StringBuilder sb = new StringBuilder();
StringBuffer can be used in multi-threaded environments without additional...
Yes, a web application can be vulnerable to both XSS and SQL injection due to improper input validation.
XSS (Cross-Site Scripting) occurs when an application includes untrusted data in a web page without proper validation or escaping.
SQL Injection happens when an application includes untrusted data in a SQL query without proper sanitization.
For example, an input field that allows users to enter comments could be v...
CSP header bypass involves exploiting misconfigurations or weaknesses in Content Security Policy to execute unauthorized scripts.
1. Use of 'unsafe-inline': If a CSP allows 'unsafe-inline', attackers can inject scripts directly into HTML.
2. Whitelisting domains: If a CSP whitelists a domain that is compromised, attackers can serve malicious scripts from that domain.
3. Data URIs: Some CSP configurations may allow da...
I utilize various tools and methods to execute test cases in parallel, enhancing efficiency and reducing testing time.
Use test automation frameworks like Selenium Grid to run tests on multiple browsers simultaneously.
Leverage cloud-based testing platforms such as BrowserStack or Sauce Labs for parallel execution across different environments.
Implement Continuous Integration/Continuous Deployment (CI/CD) tools like...
I applied OOP principles to enhance code reusability, maintainability, and scalability in my automation framework.
Encapsulation: I created classes to encapsulate related functionalities, such as 'Login' and 'Search', which improved code organization.
Inheritance: I used inheritance to create a base class 'TestBase' that contains common setup and teardown methods for all tests.
Polymorphism: I implemented polymorphis...
Java 8 introduced significant features like lambdas, streams, and new date/time APIs, enhancing productivity and code readability.
Lambda Expressions: Enable concise representation of functional interfaces. Example: (a, b) -> a + b.
Streams API: Facilitates functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Allow interfaces to...
I applied via Company Website and was interviewed in Oct 2021. There was 1 interview round.
Python is a high-level, interpreted programming language known for its simplicity, readability, and versatility.
Python has a large standard library with modules for various tasks
It supports multiple programming paradigms such as procedural, object-oriented, and functional programming
Python is dynamically typed and garbage-collected
It has a simple and easy-to-learn syntax
Python is widely used in web development, scienti...
To create a web page using HTML and CSS, you need to write the structure and content in HTML and then style it using CSS.
Start by creating the basic structure of the web page using HTML tags such as <html>, <head>, <title>, <body>, <header>, <footer>, <nav>, <section>, <article>, <div>, etc.
Add content to the web page using text, images, links, and other eleme...
Fibonacci code generates a series of numbers where each number is the sum of the two preceding ones.
Declare variables for first and second numbers in the series
Loop through the desired number of iterations
Calculate the next number in the series by adding the previous two
Print or store the result
Code to print even and odd numbers
Use a loop to iterate through numbers
Check if the number is even or odd using modulus operator
Print the number accordingly
Execute parameters in a function must be an array of strings.
Define the function with parameters in the parentheses
Separate each parameter with a comma
Enclose the parameters in square brackets to create an array
Example: function myFunction([param1, param2, param3]) { //code here }
OOPs is a programming paradigm based on the concept of objects that interact with each other.
OOPs stands for Object-Oriented Programming.
It focuses on creating objects that have properties and methods.
Encapsulation, Inheritance, and Polymorphism are the three main pillars of OOPs.
Encapsulation is the process of hiding the implementation details of an object from the outside world.
Inheritance allows a class to inherit p...
Classes are used in object-oriented programming to define a blueprint for creating objects.
Classes provide encapsulation, inheritance, and polymorphism.
They help organize code and make it more reusable.
Example: class Car { String make; int year; }
Example: Car myCar = new Car(); myCar.make = "Toyota"; myCar.year = 2021;
An anonymous function is a function without a name.
Anonymous functions are often used as arguments to higher-order functions.
They can be defined using the function keyword or as arrow functions.
Example: const add = function(x, y) { return x + y; }
Example: const multiply = (x, y) => x * y;
Inheritance is a mechanism in object-oriented programming where a class is derived from another class.
Inheritance allows a subclass to inherit properties and methods from a superclass.
The subclass can also add its own properties and methods.
Inheritance promotes code reuse and helps in creating a hierarchical class structure.
For example, a Car class can inherit from a Vehicle class, which can inherit from a Transport cl...
Python is a dynamic language because it allows for runtime changes and doesn't require variable declarations.
Python doesn't require variable declarations, allowing for dynamic typing
Functions and classes can be modified at runtime
Python's built-in functions like type() and setattr() allow for dynamic behavior
Dynamic behavior allows for more flexibility and faster development
Example: changing the type of a variable duri...
Data structures are ways of organizing and storing data in a computer so that it can be accessed and used efficiently.
Data structures are used to manage and manipulate data in computer programs.
Examples of data structures include arrays, linked lists, stacks, queues, trees, and graphs.
Choosing the right data structure for a particular problem can greatly improve the efficiency of a program.
Data structures can be implem...
List is mutable while tuple is immutable in Python.
List can be modified while tuple cannot be modified.
List uses square brackets [] while tuple uses parentheses ().
List is slower than tuple in terms of performance.
List is used for collections of data while tuple is used for grouping related data.
Example of list: [1, 2, 3] and example of tuple: (1, 2, 3).
Convert dictionary to list in Python
Use the items() method to get key-value pairs as tuples
Convert the tuples to a list using list()
Append the lists to a new list using append()
Alternatively, use list comprehension to convert the dictionary to a list
Homogeneous elements are elements of the same type or kind.
Homogeneous elements have similar properties and characteristics.
They can be combined or compared easily.
Examples include a set of integers, a group of apples, or a collection of red flowers.
An array is a collection of similar data types stored in contiguous memory locations.
Arrays can be of any data type, such as integers, floats, characters, etc.
Arrays are accessed using an index, starting from 0.
Arrays can be one-dimensional, two-dimensional, or multi-dimensional.
Example: string[] names = {"John", "Jane", "Bob"};
Example: int[] numbers = new int[5];
The number of times a for loop is used in a program varies depending on the program's requirements.
The number of for loops used in a program depends on the program's logic and requirements.
For loops are used to iterate over arrays, lists, and other data structures.
Nested for loops are used to iterate over multi-dimensional arrays.
For loops can also be used for counting and other repetitive tasks.
The number of for loops...
Bootstrap is a popular front-end framework for building responsive websites and web applications.
Bootstrap provides pre-designed HTML, CSS, and JavaScript components for easy implementation
It includes a responsive grid system for creating layouts that adapt to different screen sizes
Bootstrap also offers built-in support for popular JavaScript plugins and libraries
It was originally developed by Twitter and is now mainta...
Prime number is a number that is divisible only by 1 and itself.
Prime numbers are always greater than 1.
Examples of prime numbers are 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.
To check if a number is prime, divide it by all numbers less than or equal to its square root. If none of them divide it evenly, it is prime.
I applied via Campus Placement and was interviewed in Dec 2024. There were 3 interview rounds.
Average to easy difficulty level.
String manipulation in Java involves various methods like substring, concat, replace, etc.
Use substring() to extract a part of the string
Use concat() to concatenate two strings
Use replace() to replace a specific character or substring in a string
Various sorting algorithms in Java code
Bubble Sort: int[] arr = {5, 2, 8, 1, 3}; Arrays.sort(arr);
Selection Sort: int[] arr = {5, 2, 8, 1, 3}; Arrays.sort(arr);
Insertion Sort: int[] arr = {5, 2, 8, 1, 3}; Arrays.sort(arr);
Merge Sort: int[] arr = {5, 2, 8, 1, 3}; Arrays.sort(arr);
Quick Sort: int[] arr = {5, 2, 8, 1, 3}; Arrays.sort(arr);
The company is a leading software development firm specializing in creating innovative solutions for various industries.
Specializes in creating innovative software solutions
Works with clients from various industries
Known for high-quality and reliable products
Has a strong team of software engineers and developers
Handled conflicts by addressing issues directly, seeking compromise, and maintaining professionalism.
Addressed a disagreement with a colleague by scheduling a one-on-one meeting to discuss concerns and find common ground.
Resolved a conflict with a manager by actively listening to their perspective, providing feedback, and working together to find a solution.
Maintained professionalism during conflicts by staying calm, r...
I would gather more data to support my idea, present a compelling case to my manager, and be open to feedback and compromise.
Gather data to support the idea, such as market research, user feedback, or cost-benefit analysis.
Prepare a well-structured presentation highlighting the potential benefits of the product idea.
Listen to the manager's concerns and feedback, and be open to making adjustments or compromises.
Seek sup...
I appeared for an interview in Feb 2025, where I was asked the following questions.
Adding a new field in MVC requires updates in the backend and frontend for seamless data flow.
1. Update the Model: Add the new field to the data model class (e.g., 'public string NewField { get; set; }' in C#).
2. Update the Database: Modify the database schema to include the new field (e.g., using a migration in Entity Framework).
3. Update the Controller: Ensure the controller retrieves and sends the new field data to ...
I appeared for an interview in Mar 2025, where I was asked the following questions.
XSS (Cross-Site Scripting) is a security vulnerability allowing attackers to inject malicious scripts into web pages viewed by users.
Sanitize user input to remove harmful scripts. Example: Use libraries like DOMPurify.
Implement Content Security Policy (CSP) to restrict sources of scripts.
Use HTTPOnly and Secure flags on cookies to prevent access via JavaScript.
Validate and encode output data to prevent script execution...
SQL (Structured Query Language) is a standard language for managing and manipulating relational databases.
SQL is used to perform tasks such as querying data, updating records, and managing database structures.
Second-order SQL injection occurs when an attacker injects malicious SQL code into a database, which is then executed later.
For example, an attacker might input a value that is stored in the database, and when tha...
CSP header bypass involves exploiting misconfigurations or weaknesses in Content Security Policy to execute unauthorized scripts.
1. Use of 'unsafe-inline': If a CSP allows 'unsafe-inline', attackers can inject scripts directly into HTML.
2. Whitelisting domains: If a CSP whitelists a domain that is compromised, attackers can serve malicious scripts from that domain.
3. Data URIs: Some CSP configurations may allow data UR...
Yes, a web application can be vulnerable to both XSS and SQL injection due to improper input validation.
XSS (Cross-Site Scripting) occurs when an application includes untrusted data in a web page without proper validation or escaping.
SQL Injection happens when an application includes untrusted data in a SQL query without proper sanitization.
For example, an input field that allows users to enter comments could be vulner...
I appeared for an interview in Feb 2025.
Understanding JavaScript concepts like parameters, closures, and variable declarations is crucial for effective coding.
Parameters are variables listed as part of a function's definition, while arguments are the actual values passed to the function.
Example: function add(a, b) { return a + b; } - 'a' and 'b' are parameters; add(2, 3) - '2' and '3' are arguments.
Closures are functions that remember their lexical scope eve...
Create a simple Angular form to capture user details and display them in a table upon submission.
Use Angular Reactive Forms for form handling.
Create a form with fields: name, email, and mobile.
Bind form controls to the template using [(ngModel)].
On form submission, push the form data to an array.
Use *ngFor to display the array data in a table.
I appeared for an interview in Feb 2025.
Around 120 minutes. Had Different sections for coding, verbal, CS fundamentals.
I applied via Indeed and was interviewed in Dec 2024. There was 1 interview round.
I applied via Naukri.com and was interviewed in Dec 2024. There were 2 interview rounds.
I applied via Naukri.com and was interviewed in Nov 2024. There were 3 interview rounds.
I applied via Approached by Company and was interviewed in Nov 2024. There was 1 interview round.
Formulating security for vendors implementing ISO 27001 involves risk assessment, policy development, and continuous monitoring.
Conduct a thorough risk assessment to identify potential vulnerabilities and threats.
Develop and implement security policies that align with ISO 27001 requirements.
Ensure vendor staff are trained on information security best practices.
Establish a continuous monitoring process to assess complia...
Evaluate security controls for applications handling data from internet and corporate connections to hybrid cloud storage.
Implement strong authentication mechanisms (e.g., multi-factor authentication) for users accessing the application.
Ensure data encryption in transit and at rest to protect sensitive information (e.g., using TLS for data in transit).
Conduct regular vulnerability assessments and penetration testing to...
I applied via Approached by Company and was interviewed in Oct 2024. There were 2 interview rounds.
Some of the top questions asked at the CGI Group interview -
The duration of CGI Group interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 467 interview experiences
Difficulty level
Duration
based on 5k reviews
Rating in categories
Software Engineer
8.3k
salaries
| ₹5 L/yr - ₹12 L/yr |
Senior Software Engineer
7.6k
salaries
| ₹7.9 L/yr - ₹18.5 L/yr |
Lead Analyst
3.3k
salaries
| ₹10 L/yr - ₹35.7 L/yr |
Associate Software Engineer
1.9k
salaries
| ₹2.5 L/yr - ₹7 L/yr |
Senior Test Engineer
1.3k
salaries
| ₹9.4 L/yr - ₹17.6 L/yr |
Accenture
Wipro
Cognizant
Capgemini