← Internshala Interview Insights
First interview ever, so I was nervous but had genuinely built stuff worth talking about.
Select 2-3 projects that best demonstrate your technical decision-making, especially those involving APIs, integrations, or trade-offs. For each, briefly state the problem, then focus on the 'why' behind your choices—alternatives considered, constraints, and outcomes. Keep the narrative structured and tie decisions back to impact and learnings.
Pro tip: Quantify the impact of your decisions (e.g., reduced latency by 40%, handled 10k requests/min) and be ready to discuss what you would do differently now—this shows growth and self-awareness.
Briefly describe the project's goal, your role, and the team size. Mention the tech stack and any constraints (time, scale, legacy systems).
Pick 2-3 critical decisions (e.g., choosing REST vs GraphQL, database selection, caching strategy). Explain the alternatives you considered and why you chose your approach.
Articulate the trade-offs (e.g., consistency vs availability, development speed vs scalability) and how you mitigated risks. Mention any obstacles and how you overcame them.
Quantify results where possible (performance metrics, user adoption, cost savings). Explain how your decisions contributed to the project's success.
Conclude with what you learned and how you would approach it differently today. This shows humility and continuous improvement.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
Live coding with someone watching is a different sport from LeetCode alone at midnight.
Start by clarifying the scope and tech stack (e.g., vanilla JS vs React) to ensure alignment with the interviewer. Build a minimal working Todo app with add, toggle, and delete features, then explain the event handling model, covering event propagation, delegation, and the event loop. Keep the code simple and focus on demonstrating your understanding of how events drive the UI updates.
Pro tip: While building, narrate your thought process and explicitly mention why you're choosing a particular event handling pattern (e.g., delegation for dynamic elements). This shows you're thinking about scalability and performance, not just getting it to work.
Ask the interviewer about the expected features (add, delete, toggle, edit) and the preferred technology (vanilla JS, React, etc.). This ensures you build what's expected and avoids wasted effort.
Quickly implement the core functionality: an input to add tasks, a list to display them, and buttons to toggle completion and delete. Keep the UI simple and focus on functionality.
Describe how events are captured and handled in your app. Cover event listeners, the event object, bubbling/capturing, and event delegation if used. Also mention the event loop and how asynchronous tasks (like UI updates) are scheduled.
Talk about why you chose a particular approach (e.g., direct listeners vs. delegation) and its pros/cons. Mention how this would scale or change with a framework like React.
Recap the key points and ask if the interviewer wants you to dive deeper into any aspect. This shows confidence and openness to collaboration.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
This was the most interesting part of the whole process.
Start by clarifying requirements (scale, features, latency) and then sketch a high-level architecture on the notepad, breaking it into components like clients, servers, databases, and message queues. Focus on the core real-time messaging flow, then discuss scaling, reliability, and trade-offs.
Pro tip: Emphasize the importance of WebSockets for real-time communication and explain how you would handle message ordering and delivery guarantees, as these are common pitfalls in chat systems.
Ask about expected user scale, message volume, latency requirements, and key features (e.g., group chat, read receipts, media sharing). This ensures the design meets actual needs.
Sketch the main components: clients (mobile/web), load balancers, WebSocket servers, API servers, message queue, database, and cache. Show how they interact.
Detail how a message is sent from one client to another: client sends via WebSocket to server, server validates and persists, then pushes to recipient via WebSocket or pub/sub.
Discuss horizontal scaling of WebSocket servers, using a pub/sub system (e.g., Redis) for cross-server communication, database sharding, and handling failures.
Mention trade-offs like consistency vs. availability, and optimizations like caching recent messages, using CDN for media, and compression.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
A 1.5-hour round with a VP is not what I expected for an internship.
Treat the session as a collaborative problem-solving exercise, not just a test. Verbalize your thought process clearly, ask clarifying questions, and start with a brute-force solution before optimizing. Stay calm, manage your time, and if stuck, explain your reasoning and seek hints.
Pro tip: The VP cares more about how you think and communicate than whether you get the perfect answer. Show structured thinking, acknowledge trade-offs, and demonstrate you can learn from hints.
Repeat the problem in your own words, ask clarifying questions about input/output, constraints, and edge cases. Confirm assumptions before proceeding.
Outline your approach step-by-step, starting with a simple brute-force solution. Explain the algorithm, data structures, and time/space complexity.
Write clean, modular code with meaningful variable names. Test with sample inputs and edge cases, and walk through the code to catch bugs.
If time permits, discuss potential optimizations, trade-offs, and alternative approaches. Analyze complexity and consider scalability.
Summarize your solution, mention any limitations, and ask for feedback. Show willingness to learn and adapt.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
Acknowledge the challenge and show that you have a concrete plan to balance both commitments. Emphasize proactive communication with your university and the internship team, and highlight your ability to prioritize and manage time effectively.
Pro tip: Mention that you've already reviewed your exam schedule and identified potential conflicts, and propose specific solutions like adjusting work hours or using approved leave. This shows foresight and responsibility.
Show that you understand the potential conflict between final semester exams and the internship schedule and location.
Describe how you will balance both responsibilities, such as creating a study schedule, communicating with professors, and coordinating with your internship manager.
Explain how you will prioritize tasks and maintain open communication with both your university and the internship team to manage expectations.
Mention any support systems you can use, such as study groups, online resources, or flexible work arrangements.
Reassure the interviewer that you are committed to performing well in both the internship and your exams, and that you are prepared to put in the extra effort.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.