Software Engineer III
100+ Software Engineer III Interview Questions and Answers
Q1. Find the highest floor, from where if an egg is dropped will not break. k floor building and n eggs are given.
Find the highest floor from where an egg won't break, given k floors and n eggs.
Use binary search to minimize the number of drops.
Start from the middle floor and drop the egg.
If it breaks, search in the lower half, else search in the upper half.
Repeat until the highest floor is found.
Q2. What would be the ideal data structure to represent people and friend relations in facebook
Graph
Use a graph data structure to represent people as nodes and friend relations as edges
Each person can be represented as a node with their unique identifier
Friend relations can be represented as directed edges between nodes
This allows for efficient traversal and retrieval of friend connections
Software Engineer III Interview Questions and Answers for Freshers
Q3. Custom implementation of stack where there are two additional methods that return the min and max of the elements in the stack
Custom stack with methods to return min and max elements
Implement a stack using an array or linked list
Track the minimum and maximum elements using additional variables
Update the minimum and maximum variables during push and pop operations
Implement methods to return the minimum and maximum elements
Q4. =>What is garbage collection in c# =>What is dispose and finalise in c# =>What is managed resoures and unmanaged resource in c# =>what is clr,cls,and cts in c# =>what is singleton pattern in c# =>filters order ...
read moreTechnical interview questions for Software Engineer III position
Garbage collection in C# is an automatic memory management process
Dispose and Finalize are methods used to release resources
Managed resources are objects that are managed by the .NET runtime, while unmanaged resources are external resources that are not managed by the runtime
CLR (Common Language Runtime) is the virtual machine component of .NET, CLS (Common Language Specification) is a set of rules that language ...read more
Q5. Given a tree and a node, print all ancestors of Node
Given a tree and a node, print all ancestors of Node
Start from the given node and traverse up the tree
While traversing, keep track of the parent nodes
Print the parent nodes as you traverse up until reaching the root
Q6. Explain useState for managing state, useEffect for handling side effects, useMemo for performance optimization, and useCallback for memoizing functions. Understand how these hooks enhance functional components.
Explanation of useState, useEffect, useMemo, and useCallback hooks in React functional components.
useState is used to manage state in functional components
useEffect is used for handling side effects like data fetching, subscriptions, etc.
useMemo is used for performance optimization by memoizing expensive calculations
useCallback is used for memoizing functions to prevent unnecessary re-renders
These hooks enhance functional components by providing state management, side effect ...read more
Share interview questions and help millions of jobseekers 🌟
Q7. How to add and manipulate elements in arrays using JavaScript (e.g., inserting "watermelon" in the middle)?
To add and manipulate elements in arrays using JavaScript, you can use array methods like splice() and slice().
Use the splice() method to insert elements into an array at a specific index. For example, arr.splice(index, 0, 'watermelon') will insert 'watermelon' at the specified index without removing any elements.
To manipulate elements in an array, you can use methods like splice() to remove elements or slice() to extract a portion of the array.
Remember that arrays in JavaScr...read more
Q8. Code to determine the median of datapoints present in two sorted arrays. Most efficient algo
Code to find median of datapoints in two sorted arrays
Use binary search to find the median index
Divide the arrays into two halves based on the median index
Compare the middle elements of the two halves to determine the median
Software Engineer III Jobs
Q9. Explain object oriented concepts and design in detail.
Object-oriented concepts involve creating classes and objects to organize and structure code.
Classes define the properties and behaviors of objects
Objects are instances of classes that can interact with each other
Inheritance allows for the creation of subclasses that inherit properties and behaviors from a parent class
Polymorphism allows for objects to take on multiple forms and behave differently depending on the context
Encapsulation involves hiding the implementation detail...read more
Q10. Microservices and their communication patterns. How is it implemented in your project and why?
Microservices are implemented using RESTful APIs and message brokers for asynchronous communication.
RESTful APIs are used for synchronous communication between microservices.
Message brokers like Kafka or RabbitMQ are used for asynchronous communication.
Microservices communicate with each other using HTTP requests and responses.
Each microservice has its own database and communicates with other microservices through APIs.
Microservices are loosely coupled and can be developed an...read more
Q11. How do you approach a problem you don't know to solve?
I break down the problem into smaller parts and research each part to find a solution.
Identify the problem and its requirements
Break down the problem into smaller parts
Research each part to find a solution
Try different approaches and test them
Collaborate with colleagues or seek help from online communities
Q12. Understand setting up a Redux store, connecting components, and managing actions and reducers. Be familiar with middleware like Redux Thunk or Redux Saga for handling asynchronous actions.
Setting up Redux store, connecting components, managing actions and reducers, and using middleware like Redux Thunk or Redux Saga for handling asynchronous actions.
Setting up a Redux store involves creating a store with createStore() function from Redux, combining reducers with combineReducers(), and applying middleware like Redux Thunk or Redux Saga.
Connecting components to the Redux store can be done using the connect() function from react-redux library, which allows compon...read more
Q13. 1. Create a program for a Race, where 5 people will start the race at the same time and return who finishes first. using multithreading.
A program to simulate a race with 5 people using multithreading and determine the winner.
Create a class for the race participants
Implement the Runnable interface for each participant
Use a thread pool to manage the threads
Start all threads simultaneously
Wait for all threads to finish
Determine the winner based on the finishing time
Q14. Which design pattern you follow and why? Show some example.
I follow the MVC design pattern as it separates concerns and promotes code reusability.
MVC separates the application into Model, View, and Controller components.
Model represents the data and business logic.
View represents the user interface.
Controller handles user input and updates the model and view accordingly.
MVC promotes code reusability and maintainability.
Example: Ruby on Rails framework follows MVC pattern.
Q15. Explain layers of OSI model. Which one would you use OSI or TCP/UDP and why? Explain with example.
The OSI model has 7 layers. OSI or TCP/UDP depends on the application. OSI is used for theoretical understanding while TCP/UDP is used for practical implementation.
The 7 layers of OSI model are Physical, Data Link, Network, Transport, Session, Presentation, and Application.
OSI model is used for theoretical understanding of networking concepts.
TCP/UDP are used for practical implementation of networking protocols.
TCP is used for reliable data transfer while UDP is used for fast...read more
Q16. 1. What is Compile time and run time polymorphism? 2. What is multiple inheritance in java 3. Questions on Spring boot. 4. Program using ArrayList and remove duplicate elements. 5. Program using rest api.
Compile time polymorphism is method overloading, while run time polymorphism is method overriding. Multiple inheritance is not supported in Java.
Compile time polymorphism is achieved through method overloading, where multiple methods have the same name but different parameters.
Run time polymorphism is achieved through method overriding, where a subclass provides a specific implementation of a method that is already defined in its superclass.
Java does not support multiple inhe...read more
Q17. Mocking components in Jest, including handling props and named exports
Mocking components in Jest for testing with props and named exports
Use jest.mock() to mock components and their exports
For handling props, use jest.fn() to create mock functions and pass them as props to the component being tested
For named exports, use jest.mock() with a second argument to specify the module's exports
Q18. Design a Garbage collector similar to Java Garbage Collector with minimum configurations.
Design a Java-like Garbage Collector with minimal configurations.
Choose a garbage collection algorithm (e.g. mark-and-sweep, copying, generational)
Determine the heap size and divide it into regions (e.g. young, old, permanent)
Implement a root set to keep track of live objects
Set thresholds for garbage collection (e.g. occupancy, time)
Implement the garbage collection algorithm and test for memory leaks
Q19. 7. Which data structure you will use to search a lot of data.
I would use a hash table for efficient searching of a lot of data.
Hash tables provide constant time complexity for search operations.
They use a hash function to map keys to array indices, allowing for quick retrieval of data.
Examples of hash table implementations include dictionaries in Python and HashMaps in Java.
Q20. One programming question to print only unique numbers from given array.
Print unique numbers from given array of strings.
Convert array of strings to array of integers.
Use a set to store unique numbers.
Iterate through array and add numbers to set if not already present.
Print out the unique numbers from the set.
Q21. what is memoization, also write polyfill of memoize
Memoization is a technique used in programming to store the results of expensive function calls and return the cached result when the same inputs occur again.
Memoization helps improve the performance of a function by caching its results.
It is commonly used in dynamic programming to optimize recursive algorithms.
Example: Memoizing a Fibonacci function to avoid redundant calculations.
Q22. 3. How request flows in Spring boot MVC. 4. how many ways to instantiate a bean? 5. what will you do in case of a Java out-of-memory exception?
Request flows in Spring Boot MVC, ways to instantiate a bean, and handling Java out-of-memory exception.
Request flows in Spring Boot MVC: DispatcherServlet receives HTTP request, HandlerMapping maps request to appropriate controller, Controller processes request and returns response.
Ways to instantiate a bean: Constructor injection, setter injection, and using the @Bean annotation.
Handling Java out-of-memory exception: Analyze memory usage, increase heap size, optimize code, ...read more
Q23. Write program for matrix diagonal & anti diagonal sum.
Program to calculate diagonal and anti-diagonal sum of a matrix.
Iterate through the matrix to calculate diagonal and anti-diagonal sums separately.
For diagonal sum, add elements where row index equals column index.
For anti-diagonal sum, add elements where row index + column index equals matrix size - 1.
Example: For a 3x3 matrix, diagonal sum = matrix[0][0] + matrix[1][1] + matrix[2][2]
Example: For a 3x3 matrix, anti-diagonal sum = matrix[0][2] + matrix[1][1] + matrix[2][0]
Q24. Machine coding to build a basic data grid component
Implement a basic data grid component using machine coding
Start by defining the structure of the data grid component
Implement functions for adding, updating, and deleting data in the grid
Include features like sorting, filtering, and pagination
Consider performance optimizations for handling large datasets
Test the data grid component with sample data to ensure functionality
Q25. polyfill of promise.all and debounce. use debounce in example
Implement polyfill of promise.all and debounce function with example
Create a polyfill for Promise.all by using Promise constructor and Promise.resolve
Implement debounce function by using setTimeout and clearTimeout
Example: const debouncedFunction = debounce(() => { console.log('debounced function called') }, 300)
Q26. Internal working of the segmentation fault, how the compiler knows it is a segmentation error.
Segmentation fault occurs when a program tries to access memory it doesn't have permission to access.
Segmentation fault occurs when a program tries to access memory outside of its allocated space.
Compiler detects segmentation faults by checking memory access permissions during compilation.
Segmentation faults are typically caused by dereferencing a null pointer or accessing an out-of-bounds array element.
Q27. Use and purpose of Math.floor() in JavaScript.
Math.floor() is a method in JavaScript that rounds a number down to the nearest integer.
Math.floor() returns the largest integer less than or equal to a given number.
It is commonly used to convert a floating-point number to an integer.
Example: Math.floor(3.9) returns 3.
Q28. what is Promise also write polyfill for Promise
A Promise is an object representing the eventual completion or failure of an asynchronous operation.
A Promise is used to handle asynchronous operations in JavaScript.
It represents a value that may be available now, or in the future.
A polyfill for Promise can be implemented using the setTimeout function to simulate asynchronous behavior.
Q29. Use two thread two print From 1 to 10 where Thread A will be for odd and Thread B will be for even.
Use two threads to print numbers 1 to 10, with Thread A printing odd numbers and Thread B printing even numbers.
Create two threads, one for odd numbers and one for even numbers
Use a shared variable to keep track of the current number being printed
Use synchronization mechanisms like mutex or semaphore to ensure proper sequencing of numbers
Q30. Coding Round: Finding a coupon for given category in category tree. If category has no coupon, get its parent's coupon.
Find a coupon for a given category in a category tree, falling back to parent's coupon if necessary.
Traverse the category tree starting from the given category
Check if the current category has a coupon, if not move up to its parent
Repeat until a coupon is found or reach the root category
Q31. Word break String to Integer System design e commerce app
The interviewee was asked about word break, string to integer, and system design for an e-commerce app.
Word break: Given a string and a dictionary of words, determine if the string can be segmented into a space-separated sequence of dictionary words.
String to integer: Convert a string to an integer. Handle negative numbers and invalid inputs.
System design e-commerce app: Design an e-commerce app with features like product listing, search, cart, checkout, payment, and order tr...read more
Q32. Reverse a linked list
Reverse a linked list
Iterate through the linked list and change the direction of the pointers
Use three pointers to keep track of the previous, current, and next nodes
Recursively reverse the linked list
Q33. What do you know about Kafka and it's usage?
Kafka is a distributed streaming platform used for building real-time data pipelines and streaming applications.
Kafka is designed to handle high-throughput, fault-tolerant, and scalable real-time data streams.
It allows for the publishing and subscribing to streams of records, similar to a message queue.
Kafka is often used for log aggregation, stream processing, event sourcing, and real-time analytics.
It provides durability and fault tolerance through replication of data acros...read more
Q34. What are Data Annotations?
Data Annotations are attributes used in .NET Framework to provide metadata about data elements.
Data Annotations are used to validate data in models.
They can be used to specify data types, display names, and format strings.
Examples include [Required], [StringLength], and [RegularExpression].
Q35. Why HashedIn ? How was your interview experience? Have will you handle difference of opinion With a team ? Share an experience where you resolved a critical issue ?
I chose HashedIn for its innovative projects and collaborative work culture.
Innovative projects attracted me to HashedIn
I value the collaborative work culture at HashedIn
I appreciate the opportunities for growth and learning at HashedIn
I was impressed by the team's technical expertise during the interview process
Q36. Code to covert number into words For ex. 11 -> Eleven
Convert a number into words
Create an array of strings to represent numbers from 0 to 19
Use conditional statements to handle numbers from 20 to 99
Consider special cases like multiples of 10 and teens
Q37. Find index of second smallest and second largest element in an array
Find index of second smallest and second largest element in an array of strings
Convert the array of strings to an array of integers for comparison
Sort the array to easily find the second smallest and second largest elements
Track the indices of the elements as you iterate through the sorted array
Q38. 6. What are static, final, and abstract in Java
Static, final, and abstract are keywords in Java used for different purposes.
Static is used to create variables and methods that belong to the class rather than an instance of the class.
Final is used to declare constants or to prevent a class, method, or variable from being overridden or modified.
Abstract is used to create abstract classes and methods that cannot be instantiated and must be implemented by subclasses.
Q39. Write program in c# describing all OOPs concepts.
Program in C# demonstrating OOPs concepts
Use classes and objects to demonstrate encapsulation
Inheritance can be shown by creating a base class and derived classes
Polymorphism can be illustrated through method overriding or interfaces
Abstraction can be implemented by hiding internal details and showing only necessary information
Q40. How would you tune a Stored Procedure?
To tune a Stored Procedure, identify bottlenecks, optimize queries, and use indexes.
Identify slow queries and optimize them
Use indexes to improve query performance
Avoid using cursors and temporary tables
Minimize network traffic by reducing data returned
Use SET NOCOUNT ON to reduce network traffic
Use stored procedure parameters instead of constants or variables
Use TRY/CATCH blocks to handle errors
Monitor performance using SQL Server Profiler and Database Engine Tuning Advisor
Q41. Print even and odd numbers using two threads simultaneously so it should print in sequence
Use two threads to print even and odd numbers in sequence
Create two threads, one for printing even numbers and one for printing odd numbers
Use synchronization mechanisms like mutex or semaphore to ensure numbers are printed in sequence
Start both threads simultaneously and let them print numbers alternately
Q42. find the longest substring in string without repeating characters
Find the longest substring in a string without repeating characters.
Use a sliding window approach to iterate through the string.
Keep track of the characters seen so far in a set.
Update the start of the window when a repeating character is encountered.
Calculate the length of the current substring and update the longest substring found.
Repeat until the end of the string is reached.
Q43. use of microsevices in java. and its implmenatation
Microservices in Java are a way to design software applications as a collection of small, loosely coupled services.
Microservices architecture breaks down a large application into smaller, independent services that can be developed, deployed, and scaled independently.
Each microservice typically focuses on a specific business function and communicates with other services through APIs.
Java is a popular language for implementing microservices due to its strong ecosystem, librarie...read more
Q44. How do you scale the application?
Scaling the application involves optimizing performance, increasing capacity, and ensuring reliability.
Implementing load balancing to distribute traffic evenly across multiple servers
Using caching mechanisms to reduce database load and improve response times
Utilizing horizontal scaling by adding more servers to handle increased traffic
Optimizing database queries and indexes for faster data retrieval
Implementing microservices architecture to break down the application into sma...read more
Q45. find the height of binary tree using recursion?
Recursively find the height of a binary tree by comparing the heights of left and right subtrees.
Start by checking if the root is null, return -1 if so.
Recursively find the height of the left subtree and right subtree.
Return the maximum of the heights of the left and right subtrees, plus 1 for the current node.
Q46. what is java8. its features and uses
Java 8 is a major release of the Java programming language with new features like lambda expressions, streams, and default methods.
Lambda expressions allow functional programming in Java.
Streams provide a new way to work with collections in a more concise and efficient manner.
Default methods allow interfaces to have method implementations.
Java 8 also introduced the new Date and Time API for better handling of date and time.
The Optional class helps to avoid NullPointerExceptio...read more
Q47. Given a Tree with 0's and 1's find number of distinct islands. Joined 1's together form an island.
Count the number of distinct islands in a tree with 0's and 1's where joined 1's form an island.
Traverse the tree and identify connected components of 1's to form islands.
Use a set to store the unique shapes of islands to avoid counting duplicates.
Consider different shapes of islands like horizontal, vertical, diagonal, etc.
Example: [['1', '0', '1'], ['1', '1', '0']] has 2 distinct islands.
Q48. Map based problem to find shortest path in 0 and 1
Map based problem to find shortest path in 0 and 1
Use BFS to traverse the map
Create a 2D array to store the map
Assign a weight of 1 to 0 and infinity to 1
Update the weight of each cell based on its neighbors
Keep track of the shortest path found so far
Q49. Design Chatbot that support 1-1 as well as group chats
Design a chatbot that supports both 1-1 and group chats
Implement a user authentication system to differentiate between 1-1 and group chats
Create separate chat rooms for group chats where multiple users can join
Include features like message notifications, file sharing, and message search functionality
Utilize natural language processing to understand and respond to user messages
Allow users to customize their chatbot settings and preferences
Q50. 2. write get and put methods of Java Hashamap.
The get and put methods of Java HashMap are used to retrieve and store key-value pairs respectively.
To retrieve a value from a HashMap, use the get() method and pass the key as a parameter.
To store a key-value pair in a HashMap, use the put() method and pass the key and value as parameters.
Example: HashMap
map = new HashMap<>(); map.put("apple", 5); int count = map.get("apple"); // returns 5
Top Interview Questions for Software Engineer III Related Skills
Interview experiences of popular companies
Calculate your in-hand salary
Confused about how your in-hand salary is calculated? Enter your annual salary (CTC) and get your in-hand salary
Reviews
Interviews
Salaries
Users/Month