EPAM Systems
30+ Zamorin Global Ventures Interview Questions and Answers
Q1. Implementation of hashmap in Java 8, Bean lifecycle, difference between @Component and @Service, Front Controller, difference between PUT & PATCH, Authentication in REST APIs, how to disable junit test cases in...
read moreThe interview question covers topics like hashmap implementation in Java 8, bean lifecycle, annotations in Spring framework, HTTP methods, REST API authentication, and disabling junit test cases during deployment.
HashMap in Java 8 uses an array of linked lists to store key-value pairs, with the hash code of the key determining the index in the array.
Bean lifecycle in Spring framework involves initialization and destruction phases, managed by the container.
@Component and @Serv...read more
Q2. How to create and handle complex primary key in Spring Data JPA
Complex primary keys in Spring Data JPA can be created using @EmbeddedId or @IdClass annotations
Use @EmbeddedId annotation to create a composite primary key using an embeddable class
Use @IdClass annotation to create a composite primary key using a separate class for the key fields
Implement equals() and hashCode() methods in the embeddable or separate key class for proper comparison and hashing
Q3. Given a matrix, when you encounter a 0, make all the elements in the corresponding row and column to 0.
Given a matrix, replace rows and columns with 0 when encountering a 0.
Iterate through the matrix and store the row and column indices of 0s in separate sets.
Iterate through the sets and update the corresponding rows and columns to 0.
Q4. How do you make an object immutable, followed by how will you make a collection within your immutable object immutable as well so that the state doesn’t change
To make an object immutable, use final keyword for fields and provide only getters. To make a collection immutable, use Collections.unmodifiableList() or similar methods.
Use final keyword for fields in the object to prevent them from being modified
Provide only getters for the fields to ensure they cannot be changed externally
For collections within the object, use Collections.unmodifiableList() or similar methods to create an immutable view of the collection
Q5. Find the triplets in an array whose sum is 0 , complexity - O(n2)
Use nested loops to iterate through array and find triplets with sum 0.
Iterate through array with two nested loops to find all possible pairs.
For each pair, check if there is a third element that completes the triplet with sum 0.
Store the triplets found in a separate array.
Q6. Working of Kafka, the flow of a message, using partitions, load balancing with Consumers.
Kafka is a distributed streaming platform that allows for the flow of messages through topics, partitions, and consumers.
Kafka is a distributed streaming platform that allows producers to publish messages to topics.
Topics are divided into partitions, which allow for parallel processing and scalability.
Producers can specify a key for a message, which determines the partition to which the message will be sent.
Consumers can subscribe to one or more partitions within a topic to r...read more
Q7. Output list of palindrome strings from a given string.
Output list of palindrome strings from a given string.
Iterate through each substring in the given string and check if it is a palindrome.
Use two pointers approach to check if a substring is a palindrome.
Store palindrome substrings in an array and return the array.
Q8. Coding task - check specific characters in a string , proposed solution with string regex match
Check specific characters in a string using regex match
Use regex pattern to match specific characters in the string
For example, to check for digits in a string: /[0-9]/
Use regex.test() method to check if the pattern exists in the string
Q9. What is the difference b/w Interface and abstreact class
Interface is a contract that defines the methods a class must implement, while abstract class can have both abstract and concrete methods.
Interface cannot have any implementation, while abstract class can have both abstract and concrete methods.
A class can implement multiple interfaces but can only inherit from one abstract class.
Interfaces are used to achieve multiple inheritance in Java, while abstract classes are used to provide a common base for subclasses.
Interfaces are ...read more
Q10. Experience in Platform/Legacy App modernization
I have experience in modernizing legacy applications and platforms.
I have worked on migrating monolithic applications to microservices architecture.
I have experience in refactoring code to make it more modular and maintainable.
I have worked on upgrading outdated technologies to newer versions.
I have experience in containerization using Docker and Kubernetes.
I have worked on cloud migration projects, moving applications to AWS and Azure.
Q11. Use of unsubscribe in angular and practical benefit of onDestroy?
Unsubscribe in Angular is used to clean up resources and prevent memory leaks. ngOnDestroy is a lifecycle hook that is called when a component is destroyed.
Unsubscribe is used to prevent memory leaks by unsubscribing from observables when a component is destroyed.
onDestroy is a lifecycle hook in Angular that is called when a component is destroyed, allowing for cleanup tasks to be performed.
Practical benefit of using onDestroy is to release resources, such as unsubscribing fr...read more
Q12. how spark procss data in parlell.
Spark processes data in parallel using its distributed computing framework.
Spark divides data into partitions and processes each partition independently.
Tasks are executed in parallel across multiple nodes in a cluster.
Spark uses in-memory processing to speed up data processing.
Data is processed lazily, allowing for optimizations like pipelining.
Spark DAG (Directed Acyclic Graph) scheduler optimizes task execution.
Example: Spark can read data from HDFS in parallel by splittin...read more
Q13. Different senarios on different gcp services
Different scenarios on different GCP services
Scenario 1: Using Cloud Storage for storing and accessing large amounts of data
Scenario 2: Utilizing Cloud Functions for serverless computing and event-driven applications
Scenario 3: Implementing Cloud SQL for managing relational databases in the cloud
Q14. What is hoisting,closure,event loop?
Hoisting, closure, and event loop are key concepts in JavaScript.
Hoisting is the JavaScript behavior where variable and function declarations are moved to the top of their containing scope.
Closure is the combination of a function bundled together with references to its surrounding state (lexical environment).
Event loop is a mechanism that allows JavaScript to perform non-blocking operations by offloading tasks to the browser's APIs and queuing them in a loop.
Q15. how to secure a web app
Securing a web app involves implementing various security measures to protect against threats and vulnerabilities.
Use HTTPS to encrypt data transmitted between the client and server
Implement input validation to prevent SQL injection and XSS attacks
Use strong authentication mechanisms like multi-factor authentication
Regularly update software and patches to fix security vulnerabilities
Implement security headers like Content Security Policy to prevent attacks
Q16. design pattern mule 4
Design patterns in Mule 4 help in structuring and organizing code for better maintainability and scalability.
Mule 4 supports various design patterns such as scatter-gather, choice, splitter, aggregator, etc.
Design patterns help in solving common integration challenges and promoting best practices.
For example, using scatter-gather pattern to send a request to multiple services in parallel and aggregate the responses.
Q17. mule 4 design api test
Designing API tests for Mule 4
Use MUnit for testing Mule 4 APIs
Write test cases to cover all possible scenarios
Mock external dependencies for isolated testing
Use assertions to validate API responses
Q18. what is window function in sql
Window function in SQL is used to perform calculations across a set of table rows related to the current row.
Window functions are applied to a set of rows related to the current row, known as a window frame.
They can be used to calculate running totals, ranks, averages, and more.
Examples of window functions include ROW_NUMBER(), RANK(), SUM(), AVG(), and LEAD().
Q19. Solid design principles
Solid design principles are a set of guidelines for writing maintainable and scalable code.
Single Responsibility Principle - each class should have only one responsibility
Open/Closed Principle - classes should be open for extension but closed for modification
Liskov Substitution Principle - derived classes should be substitutable for their base classes
Interface Segregation Principle - clients should not be forced to depend on interfaces they do not use
Dependency Inversion Prin...read more
Q20. Factory & Builder Design Pattern
Factory & Builder Design Patterns are creational patterns used in software development to create objects.
Factory Design Pattern is used to create objects without specifying the exact class of object that will be created.
Builder Design Pattern is used to construct complex objects step by step.
Factory pattern uses a factory method to create objects, while Builder pattern uses a builder class to construct objects.
Factory pattern is a class-based pattern, while Builder pattern is...read more
Q21. mule 4 vs mule 3
Mule 4 offers improved performance, enhanced error handling, and better support for modern integration patterns compared to Mule 3.
Mule 4 has a more streamlined and efficient runtime engine.
Mule 4 provides better error handling capabilities with the introduction of Try scope.
Mule 4 supports more modern integration patterns like reactive programming.
Mule 4 offers improved dataweave capabilities for data transformation.
Mule 4 has a more modular architecture, making it easier to...read more
Q22. What is Dependency Injection?
Dependency Injection is a design pattern in which components are given their dependencies rather than creating them internally.
Allows for better code reusability and testability
Promotes loose coupling between components
Dependencies are injected into a class through constructor, setter method, or interface
Commonly used in frameworks like Spring for managing dependencies
Q23. write trigger
A trigger is a database object that automatically executes in response to certain events.
Triggers can be used to enforce business rules or data integrity.
They can be defined to execute before or after a data modification operation.
Triggers can be created using SQL statements.
Examples of events that can trigger a trigger include INSERT, UPDATE, and DELETE operations.
Q24. Stock buy sell problem
Find the maximum profit by buying and selling stocks once.
Iterate through the array and keep track of the minimum price seen so far.
Calculate the profit by subtracting the current price with the minimum price.
Update the maximum profit if a higher profit is found.
Return the maximum profit at the end.
Q25. Find duplicate element from array
Find duplicate element from array of strings
Iterate through the array and store each element in a HashSet
If an element is already in the HashSet, it is a duplicate
Q26. Delete element from linked list
To delete an element from a linked list, update the pointers of the previous node to skip the node to be deleted.
Traverse the linked list to find the node to be deleted
Update the 'next' pointer of the previous node to skip the node to be deleted
Free the memory allocated to the node to be deleted
Q27. css selectors and types
CSS selectors are used to target specific elements on a webpage for styling purposes.
CSS selectors can target elements based on their type, class, ID, attributes, and more
Examples: 'p' targets all
elements, '.class' targets elements with a specific class, '#id' targets elements with a specific ID
Combining selectors with spaces, commas, and other operators allows for more specific targeting
Q28. adaptive vs responsive
Adaptive design adjusts to different screen sizes based on predefined breakpoints, while responsive design fluidly resizes elements based on screen width.
Adaptive design uses predefined layouts for specific screen sizes
Responsive design fluidly adjusts elements based on screen width
Adaptive design may have fixed breakpoints for different devices
Responsive design is more flexible and can adapt to any screen size
Example: Adaptive design may have separate layouts for desktop, ta...read more
Q29. 403 status code meaning
403 status code means forbidden access to the requested resource.
403 status code indicates that the server understood the request but refuses to authorize it.
It is commonly used when the user does not have the necessary permissions to access the resource.
Examples include trying to access a restricted page without proper credentials or attempting to perform an action that requires higher privileges.
Q30. Introduce your experiance
I have over 8 years of experience in software development, specializing in backend development and system architecture.
Worked on designing and implementing scalable backend systems using Java and Spring framework
Led a team of developers in building a microservices architecture for a large e-commerce platform
Experience with cloud technologies such as AWS and Azure
Strong understanding of database design and optimization techniques
Q31. bean scopes in Spring boot
Bean scopes in Spring Boot determine the lifecycle and visibility of beans.
Singleton scope: Default scope, only one instance per Spring container
Prototype scope: New instance created each time bean is requested
Request scope: Bean created once per HTTP request
Session scope: Bean created once per HTTP session
Application scope: Bean created once per ServletContext
Q32. writing code using java8
Using Java 8 features to write efficient and concise code.
Utilize lambda expressions for functional programming
Use streams for processing collections in a more declarative way
Leverage default methods in interfaces for backward compatibility
Explore the new Date and Time API for improved handling of dates and times
Q33. Explain SOLID principle.
SOLID is a set of five design principles to make software designs more understandable, flexible, and maintainable.
S - Single Responsibility Principle: A class should have only one reason to change.
O - Open/Closed Principle: Software entities should be open for extension but closed for modification.
L - Liskov Substitution Principle: Objects of a superclass should be replaceable with objects of its subclasses without affecting the program's correctness.
I - Interface Segregation...read more
Q34. routing in angular
Routing in Angular allows navigation between different components in a single-page application.
Angular Router is a built-in library that provides navigation and routing functionality.
Routes are defined in the app-routing.module.ts file using RouterModule.forRoot() method.
Route parameters can be accessed using ActivatedRoute service in the component.
Lazy loading can be implemented to load modules only when needed for better performance.
Q35. finally vs finalize
finally is used in exception handling to define a block of code that will always be executed, while finalize is a method in Java used for cleanup operations before an object is destroyed.
finally is used in try-catch blocks to define a block of code that will always be executed, regardless of whether an exception is thrown or not
finalize is a method in Java that is called by the garbage collector before an object is destroyed
Example: try { // code that may throw an exception }...read more
Q36. test listeners types
Test listeners types are used in software testing to monitor and respond to events during test execution.
Types of test listeners include TestNG listeners, JUnit listeners, and custom listeners
TestNG listeners include ITestListener, ISuiteListener, and IInvokedMethodListener
JUnit listeners include RunListener and TestWatcher
Custom listeners can be created to handle specific events in test execution
Interview Process at Zamorin Global Ventures
Top Senior Software Engineer Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month