Hexaware Interview Preparation and Recruitment Process


About Hexaware


Hexaware Technologies Limited is a global IT, business process outsourcing (BPO), and consulting services company headquartered in Navi Mumbai, Maharashtra, India. Founded in 1990 by Atul Nishar, it has grown into a significant player in the digital and technology services space, with a focus on artificial intelligence (AI) and digital transformation. Below is a comprehensive overview of the company based on available information:

Hexaware Interview Preparation

Key Information About Hexaware


Founding and History:

* Established in 1990 as Aptech Information Systems Limited, it was incorporated in 1992.

* Renamed Hexaware Technologies in 2002 after operating as Aptech Limited.

* Expanded globally, starting operations in Europe and North America in 1995, and by 2010, it had a presence in 20 countries.

* Voluntarily delisted from the National Stock Exchange in November 2020 and was acquired by The Carlyle Group in October 2021 for approximately $3 billion.


Services and Solutions:

Hexaware provides a wide range of services, including:

* IT Services: Application transformation, software development, and enterprise solutions.

* BPO: Business process outsourcing for back-office digitization.

* Cloud Services: Migration and management of cloud-based solutions.

* Data and AI Services: Leveraging AI/ML, digital twins, and data analytics for insights and operational efficiency.

* Digital and Software Solutions: Customer experience transformation, digital assurance (testing), and infrastructure management.

* Enterprise Platform Services: Partnerships with Oracle, SAP, Salesforce, Microsoft, AWS, and others.

The company focuses on industries such as:

* Banking and Financial Services

* Healthcare and Insurance

* Manufacturing and Consumer

* Travel and Transportation

* Hi-Tech and Professional Services


Global Presence:

* Operates in 28 countries with 54 offices and 39 delivery centers across the Americas, Europe, and Asia-Pacific.

*
Major offshore delivery centers are in India (Chennai, Pune, Bengaluru, Noida, Nagpur) and Sri Lanka, with plans to expand into Tier 2 cities like Ahmedabad.

* Additional delivery centers in Singapore, Russia, Bucharest, and Pune.


Workforce:

* Employs over 32,000 people (referred to as "Hexawarians") globally, with a significant presence in India.

*
The Engineering - Software & QA department has the highest employee count based on reviews.


Financials and Market Performance:

* As of December 31, 2024, Hexaware reported a trailing 12-month revenue of $1.43 billion (approximately ₹11,974 crore).

*
Market capitalization as of April 3, 2025, was $4.85 billion (₹41,805 crore).

*
Stock price as of April 3, 2025, was $7.98 (₹678.7 as of February 28, 2025, on NSE/BSE).

*
Profit after tax (PAT) for CY23 was ₹998 crore, and for the first nine months of CY24, it was ₹853.3 crore.


Recent IPO:

* Hexaware filed for a ₹9,950 crore IPO (full Offer for Sale) in September 2024, which opened on February 12, 2025, and closed on February 14, 2025.

*
The IPO offered 12.37 crore shares, with a lot size of 21 shares and a minimum investment of ₹14,868 for retail investors.

*
The company was previously delisted in 2020 at ₹475 per share and re-listed in 2025 at ₹708 per share, raising concerns about gains primarily benefiting promoters.

*
The listing date was February 19, 2025, and the promoter is CA Magnum Holdings.


Culture and Values:

* Hexaware emphasizes a people-first approach, diversity, equity, and inclusion (DE&I), and sustainability.

* Core values include:

* Put people first

* Create customer value

* Innovate relentlessly

* Be sustainable

* Come on in! (inclusivity)

* The company fosters a collaborative and innovative culture, offering learning and development programs, hackathons, and skill training.



Hexaware Recruitment Process


Hexaware Technologies conducts a structured recruitment process, particularly for freshers (2023, 2024, 2025 batches) and experienced candidates, to hire talent for roles like Graduate Engineer Trainee (GET), Premier Graduate Engineer Trainee (PGET), and Infrastructure Management Support (IMS). The process varies slightly depending on the role, whether it’s on-campus or off-campus, and the job profile. Below is a detailed overview of the Hexaware recruitment process based on recent information, primarily for freshers, with insights into the steps, eligibility, and preparation tips.

Overview of Hexaware Recruitment Process


The recruitment process typically consists of 4–6 rounds, designed to evaluate candidates’ technical skills, aptitude, communication, and cultural fit. Each round is eliminative, and the process is rigorous to ensure candidates align with Hexaware’s focus on innovation, automation, and digital transformation. The process is conducted virtually or in-person, depending on the drive.

Recruitment Process Stages


1. Resume Shortlisting:

Description: Candidates’ resumes are screened based on academic qualifications, skills, and relevance to the job role. For freshers, emphasis is on academic performance and technical skills mentioned in the resume.

Eligibility Criteria:

* Education: B.E./B.Tech (CSE, IT, ECE, EEE, ETC, EIE, ISE), MCA, BCA, or B.Sc (circuit branches).

*
Academic Requirements: Minimum 60% or equivalent CGPA in 10th, 12th, and graduation/post-graduation. No active backlogs.

*
Additional Requirements: Passion for technology, teamwork, flexibility to work in rotational shifts, and strong communication skills.

Tips:

* Tailor your resume to highlight relevant projects, internships, and technical skills (e.g., programming, cloud, AI).

* Ensure no discrepancies in the resume, as technical interviews focus on resume-based questions.


2. Online Assessment (Aptitude + Technical):

* Description: A computer-based test conducted on platforms like CoCubes or Superset, comprising multiple sections to assess cognitive and technical abilities.

* Sub-Sections:

* Aptitude Test: Covers quantitative aptitude (time, speed, distance, algebra, probability), logical reasoning (data interpretation, blood relations, statement reasoning), and verbal ability (synonyms, para jumbles, grammar).

* Technical Domain Test: Questions on programming concepts, data structures, algorithms, DBMS, OS, and domain-specific knowledge (e.g., Java, Python, SQL).

* Coding Round (for PGET roles): 1–2 coding problems (e.g., anagrams, palindromes, dynamic programming) to test problem-solving and coding skills.

* Duration: Approximately 78–100 minutes for 75–78 questions, with no negative marking.

* Essay Writing: Some drives include a 15–20 minute essay writing task (200 words) to evaluate written communication and clarity of thought. Candidates describe an image or topic provided.

* Tips:

* Practice aptitude questions on platforms like PrepInsta, GeeksforGeeks, or FACE Prep.

* Strengthen coding skills on LeetCode or HackerRank for PGET roles.

* Focus on clear, grammatically correct essay writing with a structured format (introduction, body, conclusion).


3. Communication Round:

* Description: Assesses English proficiency, including pronunciation, grammar, fluency, and comprehension. This is often an automated round conducted via tools like Versant or similar platforms.

* Tasks:

* Reading and repeating sentences displayed on the screen.

* Listening to audio and summarizing or repeating the content.

* Answering fundamental HR questions recorded by the candidate (e.g., “Tell me about yourself”).

* Duration: 15–30 minutes.

* Tips:

* Practice clear enunciation and listening skills.

* Use online tools like ELSA Speak or Duolingo to improve fluency.

* Be concise and confident in recorded responses.


4. Technical Interview (1–2 Rounds):

* Description: A 30–45 minute interview (virtual or in-person) focusing on technical knowledge, problem-solving, and resume-based questions. For PGET roles, there may be two technical rounds.

* Topics Covered:

* Programming concepts (OOPs, Java, C#, Python, Spring).

* Data structures and algorithms (arrays, linked lists, sorting, searching).

* Database management (SQL queries, normalization, joins).

* Project and internship details (explain problem statement, solution, and technologies used).

* Real-time coding or scenario-based questions (e.g., “Write a program to count letter occurrences in a string”).

* Difficulty: Rated 2.87/5 by candidates on Glassdoor, with roles like Software Development Engineer being the toughest.

* Tips:

* Be thorough with your resume, especially projects and technical skills listed.

*
Practice common coding problems (e.g., LeetCode’s “Rotate Array,” “Reverse Linked List”).

*
Explain your thought process clearly while solving problems.

*
Brush up on fundamentals like DBMS, OS (threads, deadlocks), and programming paradigms.


5. HR Interview:

* Description: A 15–30 minute round to evaluate personality, cultural fit, and alignment with Hexaware’s values (e.g., “Put People First,” “Innovate Relentlessly”). It’s typically not eliminative unless there’s a significant mismatch.

* Common Questions:

* Tell me about yourself, your strengths, and weaknesses.

* Why do you want to work at Hexaware?

* Career goals and willingness to work in rotational shifts.

* Salary expectations and location preferences.

* Tips:

* Research Hexaware’s services, recent projects (e.g., AI-driven solutions, cloud migration), and values.

* Demonstrate enthusiasm, teamwork, and adaptability.

* Prepare for behavioral questions using the STAR method (Situation, Task, Action, Result).


Optional Rounds (Role-Specific):

* Group Discussion (rare): Conducted in some drives to assess communication and teamwork. Only 5–10% of candidates may advance from this round.

*
Client Interview (for experienced hires): Involves discussions with clients or senior managers, focusing on domain knowledge and soft skills (e.g., Scrum, AWS, SOLID principles).

*
Voice Process Assessment (for customer support roles): Tests language proficiency (e.g., Kannada, Malayalam) and customer handling skills for roles like Customer Service Executive.


Key Details:

* Duration: The entire process takes an average of 13.49 days, with on-campus drives being faster (1–2 weeks).

* Job Roles and Salaries:

* GET: CTC of ₹4 LPA (after training).

* PGET: CTC of ₹15 LPA (for 2025 off-campus SPGET role).

* IMS: Varies based on role and experience.

* Service Agreement: A 2-year bond is required for freshers.

* Application Process:

* Visit Hexaware’s official careers portal ().

* Search for relevant job openings and fill out the application form with accurate details.

* Submit required documents (10th, 12th, and graduation mark sheets).

* Check for confirmation emails with assessment schedules.

* Recent Hiring Initiatives:

* Hexaware announced plans to hire 6,000–8,000 employees globally in 2024, with a focus on India (Hyderabad, Noida, Bengaluru, etc.) and roles in ServiceNow, Azure, AI, and automation.

* Over 170 openings were advertised in 2025 for tech, AI, and business analysis roles across India.

* Walk-in interviews for customer support roles (e.g., Voice Process in Chennai) were held in March–April 2025.


Preparation Tips:

* Technical Skills: Strengthen fundamentals in programming (Java, Python, C#), data structures, algorithms, and databases. Practice on GeeksforGeeks, LeetCode, or PrepInsta.

* Aptitude: Use resources like FACE Prep or Bullseye for aptitude and reasoning practice.

*
Communication: Improve English fluency and confidence for the communication and HR rounds. Practice mock interviews via career guidance platforms.

*
Research: Understand Hexaware’s focus areas (AI, cloud, automation) and recent achievements (e.g., data modernization for a mining giant, healthcare cloud solutions).

*
Mock Tests: Attempt Hexaware-specific mock tests on platforms like Unstop or FreshersNow to simulate the online assessment.

*
Resume: Highlight relevant projects, certifications (e.g., AWS, Azure), and internships. Be prepared to discuss them in detail.

Hexaware Interview Questions :

1 .
State difference between List in python and NumPy array.

Here's a clear comparison between Python's built-in list and NumPy array:


Python List vs NumPy Array
Feature Python List NumPy Array
Data Type Can store elements of different types Stores elements of the same data type
Performance Slower for numerical operations Faster due to optimized C backend
Memory Efficiency Less efficient (stores type info per item) More memory-efficient
Functionality General-purpose container Best for mathematical & matrix operations
Operations Element-wise ops need loops Supports vectorized operations
Libraries Needed Built-in, no import needed Requires import numpy as np
Multidimensional Support Limited (nested lists) Powerful multidimensional support (ndarray)

Example
Python List:
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)  # Output: [1, 2, 3, 4, 5, 6] (concatenation)
NumPy Array:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)  # Output: [5 7 9] (element-wise addition)
2 .
What are stacks and queues?
Stack: A stack is a linear data structure in which elements can only be added and removed from one side of the list, known as the top. A stack operates on the LIFO (Last In First Out) principle, which states that the element placed last is the first one to be removed.

Queue: A queue is a linear data structure in which elements can only be introduced from one side of the list, known as the rear, and deleted from the other side, known as the front. The queue data structure adheres to the FIFO (First In First Out) principle, which states that the element entered first in the list is the first to be withdrawn from the list.
3 .
Write a C Program to Find the LCM of Two Numbers.
#include<stdio.h>
int main()
{
int num1 = 36, num2 = 60, lcm;

// finding the larger number here
int max = (num1 > num2)? num1 : num2;

// LCM will atleast be >= max(num1, num2)
// Largest possibility of LCM will be num1*num2
for(int i = max ; i <= num1*num2 ; i++)
{
if(i % num1 == 0 && i % num2 == 0){
lcm = i;
break;
}
}

printf("The LCM: %d", lcm);

return 0;
}
// Time Complexity : O(N)
// Space Complexity : O(1)
4 .
What is the use of namespace std in C++?

In C++, the line:

using namespace std;

is used to tell the compiler to use the standard namespace (std), which includes all the classes, functions, and objects of the C++ Standard Library.


Why is it needed?

Most standard C++ library features (like cout, cin, string, vector, etc.) are defined inside the std namespace.

Without using namespace std;, you would have to write:

std::cout << "Hello, world!" << std::endl;

With it, you can just write:

cout << "Hello, world!" << endl;

Note of Caution

While using namespace std; is convenient for small programs or beginners, it's discouraged in large projects or header files because:

  • It can cause naming conflicts if other libraries have functions or classes with the same names.

  • It pollutes the global namespace, making code less maintainable.

5 .
State the difference between C and C++.

C

C++

1. It is a structured programming language.

1. It is an object-oriented programming language.

2. There are no objects, classes, constructors, and so on in this language.

2. There are objects, classes,     constructors, and so on in this language.

3. C is a subset of C++

3. C++ is a superset of C.

4. It doesn't support polymorphism, inheritance, and other OOPS properties.

4. It supports polymorphism, inheritance, and other OOPS properties.

5. It doesn’t contain namespaces.

5. It contains namespaces.

6 .
What do you mean by Recursion Function?

A recursion function is a function that calls itself within its own definition. It's a powerful programming technique where a problem is solved by breaking it down into smaller, self-similar subproblems until a simple base case is reached.

Think of it like a set of Russian nesting dolls (Matryoshka dolls). Each doll contains a smaller version of itself until you reach the smallest doll, which doesn't contain any other.

Key Components of a Recursive Function:

  1. Base Case: This is the crucial part of a recursive function. It's the condition under which the function stops calling itself. Without a proper base case, the function would call itself infinitely, leading to a stack overflow error (running out of memory to store the function calls). The base case represents the simplest form of the problem that can be solved directly.

  2. Recursive Step (or Recursive Call): This is where the function calls itself with a smaller or simpler version of the original problem. The goal is to reduce the problem towards the base case with each recursive call.

How it Works (Conceptual Example: Calculating Factorial):

Let's say you want to calculate the factorial of a non-negative integer n (denoted as n!), which is the product of all positive integers less than or equal to n (e.g., 5! = 5 * 4 * 3 * 2 * 1 = 120).

You can define the factorial recursively:

  • Base Case: If n is 0, then n! is 1 (0! = 1).
  • Recursive Step: If n is greater than 0, then n! is n multiplied by the factorial of n-1 (n! = n * (n-1)!).

Here's how a recursive function for factorial might look in Python:

def factorial_recursive(n):
    if n == 0:  # Base case
        return 1
    else:       # Recursive step
        return n * factorial_recursive(n - 1)

# Example usage
result = factorial_recursive(5)
print(f"The factorial of 5 is: {result}")  # Output: The factorial of 5 is: 120


Tracing the Execution for factorial_recursive(5):

  1. factorial_recursive(5) calls 5 * factorial_recursive(4)
  2. factorial_recursive(4) calls 4 * factorial_recursive(3)
  3. factorial_recursive(3) calls 3 * factorial_recursive(2)
  4. factorial_recursive(2) calls 2 * factorial_recursive(1)
  5. factorial_recursive(1) calls 1 * factorial_recursive(0)
  6. factorial_recursive(0) reaches the base case and returns 1.
  7. factorial_recursive(1) receives 1 and returns 1 * 1 = 1.
  8. factorial_recursive(2) receives 1 and returns 2 * 1 = 2.
  9. factorial_recursive(3) receives 2 and returns 3 * 2 = 6.
  10. factorial_recursive(4) receives 6 and returns 4 * 6 = 24.
  11. factorial_recursive(5) receives 24 and returns 5 * 24 = 120.


Advantages of Recursion:

  • Elegance and Readability: For certain problems, a recursive solution can be more concise and easier to understand than an iterative (loop-based) solution.
  • Natural Problem Solving: Some problems have a naturally recursive structure (like traversing trees or calculating factorials), making a recursive approach more intuitive.


Disadvantages of Recursion:

  • Potential for Stack Overflow: If the base case is not defined correctly or the recursion depth becomes too large, it can lead to a stack overflow error due to excessive function calls.
  • Performance Overhead: Recursive calls involve function call overhead (saving and restoring function states), which can sometimes make recursive solutions less efficient than iterative solutions in terms of execution time and memory usage.


When to Use Recursion:

Recursion is often a good choice when:

  • The problem can be naturally broken down into smaller, self-similar subproblems.
  • The recursive solution is easier to understand and implement than an iterative one.
  • The depth of recursion is manageable and unlikely to cause a stack overflow.

 

 

7 .
Can this() and super() method be used with the same constructor?

No, this() and super() method calls cannot be used within the same constructor in Java (and in languages with similar constructor chaining mechanisms).

Here's why:

  • They must be the first statement: Both this() and super() must be the very first statement in a constructor. This is because they are responsible for invoking another constructor (either in the same class using this() or in the superclass using super()) to initialize the object's state.

  • Constructor Chaining: The process of calling one constructor from another is known as constructor chaining. This ensures that the initialization logic of the current class and its superclass(es) is executed correctly in a specific order (superclass constructors are called before subclass constructors).

  • Mutual Exclusivity: Allowing both this() and super() in the same constructor would create ambiguity about which constructor should be invoked first. The language designers enforce the rule that only one of them can be the initial call to maintain a clear and predictable object initialization sequence.

Analogy:

Think of building a house. Before you can start working on the specific features of your house, you need to lay the foundation.

  • super() is like saying, "First, let's build the foundation according to the blueprint of the parent house design."
  • this() is like saying, "First, let's use another blueprint we have for a slightly different foundation design within our own overall house plan."

You can't decide to build two different foundations at the very beginning. You have to choose one to start with.

Example demonstrating the error:

//Java

class Parent {
    Parent() {
        System.out.println("Parent constructor");
    }
}

class Child extends Parent {
    Child() {
        super(); // Calls the Parent's constructor (must be first)
        // this(); // Error: Constructor call must be the first statement in a constructor
        System.out.println("Child constructor");
    }

    Child(int value) {
        // super(); // Can be here as the first statement
        this();  // Calls the no-arg constructor of Child (must be first)
        // super(); // Error: Constructor call must be the first statement in a constructor
        System.out.println("Child constructor with value: " + value);
    }

    public static void main(String[] args) {
        Child c1 = new Child();
        Child c2 = new Child(10);
    }
}

In the Child() (no-argument) constructor, super() is the first statement. If you tried to add this() as well, it would result in a compile-time error.

Similarly, in the Child(int value) constructor, this() is the first statement, calling the Child() constructor. You cannot have super() as the first statement in this constructor as well.

 

 

8 .
Write a program to reverse a number and reverse a string.
Program to Reverse a String:

Let's consider a string "FreeTimeLearn, so after reversing the string, we'll get “nraeLemiTeerF”.

Example:
//Java program to reverse a string
public class Main
{
  public static void main(String[] args) {
      String stringExample  =  "FreeTimeLearn";
      System.out.println("Original string: "+stringExample);
      
      //Declaring a StringBuilder
      //and converting string to StringBuilder
      StringBuilder reverseString = new StringBuilder(stringExample);
      
      //Reversing the StringBuilder
      reverseString.reverse();  
    
      //Converting StringBuilder to String
      String result = reverseString.toString();
      
      // Printing the reversed String
      System.out.println("Reversed string: "+result);
  }
}​

Output:
Original string: FreeTimeLearn
Reversed string: nraeLemiTeerF​

Program to Reverse a Number:

Let's consider the number "123456789, so after reversing the number, we'll get “987654321”.

Example:
//Java program to Reverse a number
public class Main
{
 public static void main(String[] args)
   {
       int n= 123456789, reversed = 0;    
       System.out.println("Original Number: " + n);
   
       //Run the loop until n is equal to 0
       while(n != 0)
       {    
         //get last digit from n
         int digit = n % 10;
         reversed = reversed * 10 + digit;
         
         //remove the last digit from num
         n /= 10;
       }
   System.out.println("Reversed Number: " + reversed);
 }
}​

Output:
Original Number: 123456789
Reversed Number: 987654321​
9 .
Explain WYSIWYG.

WYSIWYG stands for "What You See Is What You Get."


Definition

WYSIWYG refers to a system or interface where the content displayed during editing appears very similar—or exactly the same—as the final output (like a printed document or a published webpage).


Where It's Used
  • Word processors (e.g., Microsoft Word, Google Docs)

  • Web editors (e.g., Wix, WordPress editors, Adobe Dreamweaver)

  • Email editors

  • Presentation software (e.g., PowerPoint)


Example

When you type in Microsoft Word:

  • You apply bold, italic, or change fonts.

  • What you see on screen is almost exactly what gets printed.

* That’s WYSIWYG in action.

10 .
State difference between union and anonymous union.
A union is a user-defined data type where it enables the declaration of different kinds of variables. Still, the allocation of memory happens only to the variable with the largest size.

Anonymous Union is also known as the union with no name. Since they do not have names, we cannot create any object for anonymous unions.
11 .
Can you explain the RR Scheduling algorithm?
Yes, RR stands for Round Robin scheduling algorithm. It is a CPU scheduling algorithm where every process is allowed to execute only for a certain amount of time (also known as Time Quanta TQ). Once the limit exceeds, the process is pushed back into the waiting queue and waits for the next turn. If the process execution is finished within the TQ, then the process is terminated.
12 .
Write a code for the leap year program.

Here's a simple leap year program written in C++, Java, and Python — choose the one you'd like, or use all three as reference:


C++ Code
#include <iostream>
using namespace std;

int main() {
    int year;
    cout << "Enter a year: ";
    cin >> year;

    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
        cout << year << " is a leap year." << endl;
    else
        cout << year << " is not a leap year." << endl;

    return 0;
}

Java Code
import java.util.Scanner;

public class LeapYear {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a year: ");
        int year = sc.nextInt();

        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
            System.out.println(year + " is a leap year.");
        else
            System.out.println(year + " is not a leap year.");
    }
}

Python Code
year = int(input("Enter a year: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year} is a leap year.")
else:
    print(f"{year} is not a leap year.")
13 .
Write a code for doubly liked list.

Sure! Here's a simple implementation of a Doubly Linked List in C++, including operations to:

  • Insert at the end

  • Delete a node

  • Display the list


C++ Code for Doubly Linked List
#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node* prev;
    Node* next;

    Node(int value) {
        data = value;
        prev = nullptr;
        next = nullptr;
    }
};

class DoublyLinkedList {
private:
    Node* head;

public:
    DoublyLinkedList() {
        head = nullptr;
    }

    // Insert at the end
    void insert(int value) {
        Node* newNode = new Node(value);
        if (head == nullptr) {
            head = newNode;
            return;
        }

        Node* temp = head;
        while (temp->next != nullptr)
            temp = temp->next;

        temp->next = newNode;
        newNode->prev = temp;
    }

    // Delete a node with given value
    void remove(int value) {
        Node* temp = head;

        while (temp != nullptr && temp->data != value)
            temp = temp->next;

        if (temp == nullptr) {
            cout << "Value not found!" << endl;
            return;
        }

        if (temp->prev != nullptr)
            temp->prev->next = temp->next;
        else
            head = temp->next;

        if (temp->next != nullptr)
            temp->next->prev = temp->prev;

        delete temp;
    }

    // Display list
    void display() {
        Node* temp = head;
        cout << "Doubly Linked List: ";
        while (temp != nullptr) {
            cout << temp->data << " <-> ";
            temp = temp->next;
        }
        cout << "NULL" << endl;
    }
};

int main() {
    DoublyLinkedList dll;

    dll.insert(10);
    dll.insert(20);
    dll.insert(30);
    dll.display();  // 10 <-> 20 <-> 30 <-> NULL

    dll.remove(20);
    dll.display();  // 10 <-> 30 <-> NULL

    return 0;
}
14 .
What is the Zombie process?

A Zombie Process in operating systems (especially Unix/Linux) is a process that has completed execution but still has an entry in the process table.


What causes a Zombie Process?

When a child process finishes execution, it sends a termination status to its parent. Until the parent process reads (or "reaps") this status using functions like wait() or waitpid(), the child stays in a "zombie" state.


Characteristics of a Zombie Process
Feature Description
Process is dead It has finished running
Still in process table Yes, with a status of Z (zombie)
Consumes resources? Minimal (just a slot in the process table)
PID still exists Yes, until the parent reads its exit status

Why is it a problem?

One or two zombies are harmless. But if many zombie processes accumulate, the process table can fill up, preventing new processes from being created — which can lead to system issues.


How to prevent it?
  • Make sure the parent process calls wait() to clean up child processes.

  • Use a signal handler to catch the SIGCHLD signal (child terminated).

  • If a parent dies before reaping, the init process (PID 1) adopts and reaps the zombie.


Example in Linux Terminal

Run this in a terminal to simulate:

ps aux | grep Z
15 .
Write a function to print the Fibonacci series.
def function_fibo(value):

    a,b = 0,1

    print('The Fibonacci series is :',end= " ")

    for i in range(2, value):

        c = a + b

        a = b

        b = c

        print(c, end=" ")      

value = 15

function_fibo(value)​


Output:

The Fibonacci series is : 1 2 3 5 8 13 21 34 55 89 144 233 377
16 .
Write a code for Power of a number using Java.
public class Main
 {
 	public static void main(String[] args) {
	    
 	double base = 1.5;
     double expo1 = 2.5;
     double expo2 = -2.5;
     double res1, res2;
    
     // calculates the power
     res1 = Math.pow(base, expo1);
     res2 = Math.pow(base, expo2);
 	System.out.println(base + " ^ " + expo1 + " = " + res1 );
 	System.out.println(base + " ^ " + expo2 + " = " + res2 );
 	}
 }
17 .
Write a C++ Program to Print Prime numbers in a given range
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int n){
int count = 0;

// 0, 1 negative numbers are not prime
if(n < 2)
return false;

// checking the number of divisors b/w 1 and the number n-1
for(int i = 2;i < n; i++)
{
if(n % i == 0)
return false;
}

// if reached here then must be true
return true;
}

int main()
{
int lower, upper;

lower=1,upper=100;

for(int i = lower; i <= upper; i++)
if(isPrime(i))
cout << i << " ";

}
// Time Complexity : O(N^2)
// Space Complexity : O(1)
18 .
Write a code for the Amstrong number.

Sure! An Armstrong number (also known as a narcissistic number) is a number that is equal to the sum of its own digits each raised to the power of the number of digits.

For example:

  • 153 is an Armstrong number because:
    1^3 + 5^3 + 3^3 = 153


Armstrong Number Code in C++
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int num, originalNum, remainder, result = 0, n = 0;
    cout << "Enter a number: ";
    cin >> num;

    originalNum = num;

    // Count the number of digits
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // Calculate the sum of nth powers of its digits
    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += pow(remainder, n);
        originalNum /= 10;
    }

    if (result == num)
        cout << num << " is an Armstrong number." << endl;
    else
        cout << num << " is not an Armstrong number." << endl;

    return 0;
}


Frequently Asked Questions


1. Why Hexaware?

It is an Indian organization that expanded over several major cities in India, creating more opportunities for the unemployed.


2. What is the salary for freshers in Hexaware?

The average salary for freshers in Hexaware ranges anywhere between 3.5L to 5.0L.


3. Is the Hexaware interview easy?

The level of difficulty depends upon the preparation and time spent on it. If a person works hard, they can perform well in the interview. Else, the person may find it very difficult.


4. Is there a coding round in Hexaware?

Yes, there will be a coding exam for the software developer position.


5. Which programming language is used in Hexaware?

C, C++, Java, HTML, and so on are some of the programming languages used by Hexaware.


6. How long is the Interview Process at Hexaware?

Generally, it takes 3-4 weeks to finish the interview process at Hexaware.


7. What are the Eligibility Criteria at Hexaware?

The eligibility criteria at Hexaware depends upon the role offered. But the most standard requirement is having achieved 60% in degree courses without any active backlogs.