- Skilled Coder's Newsletter
- Posts
- Interview format for software professionals
Interview format for software professionals
Various levels of experience with concise topics listed
This article covered back-end software engineering topics and software interview formats.
The majority of large tech companies and start-ups use a similar interview format, and you can expect most of the questions to be about the topics mentioned.
Entry Level / Freshers
experience 0–2 years
Freshmen are typically asked about the fundamentals of computer science, with an emphasis on data structure and algorithm, as well as how efficiently and quickly they can implement the solution.
These are some of the questions that freshmen are asked, in addition to their weightage.
Freshmen need very good hands-on skills with basic data structures and algorithms, and their implementation should be decent.
Data structure and Algorithms: weightage 70–80%
Sorting
Searching
Linked List
Array
Tree
Graph
Stack
Queue
Depth First Search
Breath First Search
Shortest Path
String Manipulation
Binary Search
Backtracking
Recursion
Dynamic Programming
Time complexity analysis
Matrix calculation
Other core computer science subjects: weightage 20–30%
OOPS: Classes, Inheritance, Polymorphism, Encapsulation etc
Operating System: Thread, Process, Scheduling Algorithms, Virtual Memory, Multi-threading etc
DBMS: SQL Basic commands, ACID Properties, Normalization, Entity-relationship, Isolation levels etc.
Networking: OSI and TCP/IP layers, Network protocols, Routing, Network topology etc.
Intermediate Level
experience 3–8 years
In comparison to freshmen, mid-level engineers, or SDE-2s, require more practical knowledge in the software development area.
Major emphasis is placed on problem solving, language proficiency, applicability in real-life development, and a fair understanding of how scalable systems work.
DSA questions are more mid- to hard-level in difficulty and may require a firm understanding of relatively advanced algorithms and data structures.
Edge cases must be well addressed, and implementation must be error-free and clean.
Data structure and Algorithms: weightage 40–50%
Dynamic Programming
Binary Search
HashMap and HashSet
Topological Sort
Heap and Priority Queue
Trie
Suffix Array
KMP and Rabin Karp
Minimum Spanning Trees
Binary indexed tree
Segment Tree
Tree Traversal
Shortest path with priority queue
Design Patterns and System implementation: weightage 20–30%
Design Patterns: Factory Pattern, Singelton Pattern, Strategy Pattern, Observer Pattern, Decorator Pattern, Builder Pattern, Iterator Pattern, Command Pattern etc
SOLID Principles
Other programming principles like DRY, KISS, YAGNI, Separation of Concerns etc
System Design: weightage 20–30%
URL Shortening, Twitter timeline, Photo sharing service, News feed etc
Hashing, caching, NoSQL Internals, CAP Theorem, Distributed Designs etc
Download your free interview preparation guide 👇️
Senior Level
experience 8+ years
Senior engineers are expected to thoroughly understand the system and have real-world experience with distributed and scalable systems.
Along with strong analytical abilities and an in-depth understanding of language internals, they should be familiar with several big data technologies and have practical experience working with scalable concurrent systems.
System Design and Architectural Patterns: weightage 50–60%
Monolithic, Micro Services, Virtualization, LSM Tree, SS-Tables, Message Queues, Caching, Seach Engines etc
Docker/Kubernetes, Redis, Kafka, Cassandra, Elastic Search, Spark etc
System Designs that can scale to million requests, Thread safe rate limiting API, Horizontal/Vertical Scaling, Consistent hashing, CAP Theorem etc
MD5, SHA 256, CDN, Load Balancing, Caching, Sharding, Partitioning, Replication, Database indexing etc.
Programming Principles and software designs: weightage 20–30%
Design Patterns
SOLID Principles, DRY, KISS, YAGNI etc
Test driven development
coding and testing best practices
code review standards.
Data structure and Algorithms: weightage 10–20%
Trie
AVL / Red Black Tree
Disjoint Set Union
Bit Manipulation
Dynamic Programming
Lazy Propagation
Graph Algorithms
This is a fairly concise list of subjects for each experience level.
Depending on the particular requirements of the organization, there might be some differences, but the goal is to give you a good indication of what to anticipate.
Thanks for reading :)