i
Hudson's Bay Company
Filter interviews by
I have over 5 years of experience as a Digital Analyst, specializing in data analysis, reporting, and optimization.
Managed and analyzed large datasets to identify trends and insights
Created reports and dashboards to track key performance indicators
Implemented A/B testing and optimization strategies to improve digital campaigns
Collaborated with cross-functional teams to drive data-driven decision making
Utilized tools su...
I applied via Company Website and was interviewed before Jun 2021. There were 2 interview rounds.
Questions like reverse linked list, palindrome number etc..
An unique id for a massive parallel system can be generated using a combination of timestamp, machine id and a random number.
Use a timestamp to ensure uniqueness
Include a machine id to avoid collisions in a distributed system
Add a random number to further increase uniqueness
Consider using a UUID (Universally Unique Identifier) for simplicity
Ensure the id generation algorithm is thread-safe
A parking lot system that manages parking spots and vehicles.
Create a class for parking lot with attributes like total number of spots, available spots, etc.
Create a class for vehicle with attributes like license plate number, type, etc.
Implement methods for parking a vehicle, removing a vehicle, and checking availability of spots.
Use data structures like arrays and maps to store and retrieve information.
Consider imple
I applied via Approached by Company
It was basically two leetcode Questions Mainly from array with some algorithm required to apply and other from LinkedList.
I appeared for an interview in Jan 2025.
Exception handling is crucial in programming to handle errors and ensure proper execution. The 'finally' block is used to clean up resources, and throwing exceptions allows for error propagation.
Exception handling is used to manage errors and unexpected situations in a program.
The 'finally' block is used to execute code that should always run, regardless of whether an exception is thrown or not.
Throwing exceptions allo...
ACID properties ensure data integrity in transactions. CAP Theorem states that a distributed system can only guarantee two out of three: Consistency, Availability, Partition Tolerance.
ACID properties: Atomicity, Consistency, Isolation, Durability
Example: In a banking application, a transfer of funds should be atomic, consistent, isolated, and durable
CAP Theorem: Consistency, Availability, Partition Tolerance - a distri...
Comparable is an interface used for natural ordering, while Comparator is used for custom ordering in Java Collections.
Comparable interface is used to define the natural ordering of objects. It is implemented by the class whose objects are to be sorted.
Comparator interface is used to define custom ordering of objects. It is implemented by a separate class.
To implement Comparable, the class needs to override the compare...
Generics in Java allow for creating classes, interfaces, and methods that operate on types parameterized at compile time.
Generics provide type safety by allowing compile-time type checking.
They enable code reusability and reduce the need for casting.
Example: List<String> list = new ArrayList<>();
Code to reverse a string using recursion
Create a recursive function that takes a string as input
Base case: if the string is empty or has only one character, return the string
Recursive case: return the last character of the string concatenated with the result of calling the function on the substring excluding the last character
Object comparison with specific fields involves comparing values of selected fields between two objects.
Object comparison can be done by comparing the values of specific fields in two objects.
Fields can be selected based on unique identifiers or criteria for comparison.
Example: Comparing the 'name' field of two person objects to check if they are the same.
Distributed transactions in microservices involve using compensating transactions and event-driven architecture.
Microservices typically use compensating transactions to maintain consistency across multiple services.
Event-driven architecture can help in coordinating distributed transactions by using events to trigger actions in different services.
Implementing distributed transactions in microservices requires careful de...
Aggregator pattern is used in microservices architecture to combine multiple service responses into a single response.
Aggregator pattern helps in reducing the number of client requests by combining multiple service responses.
It can be implemented using a separate service or within an existing service.
Example: A shopping website aggregating product information from different microservices like inventory, pricing, and re
Factory design pattern is a creational pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
Factory method pattern defines an interface for creating objects, but lets subclasses decide which class to instantiate.
It promotes loose coupling by eliminating the need to bind application-specific classes into the code.
Example: A car m...
Indexing in a database is a technique to improve the speed of data retrieval by creating a data structure that allows for quick lookup.
Indexing involves creating a separate data structure that contains pointers to the actual data in the database.
Common data structures used for indexing include B-trees, hash tables, and binary search trees.
Indexes can be created on one or multiple columns in a database table to speed up...
My approach involves using load balancing, caching, asynchronous processing, and horizontal scaling.
Implement load balancing to distribute requests evenly across multiple servers.
Utilize caching mechanisms to store frequently accessed data and reduce response times.
Use asynchronous processing for long-running tasks to free up resources for handling more requests.
Implement horizontal scaling by adding more servers to ha...
CQRS pattern in microservices separates read and write operations for improved scalability and performance.
CQRS stands for Command Query Responsibility Segregation
It separates the read and write operations into two different models
Write operations update the data store, while read operations query a separate data store
CQRS can improve performance and scalability by allowing each model to be optimized for its specific t
API Gateway acts as a single entry point for all client requests in a microservices architecture.
API Gateway handles authentication, authorization, rate limiting, and routing of requests to appropriate microservices.
It helps in decoupling client applications from individual microservices, providing a more flexible and scalable architecture.
API Gateway can also perform tasks like request/response transformation, logging...
SQL query to fetch data from two tables using joins
Use the JOIN keyword to combine rows from two tables based on a related column
Specify the columns to select from each table in the SELECT statement
Use the ON keyword to specify the join condition
I applied via LinkedIn and was interviewed before Oct 2023. There was 1 interview round.
Java-based coding, streams and lambda, design patterns
I applied via Approached by Company and was interviewed in Aug 2023. There were 6 interview rounds.
2 coding problems.
One is on Hasmap
second one is on Tree
based on 1 interview
Interview experience
Senior Associate
106
salaries
| ₹4.8 L/yr - ₹10.2 L/yr |
Associate
71
salaries
| ₹3 L/yr - ₹6 L/yr |
Senior Analyst
65
salaries
| ₹6 L/yr - ₹19.8 L/yr |
Inventory Analyst
50
salaries
| ₹3.4 L/yr - ₹7.5 L/yr |
Analyst
45
salaries
| ₹3.3 L/yr - ₹10 L/yr |
Reliance Retail
DMart
Future Group
Landmark Group