On this page

Big-O and algorithm analysis

Object-oriented programming

Concurrency, threads, and the OS

Python

Java and the JVM

C and C++

JavaScript, React, and the web

Databases and SQL

JSON, APIs, and data formats

Git and developer tooling

Distributed systems and system design concepts

Data structures and algorithms

Software engineering practice

How to use this index

Frequently asked questions

Related reading

Software Engineering Questions Answered: A Complete Index

Image
Arslan Ahmad
An index of answers to common software engineering questions, covering algorithms, object-oriented programming, concurrency, languages, databases, APIs, and Git.
Image

Big-O and algorithm analysis

Object-oriented programming

Concurrency, threads, and the OS

Python

Java and the JVM

C and C++

JavaScript, React, and the web

Databases and SQL

JSON, APIs, and data formats

Git and developer tooling

Distributed systems and system design concepts

Data structures and algorithms

Software engineering practice

How to use this index

Frequently asked questions

Related reading

This is an index of the technical questions engineers ask most often, grouped by topic. Each entry links to a full answer.

It is meant for two situations. The first is preparing for an interview, when you want to check that the fundamentals are solid before moving on to practice problems. The second is day-to-day work, when a term comes up and you want a direct explanation rather than a tutorial.

The companion index for interview process and career questions is Tech Interview Questions Answered.

Big-O and algorithm analysis

Complexity is the vocabulary interviewers use to compare solutions. These cover the notation itself and how to choose between algorithms that solve the same problem.

Object-oriented programming

Object-oriented questions appear in both coding and design rounds. These cover the four core ideas and the terms that get confused for each other.

Concurrency, threads, and the OS

Threads, scheduling, and memory come up in systems roles and in any interview that touches performance. These start from the operating system concepts underneath.

Python

Python questions in interviews are usually about behavior that surprises people: how division works, how names are bound, and what the standard library gives you.

Java and the JVM

Java questions split between the language itself and the JVM that runs it. Both appear in backend interviews.

C and C++

C++ questions in interviews centre on memory, the standard library, and the parts of the language with no equivalent in managed runtimes. A fuller set is in the C++ interview questions guide.

JavaScript, React, and the web

Frontend interviews mix framework questions with plain JavaScript. These cover the choices candidates ask about most.

Databases and SQL

Almost every backend interview reaches the database. These cover schema design, the SQL you write daily, and the differences between database types.

JSON, APIs, and data formats

APIs are the boundary between the systems you design. These cover the formats that cross that boundary and the terms used to describe them.

Git and developer tooling

Git questions are practical rather than theoretical. They come up in day-to-day work and in interviews that ask how you would recover from a mistake.

Distributed systems and system design concepts

These are the building blocks a system design round is assembled from. Each one is a concept you should be able to define before you use it in a design.

Data structures and algorithms

The structures behind the problems. Interviewers ask about them directly and expect you to reach for the right one during a coding question.

Software engineering practice

How software gets built rather than how it runs: process, quality, and the terms used in code review and planning.

How to use this index

Read by section rather than end to end. If you are preparing for a specific role, start with the sections that match its stack and treat the rest as reference.

If several entries in a section are unfamiliar, that section is worth studying properly rather than reading answer by answer. Grokking the Coding Interview covers the problem patterns behind the algorithm questions, and Grokking System Design Fundamentals covers the distributed systems building blocks in order.

Frequently asked questions

How should I use this index before an interview?

Scan the section titles first. Any section where more than a few entries are unfamiliar is a gap worth closing before you start practicing problems.

Are these the questions interviewers actually ask?

These are the questions engineers search for, which overlaps heavily with what gets asked. Interviewers rarely ask a definition on its own, but they do expect you to use these terms correctly.

Do I need to know every topic here?

No. Match the sections to the role. A frontend interview will not test paging and thrashing, and a systems interview will not test JSX.

Coding Interview
System Design Fundamentals

What our users say

Matzuk

Algorithms can be daunting, but they're less so with the right guide. This course - https://www.designgurus.io/course/grokking-the-coding-interview, is a great starting point. It covers typical problems you might encounter in interviews.

Arijeet

Just completed the “Grokking the system design interview”. It's amazing and super informative. Have come across very few courses that are as good as this!

AHMET HANIF

Whoever put this together, you folks are life savers. Thank you :)

More From Designgurus
Annual Subscription
Get instant access to all current and upcoming courses for one year.

Access to 50+ courses

New content added monthly

Certificate of completion

$31.08

/month

Billed Annually

Recommended Course
Grokking the Coding Interview: Patterns for Coding Questions

Grokking the Coding Interview: Patterns for Coding Questions

191,028+ students

4.6

The 24 essential patterns behind every coding interview question. Available in Java, Python, JavaScript, C++, C#, and Go. The most comprehensive coding interview course with 543 lessons. A smarter alternative to grinding LeetCode.

View Course
Join our Newsletter

Get the latest system design articles and interview tips delivered to your inbox.

Read More

High Availability in System Design: 15 Strategies for Always-On Systems

Arslan Ahmad

Arslan Ahmad

How to Research a Company Before Your Tech Interview

Arslan Ahmad

Arslan Ahmad

5 Ways Developers Can Use AI in 2025

Arslan Ahmad

Arslan Ahmad

Java Map Explained – Master Key-Value Data Structures Fast

Arslan Ahmad

Arslan Ahmad

Design Gurus logo
One-Stop Portal For Tech Interviews.
Copyright © 2026 Design Gurus, LLC. All rights reserved.