Software Engineer III
100+ Software Engineer III Interview Questions and Answers
Q51. 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.
Q52. 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
Q53. 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
Q54. 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.
Q55. 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
Q56. 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.
Share interview questions and help millions of jobseekers 🌟
Q57. 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
Q58. 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
Software Engineer III Jobs
Q59. 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
Q60. Find the largest subsequence in the given string.
Find the largest subsequence in a given string.
Iterate through the string and keep track of the current subsequence length
Update the length when encountering a character that is greater than the previous character
Return the longest subsequence found
Q61. System design + Projects that you worked on
I have experience in designing and implementing scalable systems for various projects.
Designed and implemented a microservices-based architecture for a healthcare platform
Developed a distributed system for real-time data processing using Apache Kafka and Spark
Optimized database schema and queries for a high-traffic e-commerce website
Implemented caching and load balancing strategies for a social media platform
Designed and developed a RESTful API for a mobile application
Q62. The program which checks String Reverse
The program checks if a given string is a palindrome or not.
Create a function that takes a string as input
Reverse the string and compare it with the original string
Return true if they are the same, false otherwise
Q63. What is Routing in MVC?
Routing in MVC is the process of mapping URLs to controller actions.
Routing determines which controller and action should handle a request.
Routes are defined in the RouteConfig.cs file.
Routes can include parameters that are passed to the controller action.
Routes can also include constraints to limit which requests match the route.
Example: /products/5 maps to the ProductsController's Details action with id parameter 5.
Q64. What is Angular Dependency Injection?
Angular Dependency Injection is a design pattern in Angular where objects are passed to a class instead of the class creating them.
Angular Dependency Injection allows for easier testing and reusability of code.
It helps in decoupling components and services in Angular applications.
Dependencies are provided at the root level or at component level using providers array in @NgModule or @Component decorator.
Example: @Injectable() decorator is used to define a service that can be i...read more
Q65. Difference b/w global and static variable in C
Global variables are accessible throughout the program, while static variables are limited to the scope in which they are defined.
Global variables are declared outside of any function and can be accessed by any function in the program.
Static variables are declared within a function and retain their value between function calls.
Example: int globalVar = 10; static int staticVar = 5;
Example: Global variable can be accessed in multiple functions, while static variable retains its...read more
Q66. Number of alternate substrings in a string.
Count the number of alternate substrings in a given string.
Iterate through the string and check for alternating characters.
Keep track of the count of alternate substrings found.
Return the total count of alternate substrings.
Q67. Familiarity with different Azure services
Familiarity with different Azure services is essential for a Software Engineer III role.
Understanding of Azure Virtual Machines for scalable computing
Knowledge of Azure Blob Storage for storing large amounts of unstructured data
Experience with Azure Functions for serverless computing
Familiarity with Azure SQL Database for relational database management
Understanding of Azure Cognitive Services for AI and machine learning capabilities
Q68. Technical architecture of current project
Microservices architecture using Docker containers and Kubernetes for scalability and flexibility.
Utilizing microservices to break down the application into smaller, independent services
Using Docker containers for easy deployment and scalability
Leveraging Kubernetes for orchestration and management of containers
Q69. What's new in .Net 7?
Some of the new features in .Net 7 include performance improvements, new language features, and enhanced tooling.
Performance improvements such as faster startup times and reduced memory usage
New language features like records, top-level statements, and pattern matching enhancements
Enhanced tooling with improved support for Visual Studio and Visual Studio Code
Support for ARM64 architecture and WebAssembly
Improved support for cloud-native applications and microservices
Q70. Cycle in linked list and behavioral
Detecting cycle in a linked list and discussing behavioral aspects
Explain how to use Floyd's Tortoise and Hare algorithm to detect a cycle in a linked list
Discuss the importance of understanding memory management in linked lists to prevent cycles
Explain the impact of cycles in linked lists on time complexity and space complexity of algorithms
Q71. design for a date picker in javascript
A date picker in JavaScript allows users to select a date from a calendar interface.
Use HTML input element with type 'date' for modern browsers
For older browsers, use a JavaScript library like jQuery UI Datepicker
Implement validation to ensure selected date is within acceptable range
Q72. right and left view of binary tree
To get the right and left view of a binary tree, perform a level order traversal and keep track of the first node encountered at each level.
Perform a level order traversal of the binary tree
Keep track of the first node encountered at each level for both left and right views
Store the first node encountered at each level in separate arrays for left and right views
Q73. Find maximum ZigZag length in a tree.
Find the maximum ZigZag length in a tree.
Perform a depth-first search (DFS) on the tree to traverse all nodes.
Keep track of the maximum ZigZag length encountered during traversal.
At each node, calculate the ZigZag length by comparing the depths of the left and right children.
Update the maximum ZigZag length if the current ZigZag length is greater.
Q74. Finding patterns in a stream of numbers
Finding patterns in a stream of numbers involves analyzing the sequence for recurring trends or relationships.
Look for repeating sequences or intervals in the numbers.
Check for arithmetic progressions or geometric progressions.
Consider using algorithms like sliding window or dynamic programming for efficient pattern detection.
Q75. Implement merge sort in linked list
Merge sort implemented in a linked list
Divide the linked list into two halves using slow and fast pointers
Recursively sort each half
Merge the sorted halves back together
Q76. System Design and current job role
I have experience in system design and currently work as a Software Engineer III.
I have designed scalable systems using microservices architecture.
I have implemented caching mechanisms to improve system performance.
I have worked on optimizing database queries for faster data retrieval.
I have experience in designing RESTful APIs for communication between different services.
Q77. sort 0 1 2 array binary tree left view
Sort an array of 0s, 1s, and 2s and find the left view of a binary tree.
To sort the array of 0s, 1s, and 2s, you can use the Dutch National Flag algorithm which sorts the array in a single pass.
To find the left view of a binary tree, perform a level order traversal and keep track of the first node at each level.
Q78. Difference between join and subqueries
Join is used to combine rows from two or more tables based on a related column, while subquery is a query nested within another query.
Join is used to retrieve data from multiple tables based on a related column
Subquery is a query nested within another query
Join is typically more efficient than subqueries for large datasets
Example: SELECT * FROM table1 JOIN table2 ON table1.id = table2.id
Example: SELECT * FROM table WHERE id IN (SELECT id FROM another_table)
Q79. LLD for a S3 or a storage based system
LLD for a S3 or a storage based system involves designing the detailed architecture and components of the system.
Define the data model including objects, metadata, and storage classes
Design the system components like storage nodes, metadata servers, and access control mechanisms
Consider scalability, fault tolerance, and data consistency in the design
Implement features like versioning, encryption, and access control policies
Optimize for performance and cost efficiency
Q80. HLD for a commerce application?
High Level Design (HLD) for a commerce application involves designing the overall architecture and components of the application.
Identify key components such as user interface, database, payment gateway, product catalog, and order processing.
Define the interactions between components and how data flows through the system.
Consider scalability, security, and performance requirements.
Use technologies like microservices architecture, RESTful APIs, and cloud services.
Example: Use ...read more
Q81. What are Solid Principles?
Solid Principles are a set of five design principles for writing maintainable and scalable software.
Single Responsibility Principle (SRP)
Open/Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
Q82. Low level design for ola uber
Low level design for a ride-sharing service like Ola or Uber
User requests a ride through the app
App calculates fare based on distance and time
Driver accepts the ride request
GPS tracking for real-time location updates
Payment processing through the app
Q83. Internal implementation of HashMap
HashMap is implemented using an array of linked lists to store key-value pairs.
HashMap consists of an array of buckets, each containing a linked list of key-value pairs.
Hashing function is used to determine the index of the bucket where a key-value pair will be stored.
Collision resolution techniques like chaining or open addressing are used to handle collisions.
HashMap allows null keys and values, but only one null key.
Example: HashMap
map = new HashMap<>();
Q84. OYO Rooms System design
OYO Rooms system design involves creating a platform for booking budget accommodations with standardized amenities.
Implement user-friendly interface for searching and booking rooms
Develop a robust backend system for managing bookings, payments, and room availability
Utilize data analytics to optimize pricing and room allocation
Integrate with third-party services for reviews, location mapping, and payment gateways
Q85. LLD for a storage based system
LLD for a storage based system involves designing the detailed architecture and components of the system to efficiently store and retrieve data.
Identify the requirements for the storage system, including data types, volume, access patterns, and performance expectations.
Design the data storage architecture, including data structures, indexing mechanisms, and storage technologies like databases or file systems.
Define the data access and retrieval mechanisms, such as APIs, proto...read more
Q86. Level of water between buildings
Determining the level of water between buildings based on various factors
Consider the elevation of each building
Take into account the distance between the buildings
Factor in any natural or man-made barriers that may affect water flow
Q87. Maximum Length of increasing subsequence
Find the maximum length of increasing subsequence in an array of strings.
Use dynamic programming to keep track of the length of increasing subsequences ending at each index.
Iterate through the array and update the length of increasing subsequences.
Return the maximum length found.
Q88. design patterns in java.
Design patterns in Java are reusable solutions to common problems in software design.
Design patterns help in creating maintainable and scalable code.
Examples include Singleton, Factory, Observer, Strategy, and Decorator patterns.
Each design pattern has its own purpose and implementation details.
Design patterns promote code reusability and flexibility in software development.
Q89. Instagram system design
Design a scalable system like Instagram for sharing photos and videos
Use a distributed architecture with multiple servers for handling user uploads, storage, and retrieval
Implement a content delivery network (CDN) for fast delivery of media content to users worldwide
Utilize a database system for storing user data, media metadata, and relationships between users and content
Incorporate caching mechanisms to improve performance and reduce load on the database
Implement a notifica...read more
Q90. Lifetime scopes in .Net
Lifetime scopes in .Net refer to the lifespan of objects managed by a dependency injection container.
Lifetime scopes define how long an object should exist within the container
Common lifetime scopes include transient, singleton, scoped
Transient objects are created each time they are requested
Singleton objects are created once and reused for the lifetime of the application
Scoped objects are created once per request or scope
Q91. SIngle sign on process
Single sign-on (SSO) is a process that allows users to access multiple applications with a single set of login credentials.
SSO eliminates the need for users to remember multiple usernames and passwords.
It improves security by reducing the risk of password-related security breaches.
SSO can be implemented using various protocols such as SAML, OAuth, and OpenID Connect.
Examples of SSO providers include Okta, OneLogin, and Microsoft Azure AD.
Q92. SAML process explain
SAML is a protocol used for exchanging authentication and authorization data between parties.
SAML stands for Security Assertion Markup Language.
It is used for single sign-on (SSO) authentication.
SAML has three main components: the identity provider (IDP), the service provider (SP), and the user.
The SAML process involves the user requesting access to a service, the SP redirecting the user to the IDP for authentication, the IDP authenticating the user and generating a SAML asse...read more
Q93. What are PropTypes
PropTypes are a way to type-check props in React components to ensure they are passed correctly.
Used in React to specify the data type of props passed to a component
Helps catch bugs by providing warnings if incorrect data types are passed
Can be defined using PropTypes library or as static properties in a component
Q94. HLD of order processing system
The High-Level Design (HLD) of an order processing system involves outlining the overall architecture and components of the system.
Identify the main components of the system such as order creation, order validation, order fulfillment, and order tracking.
Define the interactions between these components and how data flows between them.
Consider scalability, fault tolerance, and performance requirements in the design.
Include details on data storage, processing logic, and external...read more
Q95. Multithreading in Java
Multithreading in Java allows multiple threads to execute concurrently, improving performance and responsiveness.
Multithreading in Java is achieved by extending the Thread class or implementing the Runnable interface.
Threads share the same memory space, so synchronization is important to prevent data corruption.
Java provides synchronized keyword, locks, and concurrent data structures for thread safety.
Example: Creating a new thread - Thread thread = new Thread(new MyRunnable(...read more
Q96. Remove Leaf Nodes of Tree
Remove leaf nodes of a tree
Traverse the tree in postorder fashion
For each node, check if it is a leaf node (both children are null)
If it is a leaf node, remove it by setting its parent's reference to null
Q97. Train water trapping problem
Train water trapping problem involves calculating the amount of water that can be trapped between blocks.
Calculate the maximum height of blocks on left and right of each block
Find the minimum of the two heights and subtract the height of the current block to get trapped water
Sum up the trapped water for all blocks to get total trapped water
Q98. Cycle detection in graph
Cycle detection in graph involves detecting if there is a cycle present in a graph data structure.
Use Depth First Search (DFS) or Breadth First Search (BFS) to detect cycles in a graph.
Maintain a visited set to keep track of visited nodes and a recursion stack to keep track of nodes in the current path.
If a node is visited again and is in the recursion stack, then a cycle is detected.
Example: Detecting a cycle in a directed graph using DFS.
Q99. Design a note taking app
A note taking app that allows users to create, edit, and organize their notes.
Implement a user interface for creating and editing notes
Include features like text formatting, image attachments, and voice recordings
Provide options for organizing notes into folders or categories
Include search functionality to easily find specific notes
Implement synchronization across devices for seamless access to notes
Q100. Create a timer in react
Create a timer in React using useState and useEffect hooks
Use useState hook to store the timer value
Use useEffect hook to update the timer value every second
Display the timer value in the component's render method
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