ViacheslavChernyshov/java-interview-questions-and-answers
ViacheslavChernyshov/java-interview-questions-and-answers has 62 GitHub stars and 25 forks. Star changes are not measured yet. Last checked 2026-11-14 02:23 UTC. Last push 2026-09-30.
Measured star growth
- in 24h
- Collecting history
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
500+ Java interview questions and answers for Junior, Middle, and Senior developers. Covers Spring Boot, Hibernate, SQL, Kafka, Docker, Kubernetes, and more.
DataREADME.md
OriginalJava Interview Questions and Answers
500+ Java interview questions and answers for Junior, Middle, and Senior Java backend developers. Covers Spring Boot, Hibernate / JPA, SQL, PostgreSQL, Kafka, Docker, Kubernetes, Collections, Concurrency, Stream API, REST / HTTP, JVM memory, design patterns, transactions, microservices, and other high-frequency backend interview topics.
This repository is built as a practical Java backend interview preparation system, not a random dump of prompts. It combines broad topic coverage, layered explanations, multilingual access, and search-friendly landing pages so you can revise fundamentals fast and still go deep where strong interviews usually get difficult.
Start Here
- English landing page: GitHub Pages / English
- Ukrainian landing page: GitHub Pages / Ukrainian
- Russian landing page: GitHub Pages / Russian
- English answer library: Read answers on the site
- Ukrainian answer library: Читати відповіді на сайті
- Russian answer library: Читать ответы на сайте
- English repository version: eng/README.md
- Ukrainian repository version: ua/README.md
- Russian repository version: ru/README.md
Languages
- English: Full Java interview questions list
- Ukrainian: Повний список питань для Java interview
- Russian: Полный список вопросов по Java interview
Why This Repository Stands Out
- Covers the most common Java backend interview topics in one place instead of scattering them across separate notes
- Organizes questions by topic, so the repository works both as a roadmap and as a fast reference
- Keeps every answer structured by level, from fundamentals to senior-level depth
- Includes English, Ukrainian, and Russian public versions for easier study and wider reach
- Adds GitHub Pages topic hubs for faster browsing, better internal linking, and stronger search visibility
Who This Helps
- Java developers preparing for Junior, Middle, or Senior backend interviews
- Engineers refreshing Spring Boot, JPA, SQL, Kafka, concurrency, or JVM internals
- Mentors building structured interview-prep roadmaps for teammates
- Candidates who prefer topic-by-topic repetition instead of scattered cheat sheets
Coverage Snapshot
- Core Java: collections, HashMap, String, exceptions, Stream API, records, generics, immutability
- JVM internals: memory, garbage collection, object lifetime, reachability, GC tooling
- Spring ecosystem: DI, beans, proxies, AOP, transactions, Spring Boot internals
- Data layer: SQL, PostgreSQL, indexes, MVCC, Hibernate, JPA, locking
- Distributed backend: Kafka, microservices, retries, resilience, observability
- Infrastructure: Docker, Kubernetes, health checks, configuration, rollout basics
How to Use This Repository
- Pick one topic cluster that matches the role you are targeting, for example Spring Boot, SQL, Kafka, or Concurrency
- Start from the answer library on the site or from the section navigator in GitHub, then move in order because many questions build on previous ones
- Use the three-layer answer structure to calibrate how deep your own answer should sound in interviews
- Switch between English, Ukrainian, and Russian versions depending on study comfort or publishing needs
English Question List
📚 Table of Contents
| # | Topic | Questions |
|---|---|---|
| 20 | Records & Generics | 27 |
| 19 | CompletableFuture & Asynchrony | 28 |
| 18 | OOP & SOLID | 22 |
| 17 | Microservices | 26 |
| 16 | Hibernate / JPA | 30 |
| 15 | Kafka | 30 |
| 14 | Docker / Kubernetes | 24 |
| 13 | Immutability | 29 |
| 12 | String | 23 |
| 11 | Transactions | 22 |
| 10 | HashMap / equals / hashCode | 29 |
| 9 | Concurrency | 27 |
| 8 | Stream API | 29 |
| 7 | Exceptions | 29 |
| 6 | REST / HTTP | 17 |
| 5 | Spring / Spring Boot | 29 |
| 4 | Collections | 30 |
| 3 | Memory & Garbage Collection | 28 |
| 2 | Design Patterns | 16 |
| 1 | Databases / SQL / PostgreSQL | 21 |
20. Records & Generics
- What is Record in Java and since which version is it available?
- What are the main differences between Record and a regular class?
- Can you inherit from Record or extend Record from another class?
- Can you add additional methods to Record?
- Which methods are automatically generated for Record?
- Can you override the constructor in Record?
- What is a compact constructor in Record?
- Can you declare static fields and methods in Record?
- Are Record fields final?
- Can you use Record as a key in HashMap?
- What are Generics in Java?
- What are the advantages of using generics?
- What is type erasure?
- Can you create an array of generic type?
- What are bounded type parameters?
- What is the difference between
<? extends T>and<? super T>? - What is PECS (Producer Extends Consumer Super)?
- Can you use primitive types as generic parameters?
- What are raw types and why should you avoid them?
- What happens when you try to create an instance of generic type via
new T()? - What is the difference between
List<?>andList<Object>? - Can you overload methods differing only by generic parameters?
- What is recursive type bound?
- How do generics work with inheritance (is
List<String>a subtype ofList<Object>)? - What are bridge methods and why are they needed?
- Can you use multiple bounds for a single type parameter?
- How to implement Singleton pattern using Record?
19. CompletableFuture & Asynchrony
- What is CompletableFuture and how does it differ from Future?
- What are the main advantages of CompletableFuture over Future?
- How to create a CompletableFuture that is already completed with a result?
- What is the difference between thenApply() and thenCompose()?
- What do methods thenAccept() and thenRun() do?
- How to handle exceptions in a CompletableFuture chain?
- What is the difference between handle(), exceptionally() and whenComplete()?
- How to combine results of multiple CompletableFutures?
- What does allOf() method do and when to use it?
- What does anyOf() method do and in which cases is it useful?
- What is the difference between thenApply() and thenApplyAsync()?
- What thread pool is used by default for async methods?
- How to specify your own Executor for CompletableFuture?
- What is blocking code and how to distinguish it from non-blocking?
- Why is it important to avoid blocking operations in CompletableFuture?
- How to properly execute multiple parallel requests to microservices?
- What does supplyAsync() method do and when to use it?
- How to cancel CompletableFuture execution?
- What happens if an exception occurs in a CompletableFuture chain?
- Can you reuse the same CompletableFuture in multiple chains?
- How to implement timeout for CompletableFuture?
- What does orTimeout() method do in Java 9+?
- What is the difference between thenCombine() and thenCompose()?
- How to test code with CompletableFuture?
- When is it better to use CompletableFuture vs reactive programming?
- What does join() method do and how does it differ from get()?
- Can you manually complete a CompletableFuture with a result?
- How to implement retry logic with CompletableFuture?
18. OOP & SOLID
- What is the Single Responsibility Principle and how to apply it?
- Give an example of Single Responsibility Principle violation.
- What is the Open/Closed Principle?
- How to refactor code that violates Open/Closed Principle?
- What is the Liskov Substitution Principle?
- Give an example of Liskov Substitution Principle violation.
- What is the Interface Segregation Principle?
- What is the Dependency Inversion Principle?
- Why do we need SOLID principles at all?
- What are composition and inheritance?
- When is it better to use composition instead of inheritance?
- What is delegation in OOP?
- How is Single Responsibility Principle related to cohesion?
- What happens if a class has multiple reasons to change?
- How does SOLID help with code testing?
- How is Dependency Inversion related to Dependency Injection?
- What is Law of Demeter (principle of least knowledge)?
- How to refactor a God Object?
- How do SOLID principles help with feature extension?
- Can you follow all SOLID principles simultaneously?
- How to determine that a class has a single responsibility?
- What anti-patterns contradict SOLID principles?
17. Microservices
- What is the Saga pattern and when to use it?
- What is the difference between choreography and orchestration in Saga?
- How to implement distributed transactions in microservices?
- What are compensating transactions?
- What is the Circuit Breaker pattern?
- How does Circuit Breaker work and what states does it have?
- What is Service Discovery and why is it needed?
- What is the difference between client-side and server-side discovery?
- What is API Gateway and what tasks does it solve?
- What is sharding?
- What is the difference between sharding and partitioning?
- How to implement horizontal scaling of microservices?
- What is the Database per Service pattern?
- What problems arise when using a shared database?
- How to organize communication between microservices?
- What is the difference between synchronous and asynchronous communication?
- How to ensure fault tolerance of microservices?
- What is the Bulkhead pattern?
- What is the Retry pattern and how to use it properly?
- What is exponential backoff?
- How to monitor a distributed microservice system?
- What is distributed tracing?
- How to implement authentication and authorization in microservices?
- What is the Strangler Fig pattern?
- How to test microservices?
- What tools are used for microservice orchestration?
16. Hibernate / JPA
- What is the N+1 problem and how to solve it?
- What is the difference between Lazy and Eager loading?
- When to use Lazy vs Eager loading?
- What is LazyInitializationException and how to avoid it?
- What fetch strategies exist in Hibernate?
- What does @BatchSize annotation do?
- Describe the Entity lifecycle in Hibernate.
- What are states: transient, persistent, detached, removed?
- What is the first-level cache in Hibernate?
- What is the second-level cache and when to use it?
- How to configure the second-level cache?
- What is dirty checking in Hibernate?
- How does the flush mechanism work in Hibernate?
- What is the difference between persist() and merge()?
- What does the refresh() method do?
- What is EntityManager and how does it differ from Session?
- How to implement optimistic locking in JPA?
- How to implement pessimistic locking in JPA?
- What is @Version and why is it needed?
- How do cascade operations (Cascade) work?
- What types of Cascade exist?
- What is orphan removal?
- How to properly use @OneToMany and @ManyToOne?
- What are the peculiarities of bidirectional relationships?
- How to avoid infinite recursion during Entity serialization?
- What is JPQL and how does it differ from SQL?
- What is Criteria API and when to use it?
- How to use JOIN FETCH to solve the N+1 problem?
- What is projection in JPA?
- What types of inheritance does JPA support?
15. Kafka
- What is a topic in Kafka?
- What is a partition and why is it needed?
- How is data distributed across partitions?
- What is a message key and how does it affect partitioning?
- What is a Consumer Group?
- How does consumer load balancing work within a group?
- Can you have more consumers than partitions?
- What happens when a new consumer is added to a group?
- What delivery guarantees does Kafka provide?
- What is the difference between at-most-once, at-least-once and exactly-once?
- How to configure exactly-once semantics?
- What is an offset in Kafka?
- How does commit offset work?
- What is the difference between auto commit and manual commit?
- What is rebalancing and when does it happen?
- What is replication in Kafka?
- What are leader and follower replicas?
- What is ISR (In-Sync Replicas)?
- How does Kafka ensure fault tolerance?
- What is producer acknowledgment and what modes exist (acks=0,1,all)?
- What is a batch in Kafka producer?
- How does message compression work?
- What is an idempotent producer?
- How to handle errors when reading messages?
- What is DLQ (Dead Letter Queue)?
- How to monitor consumer lag?
- What is a retention policy?
- How are old messages deleted from a topic?
- Can you read messages from a specific partition?
- How to implement message filtering on the consumer side?
14. Docker / Kubernetes
- What is containerization and why is it needed?
- What is the difference between a container and a virtual machine?
- What is a Dockerfile?
- What are the main instructions used in a Dockerfile?
- What is the difference between CMD and ENTRYPOINT?
- What is multi-stage build?
- What is Docker Compose?
- What is Kubernetes and why is it needed?
- What is a Pod in Kubernetes?
- What is a Node in Kubernetes?
- What is a Service in Kubernetes?
- What types of Service exist (ClusterIP, NodePort, LoadBalancer)?
- What is a ReplicaSet?
- How does scaling work in Kubernetes?
- What is HorizontalPodAutoscaler?
- What is the difference between ConfigMap and Secret?
- What is a liveness probe?
- What is a readiness probe?
- Why are health checks needed?
- What is Ingress in Kubernetes?
- What is a namespace?
- How to organize a rolling update in Kubernetes?
- What is a StatefulSet and when to use it?
- How to monitor applications in Kubernetes?
13. Immutability
- What is an immutable (unchangeable) object?
- What advantages do immutable objects provide?
- How to create an immutable class in Java?
- Why is the String class immutable?
- What are the consequences of String immutability?
- Why are immutable objects thread-safe?
- What is the
finalkeyword and how does it help create immutable classes? - Is making all fields final sufficient for immutability?
- What to do if a class field references a mutable object?
- What is a defensive copy?
- When do you need to make a defensive copy?
- How to protect a collection from modifications?
- What is Collections.unmodifiableList() and how does it work?
- What is the difference between shallow copy and deep copy?
- Can you inherit from an immutable class?
- Why must an immutable class be final?
- What happens if you override a getter in a subclass of an immutable class?
- How does String pool work and how is it related to immutability?
- Can you change a String value via reflection?
- What is Record and how does it help create immutable classes?
- Why are LocalDate and LocalDateTime immutable?
- What are the advantages of immutable objects for caching?
- How does immutability affect performance?
- What are persistent data structures?
- Are there any disadvantages to immutable objects?
- How to implement Builder pattern for an immutable class?
- Can you use immutable objects as keys in HashMap?
- What happens if you change a mutable key in HashMap?
- How to properly work with collections in immutable classes?
12. String
- How does String Pool work?
- What is the difference between creating a String via literal and via
new? - When should you use intern()?
- Why is String immutable?
- When to use StringBuilder vs StringBuffer?
- Why is StringBuffer slower than StringBuilder?
- What happens when concatenating strings via the
+operator? - How does the Java compiler optimize string concatenation?
- Can you use
==to compare Strings? - What is the difference between
==and equals() for String? - Where is the String Pool stored (in which memory area)?
- Can String Pool cause OutOfMemoryError?
- What does the substring() method do and how did it work before Java 7?
- Why was the substring() implementation changed in Java 7?
- How does the split() method work?
- What is the difference between replace() vs replaceAll()?
- What is String encoding?
- How to properly convert a String to byte[] and back?
- What are compact strings in Java 9+?
- How to find out how much memory a String occupies?
- Can you change the content of a String via reflection?
- What is String deduplication in G1 GC?
- Why does String implement Comparable and CharSequence?
11. Transactions
- Decode each letter of ACID.
- What transaction isolation levels exist?
- What is Read Uncommitted?
- What is Read Committed?
- What is Repeatable Read?
- What is Serializable?
- What is a dirty read?
- What is a non-repeatable read?
- What is a phantom read?
- What is a lost update?
- What is the default isolation level in PostgreSQL?
- What is the default isolation level in MySQL?
- What is Propagation in Spring?
- What does Propagation.NESTED do?
- What is the difference between REQUIRED and REQUIRES_NEW?
- What is the @Transactional annotation?
- At which level can you use @Transactional?
- What is rollback in transactions?
- Which exceptions trigger rollback by default?
- How to configure rollback for checked exceptions?
- What is a readonly transaction?
- What happens when you call a @Transactional method from another method of the same class?
10. HashMap / equals / hashCode
- How is HashMap structured internally?
- What is a bucket in HashMap?
- How does HashMap determine which bucket to put an element in?
- What is a collision in HashMap?
- How does HashMap handle collisions?
- What happens when 8 elements are reached in one bucket?
- What is the equals() and hashCode() contract?
- If two objects are equal by equals(), what can you say about their hashCode()?
- If two objects have the same hashCode(), are they necessarily equal by equals()?
- What happens if you override equals() but not hashCode()?
- What happens if you override hashCode() but not equals()?
- Can you use a mutable object as a key in HashMap?
- What happens if you change a key after adding it to HashMap?
- What are the requirements for a HashMap key?
- Why is String often used as a key in HashMap?
- What is load factor in HashMap?
- What is capacity in HashMap?
- When does rehashing occur in HashMap?
- What happens during rehashing?
- What is the time complexity of get() and put() operations in HashMap?
- When can the time complexity become O(n)?
- How does HashMap work in a multi-threaded environment?
- What is ConcurrentHashMap and how does it differ from HashMap?
- Can you store a null key in HashMap?
- Can you store a null value in HashMap?
- What is the difference between HashMap and Hashtable?
- What is WeakHashMap?
- How to properly choose initial capacity for HashMap?
- Which is better: ArrayList or HashMap for storing key-value pairs?
9. Concurrency
- What is the difference between synchronized and volatile?
- What is happens-before relationship?
- What is the visibility problem?
- What is a monitor in Java?
- How does synchronized work at the monitor level?
- What is the difference between a synchronized method and a synchronized block?
- What is a reentrant lock?
- What are Atomic classes?
- What is CAS (Compare-And-Swap)?
- How do AtomicInteger and AtomicLong work?
- What are the advantages of Atomic classes over synchronized?
- What is a Thread Pool?
- What types of Thread Pool exist in Java?
- What does ExecutorService do?
- What is the difference between Executors.newFixedThreadPool() and newCachedThreadPool()?
- What is ForkJoinPool?
- What is a deadlock?
- What conditions are necessary for a deadlock to occur?
- How to prevent deadlock?
- What is a race condition?
- How to avoid race conditions?
- What are Virtual Threads in Java 21?
- What are the advantages of Virtual Threads over regular threads?
- When should you use Virtual Threads?
- What is structured concurrency?
- What is the difference between Thread and Runnable?
- What are Callable and Future?
8. Stream API
- What advantages does Stream API provide?
- What is the difference between intermediate and terminal operations?
- What does the filter() operation do?
- What does the map() operation do?
- What does the collect() operation do?
- What is a Collector and what built-in Collectors exist?
- What does the flatMap() operation do?
- What is the difference between map() and flatMap()?
- What are parallel streams?
- When to use parallel streams?
- How to create a parallel stream?
- What potential problems can arise with parallel streams?
- What is ForkJoinPool and how is it related to parallel streams?
- Can you modify the state of external variables in Stream operations?
- What are side effects in Stream?
- Why should you avoid side effects in Stream?
- What does the reduce() operation do?
- What is the difference between reduce() and collect()?
- What is the peek() operation and when to use it?
- Can you reuse a Stream?
- What is lazy evaluation in Stream?
- When does the execution of Stream operations begin?
- What do distinct(), sorted(), limit(), skip() operations do?
- How does short-circuiting work in Stream?
- What are anyMatch(), allMatch(), noneMatch() operations?
- What do findFirst() and findAny() operations do?
- How to collect a Stream into a Map?
- What to do with key collisions when collecting into a Map?
- How to work with Optional in Stream?
7. Exceptions
- What is the difference between checked and unchecked exceptions?
- What is a checked exception and when to use it?
- What is an unchecked exception (Runtime Exception)?
- Which exceptions must always be handled?
- What is at the top of the exception hierarchy?
- What is Throwable?
- What is the difference between Error and Exception?
- Is the finally block guaranteed to execute?
- What is try-with-resources?
- What are the requirements for resources in try-with-resources?
- What is the AutoCloseable interface?
- What is the difference between AutoCloseable and Closeable?
- Can you create custom exceptions?
- When should you create your own exceptions?
- Which is better: extending Exception or RuntimeException?
- What is a stack trace?
- What does the printStackTrace() method do?
- How to properly log exceptions?
- What is exception wrapping?
- Why shouldn't you swallow exceptions (empty catch)?
- What does the throws keyword do?
- Can you throw a checked exception from a method without throws?
- What happens if an exception also occurs in the finally block?
- What are suppressed exceptions?
- Can you have multiple catch blocks for a single try?
- What is multi-catch?
- In what order should you arrange catch blocks?
- Can you re-throw an exception?
- What is exception chaining?
6. REST / HTTP
- What is REST?
- What does Stateless mean in the context of REST?
- What are the main HTTP methods used in REST?
- What is the difference between PUT and PATCH?
- What is idempotency?
- Which HTTP methods are idempotent?
- Why are GET and DELETE idempotent?
- Is POST idempotent?
- What HTTP status codes do you know?
- What is the difference between 401 and 403?
- What is RESTful API design?
- How to properly name REST endpoints?
- Should you use verbs in URLs?
- What is HATEOAS?
- How to organize REST API versioning?
- What is the Content-Type header?
- What is the Accept header?
5. Spring / Spring Boot
- What is Dependency Injection?
- What is the difference between constructor, setter and field injection?
- Which injection type is recommended and why?
- What is a Bean in Spring?
- How to create a Bean in Spring?
- What is Bean Lifecycle?
- What are the stages of Bean lifecycle?
- What is BeanPostProcessor?
- What do methods with @PostConstruct and @PreDestroy annotations do?
- What is Bean scope?
- What scopes exist in Spring?
- What is the difference between singleton and prototype scope?
- What is a proxy in Spring?
- When does Spring create a proxy?
- What is AOP (Aspect-Oriented Programming)?
- What are aspect, advice, pointcut, join point?
- What does the @Transactional annotation do?
- Why doesn't @Transactional work with self-invocation?
- How to solve the self-invocation problem?
- What is auto-configuration in Spring Boot?
- How does @SpringBootApplication work?
- What is a starter in Spring Boot?
- What does the @ComponentScan annotation do?
- What is a @Configuration class?
- What is the difference between @Component, @Service, @Repository, @Controller?
- What does the @Autowired annotation do?
- What to do if there are multiple beans of the same type?
- What is @Qualifier?
- What are profiles in Spring?
4. Collections
- What are the main interfaces of the Collection Framework?
- What is the difference between List, Set and Queue?
- What is the difference between ArrayList and LinkedList?
- When to use ArrayList vs LinkedList?
- What is the time complexity of operations in ArrayList?
- What is the time complexity of operations in LinkedList?
- What is Vector and how does it differ from ArrayList?
- What is Stack?
- What is Queue and what implementations exist?
- What is Deque?
- What is the difference between HashSet, LinkedHashSet and TreeSet?
- How does HashSet work internally?
- What is TreeSet and how does it work?
- What is Map and what implementations exist?
- What is the difference between HashMap, LinkedHashMap and TreeMap?
- When to use TreeMap?
- What is WeakHashMap?
- What is ConcurrentHashMap?
- How does ConcurrentHashMap ensure thread-safety?
- What is CopyOnWriteArrayList?
- When to use synchronized collections?
- How to get a synchronized collection?
- What is Collections.unmodifiableList() and how does it work?
- What is the difference between Iterator and ListIterator?
- What are fail-fast and fail-safe iterators?
- What is ConcurrentModificationException?
- How to properly remove elements during iteration?
- What are Comparable and Comparator?
- What is the difference between Comparable and Comparator?
- What operations does the Collection interface support?
3. Memory & Garbage Collection
- What is the difference between Heap and Stack?
- What is stored in Heap?
- What is stored in Stack?
- What is Garbage Collection?
- When does an object become a candidate for GC removal?
- What is a memory leak in Java?
- How can a memory leak occur in Java?
- What are generations in GC (young, old, metaspace)?
- What is Young Generation?
- What is Old Generation (Tenured)?
- What is Metaspace (or PermGen)?
- What GC algorithms exist?
- What is G1 GC?
- What is ZGC?
- What is Shenandoah GC?
- What is stop-the-world?
- Which GCs minimize stop-the-world pauses?
- What are the -Xms and -Xmx parameters?
- What happens on OutOfMemoryError?
- What types of OutOfMemoryError exist?
- What is a memory leak and how to detect it?
- What tools help analyze memory?
- What is a heap dump?
- How to get a heap dump?
- What are GC roots?
- What is reachability in the context of GC?
- Can you manually invoke GC?
- Why shouldn't you call System.gc()?
2. Design Patterns
- What are design patterns?
- What categories of patterns exist?
- What is Singleton?
- How to implement a thread-safe Singleton?
- What is double-checked locking?
- What are the problems with Singleton?
- What is the difference between Factory Method and Abstract Factory?
- When to use Builder?
- What is the Prototype pattern?
- When to use Strategy?
- How is Observer implemented in Java?
- What is the advantage of Decorator over inheritance?
- What is the difference between State and Strategy?
- What types of Proxy exist?
- What is the Iterator pattern?
- What anti-patterns do you know?
1. Databases / SQL / PostgreSQL
- Why are indexes needed?
- How does a B-tree index work?
- What is a composite index?
- When should you create an index?
- What are the disadvantages of indexes?
- What is index cardinality?
- What types of JOIN exist?
- What is the difference between INNER JOIN and LEFT JOIN?
- Which is better: JOIN or subquery?
- What is a correlated subquery?
- What is the difference between WHERE and HAVING?
- What does GROUP BY do?
- When to use HAVING?
- What are window functions?
- What does ROW_NUMBER() do?
- What do RANK() and DENSE_RANK() do?
- How does MVCC work in PostgreSQL?
- What is VACUUM in PostgreSQL?
- Why is ANALYZE needed?
- What is explain plan?
- How to optimize slow queries?
📊 Statistics
| Metric | Value |
|---|---|
| Total questions | 500+ |
| Total categories | 20 |
| Each answer has | 🟢 Junior + 🟡 Middle + 🔴 Senior |
| Languages | English, Ukrainian, Russian |
| Formats | GitHub repository + GitHub Pages |
📂 Repository Structure
README.md
eng/ -> English markdown source
ua/ -> Ukrainian markdown source
ru/ -> Russian markdown source
docs/ -> GitHub Pages SEO site
scripts/ -> site generation and helper scripts
Language Versions
- English repository version: eng/README.md
- Ukrainian repository version: ua/README.md
- Russian repository version: ru/README.md
Each file contains answers at three depth levels:
- 🟢 Junior — simple explanations and the core idea
- 🟡 Middle — internals, common pitfalls, and practical nuances
- 🔴 Senior — deep technical details, architectural trade-offs, and production context
Updated: 2026-04-09
Explore related projects
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,710 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,892 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,490 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,521 stars