Software Engineer III

100+ Software Engineer III Interview Questions and Answers

Updated 21 Nov 2024

Popular Companies

search-icon

Q1. Find the highest floor, from where if an egg is dropped will not break. k floor building and n eggs are given.

Ans.

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

Ans.

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

illustration image

Q3. Custom implementation of stack where there are two additional methods that return the min and max of the elements in the stack

Ans.

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 more
Ans.

Technical 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

Are these interview questions helpful?

Q5. Given a tree and a node, print all ancestors of Node

Ans.

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.

Ans.

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 🌟

man-with-laptop

Q7. How to add and manipulate elements in arrays using JavaScript (e.g., inserting "watermelon" in the middle)?

Ans.

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

Ans.

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

Software Engineer III 3-8 years
JPMorgan Chase
4.1
Pune
Software Engineer III - KDB + Python Developer 3-8 years
JPMorgan Chase
4.1
Bangalore / Bengaluru
Software Engineer III - Temenos 3-8 years
JPMorgan Chase
4.1
Bangalore / Bengaluru

Q9. Explain object oriented concepts and design in detail.

Ans.

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?

Ans.

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?

Ans.

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.

Ans.

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.

Ans.

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.

Ans.

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.

Ans.

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.

Ans.

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

Ans.

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.

Ans.

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.

Ans.

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.

Ans.

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

Ans.

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?

Ans.

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.

Ans.

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

Ans.

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

Ans.

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.

Ans.

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.

Ans.

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

Ans.

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.

Ans.

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.

Ans.

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

Ans.

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

Ans.

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

Frequently asked in,

Q33. What do you know about Kafka and it's usage?

Ans.

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?

Ans.

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 ?

Ans.

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

Ans.

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

Ans.

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

Ans.

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.

Ans.

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?

Ans.

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

Ans.

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

Ans.

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

Ans.

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?

Ans.

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?

Ans.

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

Ans.

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.

Ans.

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

Ans.

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

Ans.

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.

Ans.

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

1
2
Next
Interview Tips & Stories
Ace your next interview with expert advice and inspiring stories

Interview experiences of popular companies

4.4
 • 811 Interviews
3.9
 • 390 Interviews
3.9
 • 78 Interviews
3.7
 • 52 Interviews
3.7
 • 44 Interviews
3.8
 • 21 Interviews
4.2
 • 8 Interviews
View all

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

Software Engineer III Interview Questions
Share an Interview
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter