Filter interviews by
I applied via Approached by Company and was interviewed before Apr 2023. There were 5 interview rounds.
Top trending discussions
I was interviewed before Mar 2021.
Round duration - 60 minutes
Round difficulty - Easy
Technical Interview round with questions on DSA, Programming and OOPS.
Given two strings A
and B
, find the index of the first occurrence of A
in B
. If A
is not present in B
, return -1.
A = "bc", B = "abcdd...
Implement the strstr() function in C to find the index of the first occurrence of one string in another.
Iterate through the main string and check if the substring matches at each position.
Return the index if a match is found, else return -1.
Handle edge cases like empty strings or when the substring is longer than the main string.
Accessing a null pointer in C results in a segmentation fault, as the program tries to access memory at address 0.
Attempting to dereference a null pointer will result in a segmentation fault, as the program tries to access memory at address 0.
It is important to always check if a pointer is null before attempting to access its value.
Example: int *ptr = NULL; printf('%d', *ptr); // This will result in a segmentation faul
Phases of a compiler include lexical analysis, syntax analysis, semantic analysis, optimization, and code generation.
Lexical analysis: Converts source code into tokens.
Syntax analysis: Checks the syntax of the code using a grammar.
Semantic analysis: Checks the meaning of the code.
Optimization: Improves the code for efficiency.
Code generation: Generates machine code or intermediate code.
A system stack is a data structure that stores information about the active subroutines of a computer program.
A system stack typically consists of a stack of frames, each representing a subroutine call.
The stack grows and shrinks as subroutines are called and returned.
The top of the stack points to the currently executing subroutine.
Common operations on a system stack include push (adding a new frame) and pop (removing
Given an integer N
, for each integer from 0
through N
, find and print the number of set bits (1s) present in its binary representation.
N = 5
...
Count the number of set bits in binary representation of integers from 0 to N.
Iterate through integers from 0 to N and count the number of set bits in their binary representation.
Use bitwise operations to check if a bit is set in the binary representation.
Return the count of set bits for each integer in the range.
Round duration - 60 minutes
Round difficulty - Easy
Technical Interview round with questions on DSA, Programming and OOPS.
You are provided with a binary tree consisting of 'N' nodes, where each node contains an integer value. Your task is to perform the In-Order traversal ...
Perform In-Order traversal on a binary tree without recursion.
Use a stack to simulate the recursive process of In-Order traversal.
Start with the root node and keep traversing left until reaching a null node, pushing nodes onto the stack.
Pop nodes from the stack, print the value, and move to the right child if it exists.
Repeat until the stack is empty and all nodes have been visited.
Determine if a given singly linked list of integers contains a cycle.
A cycle in a linked list occurs when a node's next points back to a previous node in ...
Detect if a singly linked list has a cycle by using Floyd's Cycle Detection Algorithm.
Use Floyd's Cycle Detection Algorithm to detect a cycle in a singly linked list.
Maintain two pointers, one moving at twice the speed of the other.
If there is a cycle, the two pointers will eventually meet.
If one of the pointers reaches the end of the list (null), there is no cycle.
An interrupt is a signal sent to the CPU to alert it of an event that needs immediate attention.
Interrupts can be generated by hardware devices or software programs.
They can be used to handle events such as keyboard input, mouse clicks, or network activity.
Interrupts can be classified as hardware interrupts, software interrupts, or exceptions.
Examples of interrupts include the timer interrupt, which is used for multita...
CSMA stands for Carrier Sense Multiple Access. It is a protocol used in network communication to avoid collisions.
CSMA allows devices to listen to the network before transmitting data to avoid collisions.
If a device senses that the network is busy, it waits for a random amount of time before attempting to transmit.
CSMA/CD (Collision Detection) is a variant of CSMA used in Ethernet networks.
CSMA/CA (Collision Avoidance)
Round duration - 30 minutes
Round difficulty - Easy
Typical Managerial round.
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
I was interviewed before Mar 2021.
Round duration - 60 minutes
Round difficulty - Easy
This was the first technical round.
Given a singly linked list of integers, return the head of the reversed linked list.
Initial linked list: 1 -> 2 -> 3 -> 4 -> NULL
Reversed link...
Reverse a singly linked list of integers and return the head of the reversed linked list.
Iterate through the linked list and reverse the pointers to point to the previous node instead of the next node.
Keep track of the previous, current, and next nodes while reversing the linked list.
Update the head of the reversed linked list as the last node encountered during reversal.
You are given a binary tree consisting of distinct integers and two nodes, X
and Y
. Your task is to find and return the Lowest Common Ancestor (LCA) of these two nodes...
Find the Lowest Common Ancestor (LCA) of two nodes in a binary tree.
Traverse the binary tree to find the paths from the root to nodes X and Y.
Compare the paths to find the last common node, which is the LCA.
Handle cases where one node is an ancestor of the other.
Consider edge cases like when X or Y is the root node.
Implement a recursive or iterative solution to find the LCA efficiently.
Internal fragmentation occurs when allocated memory is larger than the requested memory, leading to wasted space.
Internal fragmentation is common in memory management systems.
It occurs when a block of memory is allocated to a process, but the process does not use all of the allocated memory.
This results in wasted space within the allocated block.
For example, if a process requests 100 bytes of memory but is allocated a ...
BSS segment in memory stores uninitialized static and global variables.
BSS segment stands for 'Block Started by Symbol' and is a section of memory where uninitialized static and global variables are stored.
Variables declared with the 'static' keyword or as global variables without initialization are stored in the BSS segment.
For example, int a; or static int b; would be stored in the BSS segment.
Round duration - 60 minutes
Round difficulty - Easy
Technical Interview round with questions on DSA, OS, OOPS etc.
Given a positive integer 'N', compute its square root and return it. If 'N' is not a perfect square, then return the floor value of sqrt(N).
N = 25
N = 20
N...
Calculate the square root of a positive integer and return the floor value if not a perfect square.
Use the sqrt() function to calculate the square root of the given integer.
If the square root is not an integer, return the floor value using floor() function.
Handle constraints such as the range of 'N' and the number of test cases.
The returned value for the 'main' function goes to the operating system.
The returned value is typically an integer representing the exit status of the program.
A return value of 0 usually indicates successful execution, while non-zero values indicate errors.
The operating system can use the return value to determine the success or failure of the program.
A segmentation fault is a type of error that occurs when a program tries to access a memory location that it is not allowed to access.
Occurs when a program tries to access memory outside of its allocated space
Usually caused by bugs in the code such as accessing an uninitialized pointer or writing past the end of an array
Can lead to program crashes or unexpected behavior
Example: Accessing an element beyond the bounds of
Round duration - 30 minutes
Round difficulty - Easy
This was a typical managerial round.
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
IP tables is a firewall configuration tool in Linux.
IP tables is used to filter network traffic based on a set of rules.
It can be used to block or allow traffic based on source/destination IP address, port number, protocol, etc.
IP tables is configured using the command line interface.
It is commonly used in Linux servers to secure the network.
Example: iptables -A INPUT -s 192.168.1.0/24 -j DROP
Program to traverse a linked list
Start from the head node
Iterate through each node until the end is reached
Perform necessary operations on each node
Program to reverse a linked list using extra space.
Create a new empty linked list
Traverse the original linked list and push each node to the new linked list
Return the new linked list as the reversed linked list
Find the total number of matches to be played in a knockout football tournament with n teams.
The number of matches played in a knockout tournament is always one less than the number of teams.
Use the formula (n-1) to calculate the total number of matches.
For example, in a tournament with 8 teams, the total number of matches played would be 7.
Find closest ancestor of two nodes in a tree
Traverse the tree from root to both nodes and store the paths
Compare the paths to find the closest common ancestor
Use recursion to traverse the tree and find the ancestor
If one node is an ancestor of the other, return the ancestor node
Segmentation fault is a type of error that occurs when a program tries to access a memory location that it is not allowed to access.
Segmentation fault is also known as segfault.
It is a common error in C and C++ programming languages.
It occurs when a program tries to access a memory location that it is not allowed to access, such as an area of memory that has not been allocated to the program.
This can happen due to a va...
To find the maximum number from a million numbers entered on the fly or 1000 at a time.
Create a variable to store the maximum number and initialize it to the first number entered
Compare each subsequent number entered with the current maximum and update the variable if necessary
If numbers are given 1000 at a time, store the maximum of each batch and compare them at the end to find the overall maximum
Variables for kernel level process should be stored in stack.
Stack is faster than heap for accessing variables.
Stack is limited in size, so use it for small variables.
Heap is used for larger variables that need to persist beyond the function call.
Kernel level processes should avoid dynamic memory allocation.
Internal fragmentation is the unused memory space within a partition or block.
Occurs when allocated memory is larger than required
Leads to inefficient use of memory
Can be reduced by using memory allocation techniques like paging or segmentation
In C, structure variables cannot be directly compared using the comparison operators. Cell padding is used to align data in memory for efficiency.
Structure variables in C cannot be compared directly using comparison operators like == or !=. Instead, you need to compare each member of the structure individually.
Cell padding refers to the practice of adding empty bytes between structure members to align them in memory. T...
Global variables are stored in data segment while local variables are stored in stack memory.
Global variables are accessible throughout the program while local variables are only accessible within their scope.
Global variables are initialized to default values while local variables are not.
Global variables can be modified by any function while local variables can only be modified within their scope.
Control is passed through function calls. Return address of main is stored in the stack.
Control is passed to a function when it is called from main()
The function executes and returns control to main() using the return statement
The return address of main() is stored in the stack
When the function returns, the return address is used to resume execution in main()
To calculate square root without math.h, use Newton's method.
Choose a number to find the square root of
Make an initial guess for the square root
Use Newton's method to refine the guess
Repeat until desired accuracy is achieved
Newton's method: new_guess = (guess + (number/guess))/2
Find the lowest floor from which an egg breaks when dropped from a 30 floor building with 4 eggs.
Use binary search approach to minimize the number of drops
Start dropping the egg from the middle floor and check if it breaks
If it breaks, start dropping from the middle of the lower half, else start from the middle of the upper half
Repeat the process until the lowest floor is found
Using a heap in Q6 can have certain disadvantages.
Heap operations are slower than array operations.
Heap requires extra memory allocation.
Heap may not be suitable for small datasets.
Heap may not be efficient for certain types of data structures.
Heap may lead to fragmentation of memory.
I interned at XYZ company and developed a software using Agile methodology. Faced challenges in meeting deadlines.
Interned at XYZ company and developed a software
Used Agile methodology for software development
Faced challenges in meeting deadlines
Collaborated with team members to overcome challenges
Engineering solution to reduce plastic waste
Develop biodegradable plastics
Create recycling machines for households
Implement a deposit system for plastic bottles
Encourage the use of reusable bags and containers
Design products with minimal packaging
Develop a system to convert plastic waste into fuel
I really enjoyed the section on your development process.
The detailed explanation of your agile methodology was impressive.
The emphasis on collaboration and communication stood out to me.
The use of real-life examples to illustrate your process was helpful.
I appreciated the focus on continuous improvement and learning.
Overall, it gave me a good understanding of how your team works and what to expect if I were to join.
Yes, my role as a software developer at NetApp is clear.
My role is to develop and maintain software applications for NetApp.
I work closely with other developers, project managers, and stakeholders to ensure that the software meets the needs of the business.
I am responsible for writing clean, efficient, and well-documented code.
I also participate in code reviews and contribute to the overall development process.
For exam...
I enjoyed computer science and mathematics the most in college.
Computer Science - I loved learning about algorithms, data structures, and programming languages.
Mathematics - I enjoyed solving complex problems and understanding mathematical concepts.
Participated in various technical and cultural events, volunteered for social causes.
Participated in coding competitions like CodeChef, HackerRank, etc.
Organized technical events like hackathons, coding workshops, etc.
Volunteered for social causes like blood donation camps, cleanliness drives, etc.
Participated in cultural events like dance competitions, music concerts, etc.
I applied via Referral
Windows and UNIX have several technical differences.
Windows has a graphical user interface (GUI) while UNIX is primarily command-line based.
Windows uses the NTFS file system while UNIX typically uses the ext4 file system.
Windows supports a wide range of software applications, while UNIX is known for its stability and security.
Windows has a larger user base and is more commonly used for personal computers, while UNIX is...
NTFS and FAT are file systems used in Windows operating systems with differences in features and capabilities.
NTFS supports file and folder permissions, while FAT does not.
NTFS has built-in support for file compression and encryption, while FAT does not.
NTFS has a journaling feature that helps in recovering from system crashes, while FAT does not.
NTFS supports larger file sizes and partition sizes compared to FAT.
NTFS ...
The OSI stack consists of 7 layers that define the functions and protocols of network communication.
Physical layer: Deals with the physical transmission of data.
Data Link layer: Provides error-free transmission over a physical link.
Network layer: Handles routing and logical addressing.
Transport layer: Ensures reliable data delivery and manages end-to-end connections.
Session layer: Establishes, manages, and terminates s...
NAT (Network Address Translation) is a technique used to translate private IP addresses to public IP addresses, allowing devices on a private network to communicate with the internet. DHCP (Dynamic Host Configuration Protocol) is a network protocol that automatically assigns IP addresses and other network configuration parameters to devices on a network.
NAT allows multiple devices on a private network to share a single...
A hub is a simple networking device that connects multiple devices in a network. A switch is a more advanced device that filters and forwards data packets. A router is a device that connects multiple networks and directs data packets between them.
A hub operates at the physical layer of the OSI model, while a switch operates at the data link layer.
A hub broadcasts data to all connected devices, while a switch selectivel...
Collision domain is a network segment where collisions can occur. Bridges segregate collision domains by creating separate segments.
Collision domain is a section of a network where network devices share the same bandwidth and can collide with each other.
Collisions occur when two or more devices transmit data simultaneously on a shared medium.
Bridges create separate collision domains by dividing a network into multiple ...
A combination of array and hashmap can be used to design the underlying data structures for an educational institution's website.
Use an array to store the departments available in the institution.
Each department can be represented as a key in the hashmap.
The value corresponding to each department key in the hashmap can be another hashmap.
This nested hashmap can store the courses available in the department.
The courses ...
Design considerations for a client-server system with virtual operating systems on the fly
Scalability: Ensure the system can handle multiple clients requesting virtual operating systems simultaneously
Resource allocation: Manage resources efficiently to provide virtual operating systems to clients
Network bandwidth: Optimize network usage to deliver virtual operating systems quickly
Security: Implement measures to protect...
VMware's virtualization on a multicore machine allows for efficient utilization of resources and improved performance.
VMware's virtualization technology enables the creation of multiple virtual machines (VMs) on a single multicore machine.
Each VM can run its own operating system and applications, isolated from other VMs.
The hypervisor, such as VMware ESXi, manages the allocation of CPU, memory, and other resources to e...
The minimum number of packets required to pack 51 apples such that any number of apples between 1 and 51 can be given.
The minimum number of packets required is 6.
Each packet should contain a power of 2 number of apples.
The packets should be of sizes: 1, 2, 4, 8, 16, and 20.
By combining these packets, any number of apples between 1 and 51 can be given.
Program to implement strstr function in C++
Use two nested loops to compare each character of the haystack and needle
If a match is found, return the starting index of the substring
If no match is found, return -1
To construct an almost balanced binary tree from an incoming stream of numbers.
Use a self-balancing binary search tree like AVL or Red-Black tree.
Insert the numbers from the stream into the tree.
Perform rotations or rebalancing operations as necessary to maintain balance.
Consider using a priority queue to handle the incoming stream efficiently.
Implementing autocomplete feature for search queries
Use a trie data structure to store the search queries
As the user types, traverse the trie to find matching prefixes
Return the suggestions based on the matching prefixes
Consider using a ranking algorithm to prioritize suggestions
A semaphore is a synchronization object that controls access to a shared resource through the use of a counter.
Semaphores can be used to limit the number of threads accessing a resource simultaneously.
They can be used to solve the critical section problem in concurrent programming.
Semaphores can have two types: counting semaphores and binary semaphores.
Counting semaphores allow a specified number of threads to access a...
The P and V operations are used to control access to a shared resource using a semaphore.
P operation (wait operation) decreases the value of the semaphore by 1, blocking if the value is already 0.
V operation (signal operation) increases the value of the semaphore by 1, releasing a waiting process if any.
P and V operations are typically used in synchronization mechanisms to prevent race conditions and ensure mutual excl...
REST web service is an architectural style for designing networked applications that use HTTP as the communication protocol.
REST stands for Representational State Transfer
It is based on a client-server model
It uses standard HTTP methods like GET, POST, PUT, DELETE
Resources are identified by URIs
Responses are typically in JSON or XML format
HTTP is a stateless protocol.
HTTP is stateless because it does not retain any information about previous requests or responses.
Each request is treated as an independent transaction, and the server does not maintain any knowledge of the client's state.
To maintain state, cookies or session management techniques can be used.
Statelessness allows for scalability and simplicity in web applications.
Shared memory is a memory space that can be accessed by multiple processes or threads simultaneously.
Shared memory allows processes or threads to communicate and share data efficiently.
It is typically used in inter-process communication (IPC) to avoid the overhead of copying data between processes.
Shared memory can be implemented using operating system mechanisms like memory-mapped files or system calls.
Example: Multip...
Alignment issues in structures occur due to memory padding and alignment requirements.
Structures may have unused memory space due to alignment requirements.
Padding is added to align structure members on memory boundaries.
Alignment issues can lead to wasted memory and decreased performance.
Compiler directives like #pragma pack can be used to control alignment.
Example: struct MyStruct { char a; int b; char c; };
Memory Management Unit (MMU) is a hardware component that manages memory access and translation between virtual and physical addresses.
MMU is responsible for translating virtual addresses used by programs into physical addresses in the computer's memory.
It provides memory protection by assigning access permissions to different memory regions.
MMU also handles memory allocation and deallocation, ensuring efficient use of...
A socket is an endpoint for communication between two machines over a network.
A socket is a software abstraction that allows programs to send and receive data over a network.
It provides a mechanism for inter-process communication between applications running on different machines.
Sockets can be used for various network protocols such as TCP/IP, UDP, etc.
They are identified by an IP address and a port number.
Examples of...
Yes, it is possible to declare a structure 'a' that contains a structure 'b' and 'b' in turn contains 'a'.
To achieve this, we can use forward declaration of one of the structures.
By using a pointer or reference to the other structure inside the first structure, we can avoid recursive definition.
This allows us to create a nested structure hierarchy.
To find the offset of a member of a structure object, use the 'offsetof' macro. If not allowed to create the object, use 'sizeof' and pointer arithmetic.
Use the 'offsetof' macro to find the offset of a member within a structure object
If not allowed to create the object, use 'sizeof' to get the size of the structure and perform pointer arithmetic
Netapp is a multinational storage and data management company.
Netapp specializes in providing storage solutions for businesses and organizations.
They offer a wide range of products and services including storage systems, software, and cloud services.
Netapp's solutions help organizations manage and protect their data, improve efficiency, and enable data-driven decision making.
They have a strong presence in the enterpris...
I come from a close-knit family with two siblings, an older brother and a younger sister.
Close-knit family
Two siblings - older brother and younger sister
I am interested in job profiles that involve software development, problem-solving, and continuous learning.
I prefer job profiles that allow me to work on challenging projects and utilize my technical skills.
I am interested in roles that involve software development, coding, and debugging.
I enjoy problem-solving and would like a job that challenges me to think creatively and analytically.
I value continuous learning and
Connection-oriented protocols establish a dedicated end-to-end connection before data transmission, while connectionless protocols do not.
Connection-oriented protocols ensure reliable data transmission, while connectionless protocols do not guarantee reliability.
Connection-oriented protocols are used in applications such as file transfer and email, while connectionless protocols are used in applications such as video s...
My experience of the whole day was productive and challenging.
Started the day with a team meeting to discuss project progress
Worked on coding and debugging for several hours
Collaborated with colleagues to solve complex problems
Attended a training session on new software development tools
Finished the day by reviewing and documenting my work
I am a software developer at NetApp.
Design and develop software applications
Collaborate with cross-functional teams
Write clean and efficient code
Participate in code reviews and testing
Stay up-to-date with emerging trends and technologies
A QA (Quality Assurance) is responsible for ensuring that software products meet the required quality standards.
Develop and execute test plans and test cases
Identify and report defects and issues
Collaborate with developers to resolve issues
Ensure compliance with industry standards and regulations
Continuously improve testing processes and methodologies
I was interviewed in Dec 2016.
I was interviewed before Jan 2016.
based on 1 interview
Interview experience
based on 1 review
Rating in categories
Software Engineer
434
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior Software Engineer
289
salaries
| ₹0 L/yr - ₹0 L/yr |
Technical Support Engineer
272
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior Technical Support Engineer
139
salaries
| ₹0 L/yr - ₹0 L/yr |
Principal Software Engineer
132
salaries
| ₹0 L/yr - ₹0 L/yr |
RUBRIK INDIA
Druva
Veeam Software
CommVault