Tip 1: Basics are important to solve problems effectively.
Tip 2: Understanding the purpose and functionality of each tool is key. For example, Java solves one type of problem, JavaScript solves another, and Python solves yet another. Similarly, SQS, RabbitMQ, and Kafka each address different types of problems.
Tip 3: Building projects and maintaining a strong GitHub profile is crucial.
Tip 1: Clearly articulate the projects you've worked on and the skills you possess, specifying your actual contributions and roles within those projects.
Tip 2: Keep your resume neat and straightforward, focusing on essential details that would stand out to someone reviewing resumes for interview shortlisting. Avoid overly elaborate designs or unnecessary embellishments.
The interview was conducted in the evening via an MS Teams call, where we engaged in discussions about the role, alongside my experience and projects. This dialogue naturally progressed to a system design problem, making for an overall positive experience.
I was asked to discuss the scaling of a straightforward 4-layer system, comparing horizontal versus vertical scaling approaches. The system's architecture included four distinct layers: the first layer was a frontend service implemented in JavaScript; the second layer consisted of a Python wrapper designed to interface with the frontend service and Java service through APIs; the third layer was a service written in Java, which interacted with various databases such as Elasticsearch, SQL, etc.; and the fourth layer comprised the databases themselves.
Tip 1: Grasp the fundamental differences between horizontal and vertical scaling, and know when to apply each type based on system demands.
Tip 2: For the frontend layer in JavaScript, understand load balancing and stateless architecture for implementing horizontal scaling.
Tip 3: In the API layer with a Python wrapper, be knowledgeable about API gateway patterns and distributing load across instances.
Tip 4: For the service layer in Java, familiarize yourself with microservices architecture, service orchestration, and the scenarios requiring vertical scaling for increased compute capacity.
Tip 5: Gain insights into database management, including scaling relational (SQL) vs. NoSQL (like Elasticsearch) databases, along with sharding, replication, and partitioning techniques.
Tip 6: Learn techniques for optimizing each layer for better performance under increased loads and understand caching mechanisms to reduce system load.
Tip 7: Be aware of cloud services and infrastructure that support scalable architectures, such as container orchestration platforms (e.g., Kubernetes) for horizontal scaling and cloud-based services for vertical scaling adjustments.
Tip 8: Develop skills in using monitoring tools and metrics to analyze the performance impact of scaling, determine scaling needs, and use load-testing tools to simulate high traffic.
Tip 9: Have a deep understanding of different database technologies, particularly how to scale them and the trade-offs involved.
it was in the evening, over an MS teams call where we discussed my experience and projects and a few questions related to JavaScript overall it was a good experience.
During the interview, I was presented with approximately three coding questions focusing on Object-Oriented Programming and the basics of JavaScript. Although I don’t recall the specific details, the difficulty level of the questions was moderate—manageable for someone with a solid understanding of the programming language fundamentals.
Tip 1: Master the Fundamentals of OOP: Ensure you have a strong grasp of key OOP concepts such as classes, objects, inheritance, encapsulation, polymorphism, and abstraction. Be able to demonstrate how these concepts can be implemented effectively in JavaScript. Practice designing simple class structures and understand how to apply OOP principles to solve real-world problems.
Tip 2: Strengthen Your JavaScript Skills: Focus on mastering key JavaScript concepts frequently tested in interviews, including closures, prototypal inheritance, event looping, and asynchronous programming. Ensure proficiency in tasks such as array and object manipulation, scope, and ES6+ features like arrow functions, promises, and async/await. Regular practice on online coding platforms can enhance your proficiency and readiness for interview challenges.
The interview took place at noon via an MS Teams call, during which we discussed my experience and projects. This led into a system design challenge followed by coding questions. Of the two coding questions posed, one involved chaining. Overall, the experience was positive and engaging.



Given an array of integer coins, which represents different denominations of coins, and an integer amount that denotes a total amount of money, the task is to determine the minimum number of coins required to make up that exact amount. If it's not possible to form the amount using any combination of the coins provided, the function should return -1. It is assumed that there is an infinite supply of each type of coin.
Tip 1: Understand & learn Dynamic Programming
Tip 2: Grasp the Greedy Algorithm and Its Limitations



With method chainingGiven an array of integers coins, which represents different denominations of coins, and an integer amount that denotes a total amount of money, the task is to determine the minimum number of coins required to make up that exact amount. If it's not possible to form the amount using any combination of the coins provided, the function should return -1. It is assumed that there is an infinite supply of each type of coin.
Tip 1: Understand & learn Dynamic Programming
Tip 2: Grasp the Greedy Algorithm and Its Limitations
Tip 3: basics of JavaScript method chaining
NOTE: I was unable to solve this particular problem as I had not previously implemented method chaining and was unfamiliar with it. However, this prompted a discussion, and I mentioned that I could tackle the problem using Java. This led to additional rounds of interviews starting from the basics.
The interview took place in the evening via an MS Teams call, during which we discussed my experience and projects. This led to a system design challenge followed by coding questions. Of the two coding questions posed, one involved chaining. Overall, the experience was positive and engaging.
The assessment included approximately 30 multiple-choice questions covering topics such as Java, Object-Oriented Programming principles, and basic programming concepts.
Tip 1: Basics of Java
Tip 2: OOPs
Tip 3: Basic design patterns
It was in the evening, over an MS teams call where we discussed my experience and projects and the conversation led to a system design problem and coding questions from 2 questions there was one related to the priority queue overall it was a good experience.
I don't recall the specifics of the questions, but I do remember a suggestion from the interviewer, who is now my colleague, to use a priority queue instead of a normal queue.
Tip 1: Enhance Your Java Fundamentals: Develop a solid foundation in Java, focusing on its core principles and functionalities. This will help in understanding complex data structures like priority queues which are essential for optimizing certain operations.
Tip 2: Learn Multithreading and Spring Framework: Gain knowledge in Java multithreading to manage concurrent processes effectively. Additionally, familiarize yourself with the internal workings of the Spring framework to leverage its robust features in building enterprise-level applications.
The session took place over a morning phone call, focusing on overall feedback, as well as documentation verification and updates. During the call, I was asked several questions about my decision to switch and why I preferred working with Java full stack instead of JavaScript full stack.
The meeting occurred at noon with the individual who was the CTO at the time and later became my manager. During this session, I was questioned on the basics of Java, Python, JavaScript, SQL and NoSQL, DSA, system design, processor architectures, cloud computing, CPU clock cycles, the event loop, and my projects that were available as open-source repositories on GitHub. Overall it was a positive.
I don't recall the specifics, but it involved questions on basic data structures and algorithms, language-specific concepts and solutions these languages provide (java, python and javascript), as well as multithreading concepts like race conditions and child processes.
Tip 1: Basics of programming
Tip 2: multithreading
Tip 3: DSA
The interview included numerous questions covering fundamental topics such as database basics, scalability, the internal mechanics of cloud services like Amazon S3 and EC2, virtualization, Ubuntu fundamentals, basic command-line interface commands and CPU types with clock cycles and hardware-related internal workings.
Tip 1: Strengthen your understanding of file systems, Ubuntu, and cloud services to enhance your foundational IT knowledge.
Tip 2: Familiarize yourself with the basics of system design and gain a hardware-level understanding of CPU clock cycles, caches, and the layers of operating systems.
The interview took place in the evening and involved basic questions about my reasons for changing companies and my interest in working for InfoEdge. Overall, the experience was positive.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?