profile-pic

Sushil Munda

A B.Tech graduate from IIT Guwahati in Chemical Engineering, I leverage technical skills in AWS, React, and Node.js to build durable and efficient systems. Motivated by a commitment to excellence, I aim to simplify complex problems through innovative development practices while contributing to impactful, data-driven so

  • Role

    Software Development & Jira Engineer

  • Years of Experience

    3.7 years

  • Professional Portfolio

    View here

Skillsets

  • HTML
  • WebSocket
  • VS Code
  • TypeScript
  • Postman
  • PostgreSQL
  • Nodejs
  • MySQL
  • Jira
  • Jest
  • JavaScript - 2.5 Years
  • GitLab
  • Github
  • Git
  • Express
  • CSS
  • Bootstrap
  • AWS
  • react - 2.9 Years

Professional Summary

3.7Years
  • Oct, 2025 - Present1 yr

    Software Engineer

    Talentica Software
  • Oct, 2024 - Oct, 20251 yr

    Software Development Engineer

    IQVIA
  • Jul, 2022 - Sep, 20242 yr 2 months

    Associate Software Engineering

    IQVIA

Applications & Tools Known

  • icon-tool

    GitHub

  • icon-tool

    Postman

  • icon-tool

    VS Code

Work History

3.7Years

Software Engineer

Talentica Software
Oct, 2025 - Present1 yr

Software Development Engineer

IQVIA
Oct, 2024 - Oct, 20251 yr
    Design and developed robust, scalable and high-performance software solutions using JavaScript, TypeScript, AWS Cloud storage solutions. Integrated third-party APIs ans services including Microsoft Graph APIs and Office Add-ins platform, ensuring seamless user experiences and functionality across platforms. Implemented unit tests, integration tests using Jest and React Testing Library(RTL) to ensure high-quality and bug-free code, reducing post-release.

Associate Software Engineering

IQVIA
Jul, 2022 - Sep, 20242 yr 2 months
    Assisted with the design/development of software solutions requiring general domain knowledge and limited business experience. Worked at all layers of the application stack including front-end user interface and backend development. Troubleshooted code issues and evolved IQVIAs platforms to meet user requirements/needs. Participated in the review of functional specifications and other validation deliverables as assigned. Developed an introductory understanding of industry and IQVIA-specific quality standards.

Major Projects

1Projects

CUSTOMER BUYING EXPERIENCE

Oct, 2022 - Present4 yr
    Designed and implemented the user interface using React, ensuring the table is highly responsive and supports real-time updates. Created RESTful APIs using Express to handle client requests for adding, modifying and deleting table rows/columns, ensuring the backend logic is robust and optimized. Implemented real-time updates for concurrent users, ensuring that all changes made by one user are immediately reflected in the UI of others using WebSockets. Wrote unit and integration tests to ensure the stability and reliability of the application under various use cases using Jest and RTL. Developed an integration solution using Microsoft Graph API to send email from Outlook within application. Integrated the Word Add-In using the Office JavaScript API and Office Add-ins platform enabling seamless interaction between the web application and Microsoft Word.

Education

  • B.Tech in Chemical Engineering

    Indian Institute of Technology, Guwahati (2022)
  • Science - CBSE

    Jawahar Navodaya Vidyalaya, Sundargarh, Odisha (2017)

A Few Screening Questions Before You Begin

The time complexity will be of n square. If array one has a length of n and array two has a length of n, then the time complexity will be of n square. Or if area one has a length of m and array two has a length of n, then the time complexity will be m times n.

So, basically, here we are trying to find the target element. From this array, we need two elements. Full summation will be the target element. So here, what we can do is have a hash table where we put the subtraction from each element from the target element, and we can have this data in one hash table. And when we are iterating through each array, we can just check who's over the subtraction of the target element minus the element is present in the hash table. We can extract the element if that is present in the area or not. So in that way, we can just have the required element, the required two elements from the array. So that way, we can have a better time complexity close to n, and it will be the area of length.

So here, the first issue, what I can see is that the it's service one down. So it is a function. So we need to first test the definition or declaration of this is service one down, first of all. Then because currently if that is not present, then it will give us an error. So then if we go to the next statement or condition, it's referred to services which is coming through a parameter, and it's present. So it's problem says that all the parameters are passed correctly. So it's fine. Then if we go to the next statement, it says it should split load. So here as well. So the speed split load is not defined or not. Then if we go inside, we have an if condition, which says that each time consuming or each premium. So these two are coming through parameters, so it will work properly. Then if any of them or any one of them is true, then it will execute the return service one. So each return service one is also there, it will be working correctly. Then if both of these time consuming or is premium is first, then it will go to the next step when we return service two. Then we have another if condition, which is split load only for premium. So and here, I think every function is all functions used are also working correctly, it says. So if it's fine, then it will execute the each premium and the return service one. So this problem says that every functions are declared and all parameters are passed. So we need to check the return type of it. So based on is premium is true or not, then we need to return the service one. And if is premium is false, then we need to go for service two. Okay? So and we have here service one is fast and premium service, and service two is it's slow and nonpremium. So based on these two parameters, is premium or is time consuming. So it's time consuming, then we need to go for and go for the service one if we have is premium is true. Okay? And the last so from this function, which service to use if everything is false, like if you're not going with the premium one, it's pretty much false, and it's time consuming is also true, then it will be our return service, return service two. So yeah. So like that way, we need to test each scenario here.

Given two line segments, can you give the logic to know whether these two lines has been overlaps or not? Okay. Start and end points to be inclusive. Can you give me the logic to know whether these two lines has been coalesced or not? Okay. Line one. Start. Line one. Line one. Two. And okay. Six seven. Five six seven. Yeah. To check the overlap here, we can just so we have a line one start and line one end. Okay? So if line one start is greater than line two start, then it will not overlap. And if line one end is greater than line two start, then that condition also makes it not overlapping. The first condition will be the line one start if is greater than line two start. This is the first condition, and the second will be the line one end if is greater than line two start, then in that condition also, the line will not be overlap. Then the line two one condition will be also there. Like, if line two end is less than line one end is line, less than line two end. So let me just recheck. Yeah. So, from this two-dimensional area, so each line one and line two will not overlap if line one start is less than line two start. And if line one end is less than line two start, and the line one end is less than also line two end. So in that case, it will not overlap. In other cases, it will overlap.

User defined, then, we're back together, calling an API. Post. Okay. Count. 10 response. So, basically, here, we are trying to call an API to what we are trying to do here, it's under stringify dot count. Okay. We're fetching the count from the API. No. No. No. We are doing what we're doing here? But if we let's see. Increment twice. If you're doing that, then we should increase the value by two, not by one. Okay. And set count. Okay. So here, the issue is basically. So here, this set count to count plus one and the set count to count plus one. This will increase by one only. So if you're trying to increase by two, then why can't we just increment count by two? And set the const decrement. If count is greater than zero, set count minus one. Okay. It looks good if we're trying to decrease by one. Yeah. If count is greater than zero, we are decreasing. And I'm not getting why we are doing what we're trying to do here. Method post and JSON to stringify. JSON stringify. Okay. We are creating. I'll do here. There we are. So we'll be passed here. And yeah. So we need to handle the error here as well. So, like, whether this API call is getting passed or not. So based on that, maybe we need to execute once. But we need to, so if we're trying to save the data or care data, this user, it will be called once. Okay? So during mount of this component. And some method says that it will create a post, it will create one record in the table. But it says, if you don't have any dependency, then it will not be executed later. So we need to have a dependency on that if you're trying to create a record for this count. Right? Yeah. Yeah. There are two issues I can see in this code, and this is a component log. Sorry. Add component.

Are there any boxes in the function that return the total number of occurrences of a target in an area? Okay? How would you improve the function's credibility? And so is the best that should be followed. Okay? We need to check the occurrence of an element. We can have the total number of occurrences of the target in '21. Okay? If not, return. For where a dot i equals b, global count plus one. Global count plus b. This is the target element. Then why are we adding this to the global count? We just need to increase by one, right, whenever there is a match of b in the array. This is the one error. And to increase readability, what we can do is so, we don't need to check if the array is present or not, okay, if we are not passing anything. So, first of all, what we can do is so we are checking from. So why can't we define the type of parameter we are passing for a? We just need to check if the array dot length is greater than zero. If less than zero, then we just need to return. Then we have a global count. So global count can be kept inside the function. We just need to return the global count. So why are we keeping this variable outside? We can just have it inside because each time this function will get called. We need to check if the array is not empty, then we need to return the occurrence of b. You know? Then global count plus b. And here, I see we are adding local count to global count. It's not correct. We should increase by one each time we are getting the occurrence of b in the array. And to check the redundancy, we have for array, we have for each method, for each or which look through the same for to with each occur with each element, okay, for a in array, we can just check if a equals b and then increase the global count. Yeah.

Optimizing MongoDB queries for performance involves several strategies, including indexing, query optimization, and data denormalization. Here's a detailed plan to optimize the provided queries: 1. **Indexing**: Create indexes on the frequently used fields in the queries, such as `customer_id`, `status`, and `total_amount`. This will speed up the query execution time by reducing the number of documents that need to be scanned. ```sql db.order.createIndex({ customer_id: 1 }) db.order.createIndex({ status: 1 }) db.order.createIndex({ total_amount: 1 }) ``` 2. **Query Optimization**: Analyze the query plans and optimize the queries to reduce the number of documents scanned and the number of operations performed. ```sql db.order.find({ customer_id: 12345, status: { $ne: "shift" }, total_amount: { $gt: 100 } }).sort({ total_amount: 1 }) ``` 3. **Data Denormalization**: Consider denormalizing the data by storing the total amount in the customer document. This will reduce the number of queries needed to retrieve the total amount. ```sql db.customer.updateOne( { _id: 12345 }, { $set: { total_amount: 100 } } ) ``` 4. **Use of Elastic Search**: As mentioned in the transcript, consider using Elastic Search to improve query performance. Elastic Search can handle large amounts of data and scale horizontally, making it an ideal choice for big data applications. 5. **Pagination**: Implement pagination to limit the number of documents returned in a query. This will improve performance by reducing the amount of data transferred and processed. ```sql db.order.find({ customer_id: 12345, status: { $ne: "shift" }, total_amount: { $gt: 100 } }).sort({ total_amount: 1 }).limit(5000) ``` 6. **Use of Primary and Secondary Keys**: Ensure that the primary key (`customer_id`) is indexed, and consider creating a secondary key (e.g., `customer_status`) to further improve query performance. By implementing these strategies, you can significantly improve the performance of the MongoDB queries and reduce the time taken to execute them.