Practice
Resources
Contests
Online IDE
New
Free Mock
Scaler Events New
Practice
Improve your coding skills with our resources
Contests
Compete in popular contests with top coders
Scaler
Explore Offerings by SCALER
Events
Checkout Scaler Academy Events
New

Before you go!

Take this "Nutanix Interview Questions" interview guide with you

Nutanix Interview Questions

About Nutanix

Working at Nutanix is a good balance of difficult and rewarding. Enjoy a healthy mix of self-directed study and discovery, as well as help and mentoring when you need it. Nutanix is a terrific location to advance your career no matter where you are.

New business models are disrupting entire industries faster than ever before as the pace of innovation increases. In today's digital economy, chances to climb ahead, or even just survive, are fleeting. With an open, software-defined hybrid multi-cloud architecture, Nutanix helps you simplify cloud complexity so you can focus on business outcomes and new innovations.

What is Nutanix? Nutanix was created on a daring mission: to make IT infrastructure management so simple that it is no longer visible. It all started with a single invisible stack that combined computation, storage, networking, and virtualization. Dheeraj Pandey, Mohit Aron, and Ajeet Singh started Nutanix on September 23, 2009. It is headquartered in California, United States. Nutanix is a pioneer in hyper-converged infrastructure solutions and a global leader in cloud software, making clouds invisible and allowing customers to focus on their business goals. Nutanix software is used by organisations all over the world to manage any app at any location, at any scale, in their hybrid multi-cloud setups using a single platform.

Nutanix aspires to provide a welcoming and inclusive workplace where all of the Nutants can be themselves and perform excellent work in a safe and friendly atmosphere. This could be the role for you if you're a software professional looking for a fast-paced environment where you can solve deep technical problems and build innovative solutions while working with extremely smart, passionate software developers. You'll work on large-scale problems and have complete autonomy in your delivery.

Nutanix is searching for applicants who are enthusiastic, innovative and have a good technical understanding. Big thinkers, who aren't scared to take on seemingly difficult issues and want to learn how to develop a team along the way, are welcome at Nutanix.

Events | Powered By

Nutanix Recruitment Process

Interview Process

Nutanix selects candidates for various roles through a series of 4-5 rounds. 1-2 rounds of written tests and 2-3 interview rounds are part of the college recruitment process. Before the onsite screening, a few telephonic interviews with direct applicants may be undertaken. The following interview rounds are a part of Nutanix's hiring process:

  • Coding round
  • Debugging round
  • Technical interview
  • HR interview

Interview Rounds

Round 1-Coding Round: The first round was a hacker rank-hosted online coding competition. In about an hour or two, you have to answer two to three questions.

Round 2-Debugging Round: There are logical problems in the questions that are to be fixed. Each question includes a description of what it is intended to accomplish. You must read the description and correct any logical flaws based on what you have learned. Some of the sample problem statements are given below:

  • The code is related to the Reader-Writer problem, which is a common Operating System issue. You must locate logical flaws in the provided code.
  • The code is written in Java and implements synchronisation when reading from many files and writing to a single file utilising multiple threads. Logical errors were to be pointed out.
  • A code is provided that includes functions for inserting a node at the start of a circular linked list and splitting a circular linked list into two circular linked lists of half the length. Point out the logical errors in the code.
  • On the OS principles of semaphore and mutex lock, you are given two c++ object-oriented routines. This is not OOP debugging, but debugging based on OS synchronisation logical flaws. You are requested to point out the mistakes and make suggestions for improvements. You have to consider Mutex locks and exception handling in the first challenge. In the second problem, a minor change is made to Semaphore's Producer-Consumer problem.
  • You are given an incorrect segment Tree code. You are required to identify the error and develop the right code.

Round 3-Technical Interview: A panel of senior members oversees the technical round. This phase also includes a face-to-face interview. This round may include all technical questions or a mix of technical and managerial topics. The majority of the questions are tailored to the particular profile for which you are being interviewed. Any new technologies or software required for that position should be familiar to you. The accomplishments shown on your CV may be questioned, and you may be required to defend them. You may be questioned about your previous job experiences, goals,  projects and motives for joining Nutanix, among other things. In this round, the panel will evaluate your fit with the company's culture, attitude, soft skills, intended career advancement, and other aspects.

Round 4-HR Interview: An HR interview is conducted to assess your personality, strengths, limitations, and ability to handle the role, as well as to check your background and determine if you're the proper fit for this position. Candidates in HR interviews are also likely to be asked questions about the company’s vision, culture, organisational structure, year of formation and others.

Don't strive to be someone you're not. This is the first and most important thing that must be addressed. Be yourself in front of the HR manager, and don't bluff. If you're talking about anything, be honest about it, and try to avoid delivering useless answers. Make an effort to interact with the HR manager and don't come across as boring. Always keep a positive attitude.

If you're preparing  for an HR interview, you can expect to be asked some of the following questions:

  • Kindly introduce yourself. (If you're a fresher, start with your academics, projects, achievements, strengths and other curriculum activities. Also, include information about your interests, background, and so on. Start with your current position, achievements, past work history, and academic and personal details if you're an experienced professional.)
  • What is your preferred location?
  • Tell me about your hobbies and interests.
  • Why did you resign from your former position? (This is a popular question among experienced professionals looking for a change. The simplest way to respond to this question is to say that you are leaving your current job to explore new domains. Make sure you don't criticise or speak negatively about your current employer.)
  • What keeps you motivated at work?
  • What are your strengths and weaknesses?
  • At Nutanix, where do you see yourself professionally in five years?

Nutanix Technical Interview Questions: Freshers and Experienced

1. What is the difference between a MAC address and an IP address?

Some of the key differences between a MAC address and an IP address are:

  • A MAC address is a one-of-a-kind hardware identification number assigned to a NIC (Network Interface Controller/Card), whereas an IP address is a number that helps you identify a network connection.
  • The manufacturer of the hardware interface assigns the MAC address, but the network administrator or Internet Service Provider assigns the IP address (ISP).
  • The Mac address identifies the device, while the IP address indicates how it connects to the network.
  • IP addresses, on the other hand, can be used for broadcasting or multicasting, whereas MAC addresses can be only used for broadcasting.
  • The Data-Link layer of the OSI or TCP/IP reference model implements the MAC address. On the TCP/IP or OSI model, the IP address is implemented in the Network layer.

2. Define OSI Model and its seven layers.

The Open Systems Interconnection Model (OSI Model) is a theoretical framework for describing the functions of a networking system. In order to facilitate interoperability between diverse devices and applications, the OSI model describes computing functions into a universal set of rules and standards. The connections between computing systems are divided into seven abstraction levels in the OSI reference model: Physical, Data Link, Network, Transport, Session, Presentation, and Application.

The International Organisation for Standardisation (ISO) developed the OSI model in 1984, and it is now used as an architectural paradigm for inter-computer communications. It is a reference model that specifies how information from one computer's software application passes through physical media to another computer's software application.

The seven layers of the OSI Model are

  • Physical layer( Layer 1): The physical layer is the lowest layer in the OSI reference model. It is in charge of establishing a physical connection between the devices. Bits of information are stored in the physical layer. It is in charge of sending individual bits from one node to another. When this layer receives data, it converts the signal received into 0s and 1s and sends them to the Data Link layer, which reassembles the frame.
  • Datalink layer( Layer 2 ): Data packets are encoded and decoded into bits at OSI Model Layer 2, or the data connection layer. It provides knowledge and management of transmission protocols, as well as handling failures in the physical layer, flow control, and frame synchronisation.
    The media access control (MAC) layer and the logical link control (LLC) layer are two sublayers of the data link layer. The MAC sublayer governs how a networked computer receives access to data and permission to transfer it. Frame synchronisation, flow management, and error checking are all handled by the LLC layer.
  • Network Layer( Layer 3 ): The network layer is responsible for data transmission between hosts that are connected to various networks. It also handles packet routing, which is the choosing of the shortest path to send a packet from a large number of options. The network layer places the IP addresses of the sender and receiver in the header.
  • Transport layer( Layer 4 ): The transport layer, or OSI Model Layer 4, is responsible for end-to-end error detection and recovery, as well as flow control, and offers transparent data transfer between end systems, or hosts. It assures complete data transfer, which is achieved by the TCP or transport layer protocol, which handles data as a stream of bytes.
  • Session layer ( Layer 5 ): The session layer is in charge of coordinating conversations between computers. At layer 5, a session or connection between machines is established, managed, and terminated. Authentication and reconnections are also part of the session layer services.
  • Presentation layer( Layer 6 ): Based on the syntax or semantics that the application accepts, the presentation layer formats or converts data for the application layer. As a result, it's sometimes referred to as the syntactic layer. This layer can also handle the application layer's encryption and decryption needs.
  • Application layer ( Layer 7 ): Both the end-user and the application layer interact with the software application directly at this tier. End-user programmes, such as a web browser or Office 365, receive network services through this layer. The application layer locates communication partners, determines resource availability, and coordinates communication. This layer supports file transfer, email, and other network software services as application services. Telnet and FTP are examples of applications that only exist at the application level. This layer includes tiered application architectures.

3. Define encapsulation in context to OOPS.

The concept of encapsulation (or OOP Encapsulation) in object-oriented computer programming (OOP) languages refers to the bundling of data and the functions that operate on that data into a single unit. Encapsulation is commonly used in the form of classes in several programming languages. A class is a type of program-code template that allows programmers to design objects with both variables (data) and behaviours (functions or methods). In computer science, a class is an example of encapsulation since it consists of data and procedures that have been bundled into a single unit.

Encapsulation can also refer to a mechanism that prevents users from directly accessing specific components of an object, such as state values for all of the object's variables. Data members as well as data functions or methods linked with an instantiated class or object can be hidden via encapsulation.

There are a few fundamental advantages of encapsulation in programming. These are some of them:

  • Data hiding: Users will have no notion how classes are built or stored because data will be hidden. Users will only be aware of the fact that values are being given and initialised.
  • Easy to Adjust and Adapt to New Requirements: Encapsulation makes it simple to change and adapt to new requirements.
  • More flexibility: You can choose whether to make variables red or write-only. SetName(), setAge(), and setWriteOnly() are some examples. To make variables write-only, simply omit the get methods like getName(), getAge(), and so on.

4. What do you understand by the term “virtualization”? What are its benefits?

The procedure of running a virtual instance of a computer system in a layer separate from the actual hardware is known as virtualization. It usually refers to running multiple operating systems on the same computer at the same time. It may appear to applications running on top of the virtualized machine that they are on their own dedicated computer, with their own operating system, libraries, and other programmes that are unrelated to the host operating system that sits underneath it. Hypervisor software separates physical resources from virtual environments or the entities that use those resources. Hypervisors can run on top of an operating system (like on a laptop) or be installed directly on the hardware (as on a server), as most businesses do. Hypervisors divide up your physical resources so that virtual environments can access them.

From the real environment to the multiple virtual environments, resources are partitioned as needed. Within the virtual environment, users interact with it and execute computations (typically called a guest machine or virtual machine). The virtual machine is a single data file that runs. And, like any other digital file, it can be transferred from one computer to another, opened in either, and expected to function correctly. When a user or program issues an instruction that requires additional resources from the physical environment while the virtual environment is running, the hypervisor relays the request to the physical system and caches the changes—all at near-native speed (especially if the request is sent through an open-source hypervisor based on KVM).

Benefits of virtualization:

  • Resource allocation is more flexible and efficient.
  • Increase the efficiency of development.
  • It lowers IT infrastructure costs.
  • Remote access and fast scalability.
  • Disaster recovery and high availability.
  • Allows for the use of multiple operating systems.
  • Management of data centres.
  • Reduces downtime to a minimum.
  • Provisioning procedure is sped up.
  • Improved responsiveness and resource availability.

5. What are the different types of virtualization?

The different types of virtualization are:

  • Data virtualization: Data from various sources can be combined into a single source. Data virtualization enables businesses to approach data as a dynamic resource, allowing them to combine data from many sources, readily adapt new data sources, and change data to meet user requirements. Data virtualization tools sit in front of numerous data sources and allow them to be regarded as a single source, giving the right data to the right application or user at the right time.
  • Server virtualization: Servers are computers that are designed to efficiently handle a large number of specified tasks so that other computers, such as laptops and desktops, can perform a range of other functions. Virtualizing a server allows it to perform more of those specific activities while also allowing the components to be used for different purposes.
  • Application virtualization: Application virtualization allows a user to access a server-based application from a remote location. The server keeps all of the application's personal data and other characteristics, yet it can still be run on a local workstation over the internet. A user who has to run two separate versions of the same software is an example of this. Hosted apps and packaged applications are examples of technologies that leverage application virtualization.
  • Desktop virtualization: Desktop virtualization, which is easily confused with operating system virtualization, which allows you to install multiple operating systems on a single machine, allows a central administrator (or automated administration tool) to deploy simulated desktop environments to hundreds of physical machines at the same time. Unlike traditional desktop environments, which need each computer to be physically installed, configured, and updated, desktop virtualization enables administrators to do mass configurations, updates, and security checks across all virtual desktops.
  • Network virtualization: The capacity to manage several virtual networks, each with its own data and management plan. It coexists on top of a single physical network. It can be handled by individuals who may or may not be aware of each other's identities. Within days or even weeks, network virtualization allows you to construct and provision virtual networks, including logical switches, routers, firewalls, load balancers, VPNs, and workload security. Virtualizing networks minimises the number of physical components needed to build several, independent networks, such as switches, routers, servers, cables, and hubs, and it's very popular in the telecommunications business.
  • Storage virtualization: Storage virtualization abstracts resources such that several physical storage arrays appear to be a single storage pool with direct and independent access. Storage virtualization software gathers and maintains storage across several storage arrays, then serves it to applications as needed. The use of centralised virtual storage improves resource flexibility and availability. From a central console, this data virtualization and centralization may be simply managed. Users can manage and access numerous arrays as if they were a single storage unit.

6. List some of the most commonly used LINUX commands.

Linux is one of the most commonly used operating systems, with a variety of applications and advances. Knowing the appropriate command to use when working on Linux saves a lot of time and effort. The most common LINUX networking commands are as follows:

  • Ifconfig (Interface configurator)
    • This command displays the route as well as the network interface. It can also be used to set up an interface, assign an IP address to it, and enable or disable it.
    • Syntax: ifconfig
  • traceroute
    • This command is used to troubleshoot a network. It determines the path to the specified goal after detecting the delay. It labels and identifies all of the devices on the path. It takes the path that leads to the destination. It determines the source of network lag and reports it.
    • Syntax : traceroute <destination>
  • tracepath.
    • It's a tool for detecting network delays. It follows the path to the selected destination, identifying each step along the way. It recognises the location where your network is weak if it is weak.
    • Syntax: tracepath <destination>
  • Ping (Packet INternet Groper)
    • One of the most commonly used network troubleshooting commands on Linux is ping. It determines whether two nodes are connected via the network. To test network connectivity, the ping programme makes an ICMP echo request. It continues to run until it is interrupted. The ctrl+c key can be used to stop the execution.
      • Syntax : ping <destination>
    • We can also ping directly using the IP address. The "-c" option in the ping command can be used to limit the number of packets sent.
      • Syntax : ping -c <number> <destination>
  • netstat
    • The netstat command in Linux displays network statistics. It displays statistics on many interfaces, such as open sockets, routing tables, and connection information.
      • Syntax: netstat
    • The netstat command is used in a few different ways, as seen below.
      • To view  the programs:
        • Syntax: netstat -p
      • To find out more about the ports:
        • Syntax: netstat -s
        • This provides thorough information on all of the ports.
      • To receive the routing table's details:
        • Syntax: netstat -r
        • This section contains information about the routing table.
  • ss
    • The ss command in Linux is a substitute for the netstat tool. It's thought to be a lot faster and more informative than netstat. Because ss gets all information from within the kernel userspace, it can respond faster.
    • Syntax: ss
      All TCP, UDP, and UNIX socket connections are listed using this command.
  • hostname:
    • The simple command Linux hostname is used to view and change a system's hostname.
    • Syntax: hostname
  • curl
    • curl is a command-line program that allows you to transport data to or from a server using any of the protocols that are supported (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP, or FILE).
    • Syntax: curl [options] [URL…]
  • nslookup
    • The nslookup command in Linux is also used for DNS inquiries. It can be used to receive domain names, IP addresses, and other DNS records.
    • Syntax:  nslookup <domainName>
  • ip
    • This is the most recent version of the ifconfig command.
    • Syntax:
      ip a 
      ip addr
    • Like ifconfig, this tool displays the details of all networks. This command can also be used to retrieve information about a particular interface.
  • dig
    • Domain Information Groper is the Linux dig command. This command is used to query the DNS name server during a DNS lookup. It's also used to troubleshoot DNS-related problems. Its primary purpose is to verify DNS mappings, MX Records, host addresses, and all other DNS records in order to have a better understanding of the DNS topography. This is a modified version of the nslookup command.
    • Syntax: dig <domainName>
  • route
    • The Linux route command displays and manipulates your system's routing table. A router's job is to figure out the most efficient way to transport packets to their destination.
    • Syntax: route
  • whois
    • The whois command in Linux is used to get all of the information about a website. You can find out everything you need to know about a website, including its registration and who owns it.
    • Syntax: whois <websiteName>

7. Explain the reference counting mechanism in context to Garbage Collection.

From the beginning, the reference counting mechanism has been a very old Garbage Collection technique. Each object in the reference counting approach has a track of the number of pointers to it from various objects and the stack. When a new item refers to it, the counter is increased by one. When an object's reference is lost, the counter is decremented by one. When the count hits '0,' the garbage collector can de-allocate the object.

When allocating to a new object, the main advantage of the reference counting approach has been the low amount of work per memory write. However, it has serious difficulty with data cycles. When the first object is referred to by the second object, and the second object is referred to by the first (cyclic references), the count never reaches 0, and the objects are never garbage collected.

8. Discuss OutOfMemoryError Exception in Java.

OutOfMemoryError exception is usually thrown whenever the Java Virtual Machine runs out of memory and cannot allocate an object. The trash collector was unable to release any more memory. OutOfMemoryError frequently indicates that you're doing something incorrectly, such as holding on to objects for too long or processing too much data at once. It can also suggest an out-of-control issue, as in a third-party library that caches strings or perhaps an application server that doesn't clear up after deployments. And it doesn't always have anything to do with the items on the heap. When a native allocation cannot be satisfied, the java.lang.OutOfMemoryError exception can be thrown by native library code (for example, if swap space is low). Let's look at some of the scenarios in which the OutOfMemory issue can occur.

  • Java heap space: This problem is caused by applications that utilise too many finalizers. If a class does have a finish method, trash collection does not reclaim space for objects of that kind. Instead, the objects get queued for finalisation, which happens later after garbage collection.
  • GC Overhead limit surpassed: This error means that the garbage collector is constantly operating and that the Java application is progressing very slowly. A java.lang.OutOfMemoryError is thrown after a garbage collection if the Java process spends more than approximately 98 per cent of its time doing garbage collection and recovers less than 2% of the heap and has done so far the last 5 (compile-time constant) subsequent garbage collections.
  • Metaspace: Metadata for Java classes is stored in native memory. Assume that the metaspace for class metadata has been depleted, as in java.lang. The exception OutOfMemoryError with a detail MetaSpace is thrown. A java.lang.OutOfMemory Exception is thrown when the amount of native memory required for class metadata surpasses MaxMetaSpaceSize. The exception OutOfMemoryError with a detail MetaSpace is thrown.
  • Requested array size exceeds VM limit: This phrase implies that the application tried to allocate an array that was larger than the heap capacity.
  • Permgen space is thrown: The PermGen space error means that the memory space allocated to the Permanent Generation has been used up.
  • Out of swap space: This apparent exception happens when a native heap allocation fails and the native heap is nearing exhaustion. Operating-system-level faults are frequently the cause of the java.lang.OutOfMemoryError: Out of Swap Space error.
  • reason stack_trace_with_native_method: When this error message (reason stack trace with the native method) is thrown, a stack trace with a native method as the top frame is printed. This indicates that a native method has experienced an allocation failure.

9. What is the difference between a public cloud and an enterprise cloud?

An enterprise cloud is a unified IT operating environment that combines private, public, and distributed clouds, allowing administrators to manage infrastructure and applications in any cloud from a single location. For both cloud operators and consumers of cloud-delivered services and apps, the enterprise cloud provides a consistent, high-performance, and seamless experience. The enterprise cloud is a concept for IT infrastructure and a platform service that combines the benefits of public cloud services with the value of private data centre settings for enterprise applications.

10. Is the enterprise cloud software-based or hardware-based?

It's all about the software in this case! Multi-Cloud operations are made possible by the software. Regardless of the hardware you choose, whether it is Nutanix, HP, Dell, Cisco, Lenovo, or IBM, Enterprise Cloud software converges private, public, and distributed clouds, giving more simplicity to infrastructure and application management.

11. What types of applications are available in the enterprise cloud?

From legacy software to new cloud-native apps provided on mobile devices, Enterprise Cloud is well-suited to run the applications that businesses have grown to rely on. The following are some of the most prevalent applications that run in the Enterprise Cloud:

  • Oracle databases and E-Business Suite, SAP Business Suite, Microsoft SQL Server, Microsoft Dynamics, IBM DB2, and many other business-critical applications
  • Microsoft Exchange and SharePoint, as well as unified communication solutions like Cisco UC, Avaya Aura, and Microsoft Skype for Business, are examples of messaging and collaboration apps.
  • Multi-hypervisor compatibility for VMware ESXi, Microsoft Hyper-V, and Nutanix AHV virtualization for server virtualization and private clouds
  • Splunk, Hadoop, MongoDB, elastic, and other big data and cloud-native apps
  • Application virtualization and virtual desktop infrastructure (VDI)
  • Deployments of Remote Office and Branch Office (ROBO)
  • Puppet, Docker, and Chef are examples of development/testing apps.

12. What do you know about hyperconverged infrastructure? Why should the company consider it for its own infrastructure?

By integrating x86-based server resources with intelligent software in a unified software-defined solution, hyperconverged infrastructure simplifies the deployment, management, and scaling of data centre resources. To develop an agile data centre that scales with your business, separate servers, storage networks, and storage arrays can all be replaced with only a single hyperconverged system. It dismantles 3-tier infrastructure's outdated storage silos, reducing complexity and enabling better performance and resilience.

HCI is made up of only two main components: two planes.

  • The distributed plane distributes storage, virtualization, and networking capabilities to guest programs, whether they're VMs or container-based workloads, across a cluster of nodes.
  • The management plane allows you to manage HCI resources from a single location with a single perspective. It removes the need for separate server, storage network, storage, and virtualization management systems.]

The company should consider it for the following reasons:

  • Costs: Although HCI is a significant investment, it pales in comparison to the expenditures of maintaining and updating typical SAN infrastructures. With the installation of hyperconverged infrastructure, multiple suppliers and software licensing, paying for specialists, growing power and cooling costs, and the cost of providing storage can all be considerably reduced.
  • Complexity: When it comes to datacenters and datacenter management, the list of silos, racks, servers, cables, distinct management interfaces, multiple suppliers, shelfware...the list is endless. HCI is a technique to "clean up" your datacenter by integrating critical pieces, lowering footprint, and administering your complete infrastructure from a single interface.
  • Cloudability: IT environments are becoming more multi-cloud, although the legacy infrastructure isn't designed to help businesses succeed in this context.
  • Putting an end to the famed 80/20 rule: Is it true that you spend 80% of your money on keeping the lights on and only 20% on innovation? That alters with HCI, which offers automation, self-service, growing on a pay-as-you-grow basis, and more time to concentrate on high-value business tasks.

13. The company is in need of storage. How can HCI assist the company in this situation?

Data is rising at a rate of 50% or more each year, and it is being stored on the block, file, or object storage systems. New visibility and control requirements are putting more pressure on storage managers. And cloud storage has grown in importance to the point where it must be incorporated in whatsoever storage architecture. Legacy storage infrastructure, on the other hand, is unable to meet the demands imposed by these new realities. It's compartmentalised, which adds to the complexity, inhibits flexibility, and lowers usage. Legacy infrastructure does not provide enough data visibility to fulfil the new compliance or control requirements. It was created before the cloud, making the deployment of cloud-like capabilities extremely challenging.

HCI dismantles silos and consolidates all assets into a single, easy-to-manage resource. The more "invisible" infrastructure there is, the greater, and HCI expands that invisibility to storage. With HCI, you may create a cluster with a range of nodes depending on your needs at the time—storage-heavy nodes whenever you need storage, CPU-heavy nodes whenever you need computation, and so on.

14. What is the advantage of a ternary search tree over trie?

In contrast to the trie(standard) data structure, which has 26 pointers for its offspring, every node in a ternary search tree only has three:

  • The left pointer is pointing to the node whose value is lower than the current node's value.
  • The equal pointer leads to a node whose value is the same as the current node's value.
  • The right pointer leads to the node whose value exceeds the current node's value.

Aside from the three-pointers mentioned above, every node has a field for indicating data (character in the case of a dictionary) and a field for indicating the end of a string.

One advantage of employing ternary search trees over attempts is that ternary search trees take up less space (only three-pointers each node in comparison to 26 in standard tries). In addition, ternary search trees can be utilised in any situation where a hashtable is used to hold strings. Tries are appropriate whenever there is a balanced mix of words throughout the alphabets, allowing for the most efficient use of space. Aside from that, ternary search trees are preferable. Whenever the strings to be maintained all have the same prefix, ternary search trees are the most economical (in terms of space).

15. Multiply two numbers using bitwise operators.

The Russian peasant algorithm is an intriguing method. The goal is to keep doubling the first number while halving the second until the second number never becomes 1. Then add the first number to the result anytime the second number becomes odd during the operation (result is initialised as 0).

// C++
unsigned int multiply(unsigned int x, unsigned int y)
{
   int ans = 0; // initialise the ans variable

   // While the second number is not equal to 1
   while (y > 0)
   {
       // If second number is odd, we  will add the first number to ans
       if (y & 1)
           ans = ans + x;

       // then multiply the first number by 2 and divide the second number by 2
       x = x << 1;
       y = y >> 1;
   }
   return ans;
}
  • Time Complexity: O(log2y)
  • Auxiliary Space: O(1)

If y is even, the value of x*y is (x*2)*(y/2); otherwise, the value is ((x*2)*(y/2) + x. We keep multiplying 'x' by 2 and dividing 'y' by 2 in the while loop. We add 'x' to 'ans' if 'y' is odd in the loop. The answer is obtained when the value of 'y' equals 1, and the value of 'ans' + 'x' equals 1. When 'y' is a power of two, the 'ans' remains 0 and the multiplication is done by 'x'.

16. How can you delete a value from a linked list if you have a pointer to it? It's important to note that no other node, not even the head, is provided with a pointer.

The approach is to copy the data from the next node to the node that will be erased, then delete the node that will be deleted.

void delNode(ListNode* ptr)
{
   // If the node to be deleted is the
   // last node of linked list
   if (!ptr->next)
   {
       free(ptr);
       // this will simply make the node_ptr NULL.
       return;
   }
    
   // if node to be deleted is the first or
   // any node in between the linked list.
   ListNode* temp = ptr->next;
   ptr->val = temp->val;
   ptr->next = temp->next;
   free(temp);
}

It's vital to keep in mind that this method will only operate if the given reference does not point to the last node. Because you don't have the following node to copy the info from if it's the last node. We can make the final node a dummy node to make this solution work. However, the programs/functions that use this function should be changed as well.

17. Given an n-element array with elements ranging from 0 to n-1, any of these integers can occur whatever number of times. Using just constant memory space, find those repeating numbers in O(n).

The array's numbers vary from zero to n-1, and also the input array is n bytes long. As a result, the input array could be transformed into a HashMap. If an element 'a' is discovered while navigating the array, raise the value of a%nth element by n. By dividing the a%nth element by n, you can get the frequency.

// C++
void findDupEle (int num[], int n)
{
    for (int i = 0; i < n; i++) {
       num[num[i] % n] = num[num[i] % n] + n;
    }
    cout << "The duplicate elements are : " << endl;
    for (int i = 0; i < n; i++) {
       if (num[i] >= n * 2) {
           cout << i << " " << endl;
       }
    }
    return;
}
  • Time Complexity: O(n) as only two traversals are required.
  • Space Complexity: O(1) because no more space is required. Thus, the space complexity remains constant.

18. Find the order of characters in an alien language using a sorted dictionary (array of words).

Input:  words[] = {"baa", "abcd", "abca", "cab", "cad"}

Output: Order of characters is 'b', 'd', 'a', 'c'

Because "baa" comes before "abcd" in the specified language, 'b' appears before 'a' in the result. Other orders can be found in the same way.

The goal is to make a character graph and then figure out how to order it topologically. The detailed steps are listed below.

  • Make a graph g with the number of vertices equal to the size of the alien language's alphabet. For example, if the alphabet has a size of 5, words can have up to 5 characters. There have been no edges in the graph at first.
  • Carry out the steps below for each pair of adjacent strings in the sorted array.
    • Let word1 and word2 be the current pair of words. Compare the characters of both words one by one to locate the first mismatching character.
    • Make an edge in g by mismatching a character in word1 with a character in word2.
  • Print topological ordering of the graph you just made.
// C++

#include<bits/stdc++.h>
using namespace std;
 
// Class for graph representation
class Graph
{
    int v;   
    list<int> *adj;
 
    // A function that is used by topologicalSort
    void topologicalSortUtil(int v, bool visited[], stack<int> &Stack);
public:
    Graph(int v);   // Constructor
 
    // function to add an edge to the graph
    void addEdge(int v, int w);
 
    // displays a Topological Sort of the entire graph
    void topologicalSort();
};
 
Graph::Graph(int v)
{
    this->v = v;
    adj = new list<int>[v];
}
 
void Graph::addEdge(int v, int w)
{
    adj[v].push_back(w); // Adding w to the list of v.
}
 
void Graph::topologicalSortUtil(int v, bool isVisited[], stack<int> &S)
{
    // Mark the current node to be visited.
    isVisited[v] = true;
 
    // Repeat for all vertices that are adjacent to this vertex.
    list<int>::iterator i;
    for (i = adj[v].begin(); i != adj[v].end(); ++i) {
        if (visited[*i] == false)
            topologicalSortUtil(*i, isVisited, S);
    }
 
    // Push the current vertex to the stack which stores the result
    S.push(v);
}
 

void Graph::topologicalSort()
{
    stack<int> S;
 
    // Mark all the vertices as not visited
    bool *isVisited = new bool[v];
    for (int i = 0; i < v; i++)
        isVisited[i] = false;
 
    //     for (int i = 0; i < v; i++)
        if (isVisited[i] == false)
            topologicalSortUtil(i, isVisited, S);
 
    // Print contents of stack
    while (!S.empty())
    {
        cout << (char) ('a' + S.top()) << " ";
        S.pop();
    }
}
 
int min(int a, int b)
{
    return (a < b)? a : b;
}
 
// This function finds and displays the order of characters from a sorted
// array of words. N is the size of words[]. ‘a’ is set of all possible
// alphabets.
void print(string words[], int N, int a)
{
    // Make a graph with 'a' edges
    Graph g(a);
 
    // Process all the adjacent pairs of words and make a graph
    for (int i = 0; i < N-1; i++)
    {
        // Take the two current words and wait for the first mismatching
        // character
        string s1 = words[i], s2 = words[i+1];
        for (int k = 0; k < min(word1.length(), word2.length()); k++)
        {
            // If we encounter a mismatching character, we add an edge
            // from the character of s1 to that of s2
            if (s1[k] != s2[k])
            {
                g.addEdge(s1[k]-'a', s2[k]-'a');
                break;
            }
        }
    }

    // Print the topological sort of the above graph
    g.topologicalSort();
}

// print function to be called in the main function

19. Implement the Sieve of Eratosthenes in 0(n) time complexity.

For any i where i ranges from 2 to N-1, examine the number to see if it is prime. If somehow the number is prime, it should be placed in the prime array. For each prime number j less than or equal to the lowest prime factor p of i, the following formula is used:

  • Make all i*p numbers non-prime.
  • Assign j to the lowest prime factor of i*p.
const long long MAX_CAP = 1000001;
 
// is_prime[] : is_prime[i] is true if the number i is prime
// prime[] : stores all the prime number less than N
// SPF[] : stores the smallest prime factor of a number
// [for Exp : smallest prime factor of '4' and '20'
// is '2' so we put SPF[4] = 2 , SPF[20] = 2 ]
vector<long long >is_prime (MAX_CAP , true);
vector<long long >prime;
vector<long long >smallest_prime_factor (MAX_CAP);
 
// function that generates all prime numbers less than N in O(n) time
void Seive(int N)
{
    // 0 and 1 are not prime
    is_prime[0] = is_prime[1] = false ;
 
    // Fill the other entries
    for (long long int i = 2; i < N ; i++)
    {
        // If is_prime[i] == true, then i is a
        // prime number
        if (is_prime[i] == true)
        {
            // push i into the prime vector
            prime.push_back(i);
 
            // A prime number  itself is its own smallest
            // prime factor
            smallest_prime_factor[i] = i;
        }
 
        // Remove all multiples of i*prime[k] which are
        // not prime by making is_prime[i*prime[j]] = false
        // and set the smallest prime factor of i*prime[j] to prime[j]
        // this loop will run only once for the number which is not prime
        for (long long int k = 0;
             k < (int)prime.size() &&
             i*prime[k] < N && prime[k] <= smallest_prime_factor[i]; k++)
        {
            is_prime[i*prime[k]] = false;
 
            // put the smallest prime factor of i*prime[j]
            smallest_prime_factor[i*prime[k]] = prime[k];
        }
    }
}

20. The Golomb sequence is a non-decreasing integer sequence in which the n-th term equals the number of times the letter n appears in the sequence. The first few numbers are 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5,......

Definitions of a few terms:
The third term is 2, and it's worth noting that three appears twice.
The second term is 2, and it's worth noting that two appears twice.
The fourth term is 3, and it's worth noting that the number three appears three times.

If n is a positive integer, solve for it. The goal is to discover the first n Golomb sequence terms.

To determine the nth term of a Golomb sequence, use the following recurrence relation:

  • a(1) = 1
  • a(n + 1) = 1 + a(n + 1 – a(a(n)))

The following is the Dynamic Programming implementation:

void findGolomb(int N)
{
    int dp[N + 1];
 
    // base case
    dp[1] = 1;
 
    // Calculating and displaying the first
    // N terms of Golomb Sequence.
    for (int i = 1; i <= N; i++)
    {
        dp[i] = 1 + dp[i - dp[dp[i - 1]]];
        cout << dp[i] << " ";
    }
}

Useful Interview Resources

Nutanix Interview Preparation

Interview Preparation Tips

Finding a suitable job takes a lot of effort and concentration. A little preparation ahead of time will greatly increase your chances of getting to the interview stage. But, to be honest, it's definitely worth the effort!

  • The interviewer would like to understand more about what makes you unique. What are you most proud of in terms of your professional or academic accomplishments and experiences? What skills and experience do you have that are relevant to the open position? Consider any awards, leadership positions, or projects you'd like to promote during the interview. Please go into greater detail than what we can see on your résumé.
  • Keep your response simple, direct, and upbeat. Make sure your resume is flawless. Resumes should be tailored to the position for which you've applied, with relevant work experience and academic credentials highlighted.
  • Recognize the job's requirements. Examine the job profile for which you have applied or for which you have an interview planned. Understand the role completely, including what they anticipate from you, the skill sets you'll need, and the qualifications you'll need. Make sure you have all of the necessary information.
  • Gather as much information as you can on the company. Examine the company's website to learn about how it has grown, what it specialises in, the products and services it offers, its revenue strategy, and so on.
  • On the day of the interview, it's critical to be yourself. Make no pretence of being successful, confident, or anything else. Simply be yourself. That will suffice to identify you as a candidate who might be suitable for the position. Always keep a cheerful attitude and a smile on your face.
  • You need to go away from the interview with all of the information you need to make an informed decision if you accept an offer. You can prepare questions ahead of time and feel free to ask them throughout each interview. Inquire about the things that matter most to you: the projects you'll be working on, the corporate culture, team dynamics, prospective obstacles, development prospects, rewards, and so on.

Frequently Asked Questions

1. What does Nutanix do?

Nutanix provides invisible infrastructure for next-generation enterprise computing, allowing IT to focus on the applications and services that drive the company forward. The Nutanix Cloud Platform includes hybrid cloud architecture, multi-cloud management, unified storage, database services, and desktop services to serve any application and workload, anywhere. Nutanix naturally converges computation, virtualization, and storage into a single solution. Customers may expect predictable performance, linear scalability, and cloud-like infrastructure utilisation when they use Nutanix. Nutanix combines the public cloud's ease and agility with the private cloud's performance, security, and management.

2. What is the salary of a software engineer at Nutanix?

The average salary of a software engineer at Nutanix may range from 15 lakhs to 20 lakhs per annum in India.

3. Why do you want to join Nutanix?

The opportunity at Nutanix is enormous, both in terms of market opportunity and in terms of having the power to influence the creation of a partner ecosystem from the bottom up that offers high value to all of its stakeholders. The potential to create this environment will provide us with unrivalled loyalty. Nutanix uses genuinely integrated infrastructure to tackle customer concerns in virtualized settings. A compelling Converged Infrastructure solution that eliminates the need for numerous registrations from a legacy storage vendor and a legacy server vendor is a statement that will connect with our partners.

With a sales force that has been in existence for less than two years, the Nutanix team has indeed created an extraordinary buzz in the marketplace. It will be a tremendous trip to be a part of if we can organise our strategy and harness it around developing a world-class channel programme.

4. How is it working at Nutanix?

Employee satisfaction is just as essential to Nutanix as customer satisfaction. Nutanix promotes a culture of learning, growth, and success.  Nutanix supports the health and wellbeing of the people who make the company successful by providing exceptional benefits and the power of choice making a positive difference in their lives.

5. How do you get selected on Nutanix?

Nutanix recruits in a series of around 4-5 rounds of interviews. The process consists mostly of two written rounds (coding and debugging rounds), followed by two to three interviews( technical and hr rounds). When it comes to shortlisting individuals, the organisation focuses a strong emphasis on creativity and creative abilities.

6. How do I get an internship with Nutanix?

Nutanix internship programme is designed to give you hands-on exposure to the team and culture while allowing you to create, develop, and demonstrate your abilities. By the end of August, Nutanix starts accepting applications for the following summer. Qualified candidates will then be invited to a series of phone or video interviews, as well as a small assignment. While this is the standard timeline, you are free to apply for opportunities that interest you at any moment.

Get Placed at Top Product Companies with Scaler Know More 
Get Placed at Top Product Companies with Scaler Know More 
Get Placed at Top Product Companies with Scaler
Sat transparent 640a34d454880bf68e3bfdf33f2389f2214043f59ad18b4c7f7b114e834fb257.svg

Point markers b3add1cc88e4996b2df6e0aedb9f0d1b65fa73c51b7ada8fbee3895a2aa11802.svg Personalised feedback report with solutions
Point markers b3add1cc88e4996b2df6e0aedb9f0d1b65fa73c51b7ada8fbee3895a2aa11802.svg Real life Interview Questions
Point markers b3add1cc88e4996b2df6e0aedb9f0d1b65fa73c51b7ada8fbee3895a2aa11802.svg Identify exact topics to improve

Your feedback is important to help us improve.
Free Mock Assessment
Fill up the details for personalised experience.
All fields are mandatory
Current Employer *
Enter company name *
Graduation Year *
Select an option *
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
Phone Number *
OTP will be sent to this number for verification
+91 *
+91
Change Number
Phone Number *
OTP will be sent to this number for verification
+91 *
+91
Change Number
Graduation Year *
Graduation Year *
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
*Enter the expected year of graduation if you're student
Current Employer *
Company Name *
Please verify your phone number
Edit
Resend OTP
By clicking on Start Test, I agree to be contacted by Scaler in the future.
Already have an account? Log in
Free Mock Assessment
Instructions from Interviewbit
Start Test