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. What is a Java-based solution to the problem of sorting names that have Roman numerals as their last names?
Use a custom Comparator to sort names with Roman numerals as last names in Java.
Create a custom Comparator that splits the names into parts and compares the Roman numerals separately.
Use regular expressions to identify and extract the Roman numerals from the last names.
Implement the Comparator interface and override the compare method to sort the names based on the Roman numerals.
Example: Input array - ['John Smith III', 'Alice Brown II', 'David Lee IV']
Q18. 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
Q19. 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
Q20. 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.
Q21. 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.
Q22. 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.
Q23. 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
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. 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]
Q27. 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.
Q28. 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.
Q29. What are the key components of frontend system design?
Key components of frontend system design include user interface, data management, state management, and performance optimization.
User Interface: Designing the layout, navigation, and visual elements of the frontend.
Data Management: Handling data fetching, storage, and manipulation within the frontend.
State Management: Managing the state of the application to ensure data consistency and reactivity.
Performance Optimization: Optimizing the frontend code and assets for faster loa...read more
Q30. What is the architecture of the Java Virtual Machine (JVM)?
JVM is an abstract computing machine that enables a computer to run Java programs.
JVM is platform-independent and converts Java bytecode into machine code.
It consists of class loader, runtime data areas, execution engine, and native method interface.
JVM manages memory, garbage collection, and exception handling.
Examples of JVM implementations include Oracle HotSpot, OpenJ9, and GraalVM.
Q31. What is the internal working mechanism of a hashmap?
A hashmap is a data structure that stores key-value pairs and uses a hash function to map keys to their corresponding values.
Hashmap uses a hash function to determine the index of the key-value pair in the underlying array.
Collisions can occur when multiple keys hash to the same index, which is resolved using techniques like chaining or open addressing.
Hashmap typically has an underlying array where each element is a linked list of key-value pairs with the same hash value.
Ret...read more
Q32. What is the system design for a hotel management system?
A hotel management system is a software application that helps manage various aspects of a hotel's operations, such as reservations, check-ins, check-outs, room assignments, billing, and more.
Use a relational database to store information about rooms, guests, reservations, and transactions
Implement user interfaces for staff to manage bookings, check availability, and process payments
Incorporate features for guests to make reservations online, view room options, and provide fe...read more
Q33. 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.
Q34. 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
Q35. 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
Q36. 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
Q37. What is the detailed process involved in searching for google.com?
The detailed process of searching for google.com involves DNS resolution, HTTP request, server response, and rendering the webpage.
1. User enters 'google.com' in the browser address bar.
2. Browser checks cache for DNS resolution, if not found, sends a DNS query to resolve the domain name to an IP address.
3. Browser sends an HTTP request to the resolved IP address for google.com.
4. Google's server processes the request, retrieves the webpage content, and sends it back in an HT...read more
Q38. 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
Q39. 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
Q40. 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].
Q41. 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
Q42. 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
Q43. 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
Q44. 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.
Q45. 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
Q46. What are the basics of JavaScript and ES6 modules?
JavaScript is a popular programming language used for web development. ES6 modules are a way to organize and reuse code in JavaScript.
JavaScript is a high-level, interpreted programming language commonly used for client-side web development.
ES6 modules allow developers to split their code into separate files and import/export functions, variables, and classes between them.
ES6 introduced 'import' and 'export' keywords for module management.
Example: 'export function myFunction(...read more
Q47. What is the operational mechanism of Apache Kafka?
Apache Kafka is a distributed streaming platform that is used for building real-time data pipelines and streaming applications.
Apache Kafka uses a publish-subscribe messaging system where producers publish messages to topics and consumers subscribe to those topics to receive messages.
It stores messages in topics for a configurable retention period, allowing consumers to access historical data.
Kafka brokers form a cluster to manage topics and partitions, ensuring fault toleran...read more
Q48. 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
Q49. 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
Q50. 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.
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