💻Technical Questions
Q1Explain the difference between a process and a thread.
💡Cover memory sharing, context switching overhead, and when to prefer one over the other.
Q2What is the time complexity of HashMap get() and put()?
💡O(1) average, O(n) worst-case due to hash collisions. Mention Java 8's tree bins for O(log n) worst case.
Q3Design a URL shortener like bit.ly. What are the key design decisions?
💡Cover: base62 encoding, hash collisions, DB schema (long URL ↔ short code), caching hot URLs, rate limiting, analytics.
Q4What is the difference between SQL and NoSQL databases? When would you choose each?
💡ACID vs BASE, schema flexibility, horizontal vs vertical scaling, use cases (relational data vs documents vs time-series).
Q5Explain the CAP theorem.
💡Consistency, Availability, Partition Tolerance — pick 2. Real-world examples: Cassandra (AP), PostgreSQL (CP), Zookeeper (CP).
Q6How does garbage collection work in Java/Python?
💡Generational GC (Young/Old gen), mark-and-sweep, reference counting in Python, and how to avoid memory leaks.
Q7What is a deadlock? How do you prevent it?
💡Four Coffman conditions. Prevention strategies: lock ordering, timeout, banker's algorithm. Mention tools to detect deadlocks.
Q8Implement LRU Cache from scratch.
💡HashMap + DoublyLinkedList. O(1) get and put. Walk through the data structure before coding.
🧠Behavioral Questions
B1Tell me about a time you disagreed with a technical decision. What did you do?
💡Use STAR. Show data-driven reasoning, respectful communication, and willingness to commit even if overruled.
B2Describe the most complex technical problem you've solved.
💡Explain the problem clearly first (don't assume context). Then walk through your debugging/design process, not just the solution.
B3Tell me about a time you had to learn a new technology quickly.
💡Focus on your learning approach, resources used, and what you delivered. Quantify the timeline.
B4How do you handle technical debt in your projects?
💡Show balance: you deliver features AND advocate for refactoring. Mention concrete examples of tech debt you've addressed.
🎯Situational Questions
S1Your service is experiencing 10x traffic spike. Walk me through how you'd handle it.
💡Triage first (is it real traffic or an attack?), then: auto-scaling, load balancer config, caching, DB read replicas, graceful degradation.
S2You find a critical security vulnerability in production. What do you do?
💡Assess severity, notify security/engineering leads, patch vs mitigate immediately, communicate to stakeholders, post-mortem.
S3A senior engineer's PR has significant architectural issues. How do you approach the review?
💡Start with questions not accusations. Propose alternatives with clear tradeoffs. Escalate constructively if needed.
Must-Know Topics
- ✓Data Structures & Algorithms (Arrays, Trees, Graphs, DP)
- ✓System Design (Scaling, Caching, CDN, Databases)
- ✓OOP Principles (SOLID)
- ✓OS Concepts (Threads, Processes, Memory)
- ✓Networking (HTTP, TCP/IP, DNS)
- ✓SQL (Joins, Indexes, Transactions)
- ✓REST API Design
- ✓Git & Code Review
Common Interview Mistakes to Avoid
- ✗Jumping into code before clarifying the problem
- ✗Ignoring edge cases (null, empty, duplicates, overflow)
- ✗Not communicating thought process during live coding
- ✗Skipping time/space complexity analysis
- ✗Over-engineering system design for a startup scenario
Frequently Asked Questions
How many LeetCode problems should I solve before a software engineer interview?▼
Quality over quantity. Solving 80–100 problems deeply (understanding patterns, not memorizing) beats 300+ surface-level solutions. Focus on: sliding window, two pointers, BFS/DFS, DP, and heaps.
Do Google and Amazon ask the same types of questions?▼
Google focuses more on algorithms and system design. Amazon uses their Leadership Principles heavily in behavioral rounds. Microsoft is middle-ground. Flipkart/Paytm/Meesho test DSA + HLD but are generally less rigorous on algorithms than FAANG.
How long should I prepare for a software engineer interview at a top company?▼
2–3 months of consistent preparation (1–2 hours/day) is realistic for mid-level roles. For senior roles at Google/Meta, 3–4 months with deep focus on system design is typical.
Is system design asked in entry-level software engineer interviews?▼
At most companies, system design is introduced at 2+ years of experience (SDE-2 level). Entry-level interviews focus on DSA and coding. However, some startups ask high-level design even for juniors.
What programming language should I use in coding interviews?▼
Python is ideal for interviews — concise syntax, built-in data structures, and fast to write. Java and C++ are also common. Use the language you're most fluent in; interviewers care about logic, not language choice.
Ready for your Software Engineer interview?
Make sure your resume gets you to the interview stage first. Get a free ATS score.
Score My Resume Free →