Filter interviews by
Recursive programming simplifies complex problems but can lead to performance issues and stack overflow risks.
Pros: Simplifies code for problems like tree traversal (e.g., depth-first search).
Cons: Can lead to stack overflow if recursion depth is too high (e.g., calculating Fibonacci numbers).
Pros: Easier to read and maintain for problems with a natural recursive structure (e.g., factorial calculation).
Cons: May h...
Yes, I am eager to join as an Associate Product Engineer and contribute to innovative projects.
I am excited about the opportunity to work on product development and engineering.
Joining your team aligns with my career goals and passion for technology.
I believe my skills in problem-solving and collaboration will add value to the team.
I am looking forward to learning from experienced professionals in the field.
I worked as a junior product engineer, focusing on product design, testing, and collaboration with cross-functional teams.
Conducted market research to identify user needs and product opportunities.
Collaborated with design teams to create prototypes for new products.
Assisted in testing and quality assurance processes to ensure product reliability.
Participated in project meetings to align product development with bu...
Use Floyd's Tortoise and Hare algorithm to detect loop in linked list.
Initialize two pointers, slow and fast, at the head of the linked list.
Move slow pointer by one step and fast pointer by two steps.
If they meet at any point, there is a loop in the linked list.
Maven cycle is the process of building, testing, packaging, and deploying a software project using Maven build tool.
Maven cycle includes phases like compile, test, package, install, and deploy.
It starts with compiling the source code, running tests, packaging the application, installing it in the local repository, and deploying it to a remote repository.
Maven uses a project object model (POM) file to define the pr...
Regression testing is the process of retesting a software application to ensure that new code changes have not adversely affected existing functionality.
Regression testing is performed after code changes to verify that the existing functionality still works correctly.
It helps in identifying any defects introduced due to code changes.
Regression testing can be automated to save time and effort.
Examples of regression...
Agile Methodology is a software development approach that emphasizes flexibility, collaboration, and iterative development.
Iterative approach to software development
Emphasizes flexibility and adaptability to change
Encourages collaboration between cross-functional teams
Delivers working software in short, frequent iterations
Involves continuous feedback and improvement
Retesting is the process of running tests on previously failed test cases after the defects have been fixed.
Retesting is done to ensure that the reported defects have been successfully fixed.
It focuses on the areas where defects were found during initial testing.
Retesting is usually performed by the same tester who reported the defects.
Examples: After a bug is fixed, the tester retests the specific test case that ...
HDD stands for Hard Disk Drive, a data storage device used in computers to store and retrieve digital information.
HDDs use magnetic storage to store data on spinning disks called platters.
They have read/write heads that move across the platters to access and modify data.
HDDs are typically used for long-term storage of large amounts of data in desktops, laptops, servers, and other devices.
Examples of HDD manufactur...
Implement random() function.
Use a pseudorandom number generator algorithm to generate random numbers.
Seed the generator with a unique value to ensure different sequences of random numbers.
Consider the range of numbers required and scale the generated numbers accordingly.
Ensure the generated numbers have a uniform distribution.
Test the implementation for randomness and statistical properties.
I applied via Naukri.com and was interviewed in Apr 2022. There were 2 interview rounds.
Dynamic polymorphism is the ability of an object to take on multiple forms during runtime.
It allows objects of different classes to be treated as if they are of the same class.
It is achieved through virtual functions and inheritance.
Examples include function overriding and templates in C++.
C++ has four types of casts: static_cast, dynamic_cast, const_cast, and reinterpret_cast.
static_cast is used for implicit conversions between related types
dynamic_cast is used for runtime type checking and casting of polymorphic types
const_cast is used to remove const or volatile qualifiers from a variable
reinterpret_cast is used for low-level casting between unrelated types
Examples: static_cast
IPC mechanisms in Linux are used for inter-process communication between processes running on the same system.
IPC mechanisms include pipes, message queues, shared memory, and semaphores.
Pipes are used for one-way communication between two processes.
Message queues allow for asynchronous communication between processes.
Shared memory allows multiple processes to access the same memory space.
Semaphores are used for synchro...
map and unordered_map are associative containers while vector and list are sequence containers.
map and unordered_map are used to store key-value pairs while vector and list are used to store sequences of elements.
map and unordered_map provide faster search and insertion of elements while vector and list provide faster insertion and deletion of elements.
map and unordered_map use red-black trees and hash tables respectiv...
Functors are objects that can be treated as functions in C++. They are used for generic programming and can be passed as arguments.
Functors are often used in algorithms that require a function object as a parameter.
They can be used to implement callbacks and event handlers.
Functors can be used to create custom comparators for sorting algorithms.
They can also be used to implement function objects for mathematical operat...
Move constructors enable efficient resource transfer from rvalues, avoiding unnecessary copies and improving performance.
A move constructor takes an rvalue reference as a parameter, e.g., `MyClass(MyClass&& other)`. This allows transferring resources.
Using `std::move`, you can cast an lvalue to an rvalue, enabling move semantics, e.g., `std::vector<int> v2 = std::move(v1);`.
Move constructors should 'steal...
Synchronizing thread blocks is important for efficient and correct execution of parallel programs.
Thread blocks must be synchronized to avoid race conditions and ensure correct program output.
Synchronization can be achieved using locks, semaphores, or barriers.
Examples of synchronization include ensuring that shared resources are accessed by only one thread at a time, or that threads wait for each other before proceedi...
Python overview and oops concept
Recursive programming simplifies complex problems but can lead to performance issues and stack overflow risks.
Pros: Simplifies code for problems like tree traversal (e.g., depth-first search).
Cons: Can lead to stack overflow if recursion depth is too high (e.g., calculating Fibonacci numbers).
Pros: Easier to read and maintain for problems with a natural recursive structure (e.g., factorial calculation).
Cons: May have h...
I appeared for an interview in Feb 2025, where I was asked the following questions.
Aptitude questions were asked
I applied via Campus Placement and was interviewed in Mar 2024. There was 1 interview round.
Simple 20 questions basic questions and c questions in 40 minutes 40 questions
I applied via Company Website and was interviewed in Feb 2024. There was 1 interview round.
I had applied for the cloud architect role. In the first round of the interviewer took some medium levels. DSA question and asked me to solve.
Since I am a architect, I really do LLD, in my day to day activity. Due to which I couldn't solve the DSA problem fully. I gave a high level pseudo code.
The interviewer politely said that even if you're good architect, your fundamental should be strong.
For the interview next day I got a email confirmation that I have successfully rejected :-)
WD offers exciting opportunities for growth and innovation in the software engineering field.
Opportunity to work on cutting-edge technologies
Collaborative and supportive work environment
Career development and growth opportunities
Strong company culture and values
Global presence and diverse projects
WD offers a variety of products including external hard drives, internal hard drives, SSDs, and network attached storage devices.
External hard drives
Internal hard drives
SSDs
Network attached storage devices
I applied via Campus Placement and was interviewed in Aug 2023. There were 4 interview rounds.
There were aptitude questions and c language output questions and embedded system questions
I applied via Recruitment Consulltant and was interviewed in Jun 2023. There were 5 interview rounds.
Top trending discussions
The duration of Western Digital interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 33 interview experiences
Difficulty level
Duration
based on 303 reviews
Rating in categories
7-10 Yrs
Not Disclosed
8-10 Yrs
Not Disclosed
10-12 Yrs
Not Disclosed
Staff Engineer
321
salaries
| ₹25 L/yr - ₹40 L/yr |
Principal Engineer
204
salaries
| ₹35 L/yr - ₹56.5 L/yr |
Senior Engineer
143
salaries
| ₹15.8 L/yr - ₹25 L/yr |
Test Engineer
133
salaries
| ₹3 L/yr - ₹8 L/yr |
Senior Software Engineer
78
salaries
| ₹10 L/yr - ₹25 L/yr |
vivo
OPPO
Dell
LG Electronics