[{"id":"Q1","t":"What is the difference between JDK, JRE, and JVM?","u":"/interview/core-java/jdk-jre-jvm/jdk-jre-jvm-difference-needs/","ch":"Core Java","tp":"JDK, JRE & JVM","qn":1},{"id":"Q2","t":"What happens end to end when a Java program runs?","u":"/interview/core-java/jdk-jre-jvm/bytecode-jvm-happens-runs-javac-loading-jit-execution/","ch":"Core Java","tp":"JDK, JRE & JVM","qn":2},{"id":"Q3","t":"What is the difference between JVM specification and JVM implementation?","u":"/interview/core-java/jdk-jre-jvm/jvm-bytecode-difference-specification-implementation/","ch":"Core Java","tp":"JDK, JRE & JVM","qn":3},{"id":"Q4","t":"How does Java achieve platform independence?","u":"/interview/core-java/jdk-jre-jvm/once-achieve-platform-independence-real-limits-run-anywhere/","ch":"Core Java","tp":"JDK, JRE & JVM","qn":4},{"id":"Q141","t":"What is the var keyword in Java?","u":"/interview/core-java/variables-scope-var/var-keyword-cannot-variable-statically-typed/","ch":"Core Java","tp":"Variables, Scope & var","qn":3},{"id":"Q33","t":"What are the rules for instance variables in Java?","u":"/interview/core-java/variables-scope-var/rules-declaring-initializing-accessing-scoping-instance/","ch":"Core Java","tp":"Variables, Scope & var","qn":1},{"id":"Q34","t":"What happens if you print an uninitialized local variable?","u":"/interview/core-java/variables-scope-var/try-declare-local-variable-inside-main-initialize-happens/","ch":"Core Java","tp":"Variables, Scope & var","qn":2},{"id":"Q121","t":"What are the wrapper classes and why are they needed?","u":"/interview/core-java/primitive-types-wrappers/wrapper-classes-needed-difference-parseint-valueof/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":7},{"id":"Q122","t":"What happens when you parse an invalid number?","u":"/interview/core-java/primitive-types-wrappers/happens-parse-invalid-number-numbers-different-bases/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":8},{"id":"Q132","t":"What is the char type and how does Java handle Unicode?","u":"/interview/core-java/primitive-types-wrappers/char-type-handle-unicode/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":9},{"id":"Q133","t":"What is the difference between widening and narrowing conversions?","u":"/interview/core-java/primitive-types-wrappers/difference-widening-narrowing-conversions/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":10},{"id":"Q134","t":"What is implicit coercion in mixed expressions?","u":"/interview/core-java/primitive-types-wrappers/implicit-coercion-mixed-expressions/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":11},{"id":"Q27","t":"What are the eight primitive data types in Java?","u":"/interview/core-java/primitive-types-wrappers/eight-primitive-data-types/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":1},{"id":"Q28","t":"Where are primitive data types stored in memory?","u":"/interview/core-java/primitive-types-wrappers/section-memory-primitive-data-types-stored/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":2},{"id":"Q29","t":"How do numeric promotion and casting work for primitives?","u":"/interview/core-java/primitive-types-wrappers/numeric-promotion-casting-primitives/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":3},{"id":"Q30","t":"What is autoboxing, unboxing, and the Integer cache?","u":"/interview/core-java/primitive-types-wrappers/cache-autoboxing-unboxing-integer-affect-comparison/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":4},{"id":"Q31","t":"Why is Integer 100 == 100 true but Integer 1000 == 1000 false?","u":"/interview/core-java/primitive-types-wrappers/integer-100-true-1000-false/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":5},{"id":"Q32","t":"When does unboxing cause a NullPointerException?","u":"/interview/core-java/primitive-types-wrappers/nullpointerexception-unboxing-cause/","ch":"Core Java","tp":"Primitive Types & Wrappers","qn":6},{"id":"Q123","t":"What is the difference between && and & in Java?","u":"/interview/core-java/operators-expressions/difference/","ch":"Core Java","tp":"Operators & Expressions","qn":3},{"id":"Q124","t":"What are the bitwise and shift operators?","u":"/interview/core-java/operators-expressions/bitwise-shift-operators/","ch":"Core Java","tp":"Operators & Expressions","qn":4},{"id":"Q125","t":"What is the ternary conditional operator?","u":"/interview/core-java/operators-expressions/ternary-conditional-operator/","ch":"Core Java","tp":"Operators & Expressions","qn":5},{"id":"Q126","t":"What are the looping constructs in Java?","u":"/interview/core-java/operators-expressions/looping-constructs/","ch":"Core Java","tp":"Operators & Expressions","qn":6},{"id":"Q127","t":"What is the difference between switch statement and switch expression?","u":"/interview/core-java/operators-expressions/difference-switch-statement-expression/","ch":"Core Java","tp":"Operators & Expressions","qn":7},{"id":"Q128","t":"What does the Math class provide?","u":"/interview/core-java/operators-expressions/math-provide/","ch":"Core Java","tp":"Operators & Expressions","qn":8},{"id":"Q129","t":"How do you detect and avoid integer overflow?","u":"/interview/core-java/operators-expressions/detect-avoid-integer-overflow/","ch":"Core Java","tp":"Operators & Expressions","qn":9},{"id":"Q41","t":"Is int i = 09 a valid statement?","u":"/interview/core-java/operators-expressions/int-09-valid-statement/","ch":"Core Java","tp":"Operators & Expressions","qn":2},{"id":"Q5","t":"What is the difference between == and .equals()?","u":"/interview/core-java/operators-expressions/equals-difference/","ch":"Core Java","tp":"Operators & Expressions","qn":1},{"id":"Q35","t":"Why is the main method public, static, and void?","u":"/interview/core-java/main-method/static-main-public-void/","ch":"Core Java","tp":"The main Method","qn":1},{"id":"Q36","t":"Can the main method be overloaded?","u":"/interview/core-java/main-method/main-overloaded/","ch":"Core Java","tp":"The main Method","qn":2},{"id":"Q37","t":"Can the main method be overridden?","u":"/interview/core-java/main-method/main-overridden/","ch":"Core Java","tp":"The main Method","qn":3},{"id":"Q38","t":"Can you have two main methods in a Java application?","u":"/interview/core-java/main-method/main-methods-application/","ch":"Core Java","tp":"The main Method","qn":4},{"id":"Q40","t":"Can varargs replace String[] args in the main method?","u":"/interview/core-java/main-method/string-varargs-replace-args-main/","ch":"Core Java","tp":"The main Method","qn":5},{"id":"Q14","t":"What are the four access modifiers in Java?","u":"/interview/core-java/access-modifiers/access-modifiers-exact-visibility/","ch":"Core Java","tp":"Access Modifiers","qn":1},{"id":"Q6","t":"What does the final keyword mean on a class, method, variable, and parameter?","u":"/interview/core-java/keywords-final/final-keyword-mean-variable-parameter/","ch":"Core Java","tp":"Keywords: final","qn":1},{"id":"Q7","t":"Given final int a = 20, can you assign it to another variable?","u":"/interview/core-java/keywords-final/final-int-20-assign-another-variable/","ch":"Core Java","tp":"Keywords: final","qn":2},{"id":"Q8","t":"What happens if you declare final int x without initializing?","u":"/interview/core-java/keywords-final/final-int-happens-declare-without-initializing/","ch":"Core Java","tp":"Keywords: final","qn":3},{"id":"Q9","t":"What is the difference between final, finally, and finalize()?","u":"/interview/core-java/keywords-final/final-finally-finalize-difference/","ch":"Core Java","tp":"Keywords: final","qn":4},{"id":"Q10","t":"What is the static keyword and why is main static?","u":"/interview/core-java/keywords-static/static-keyword-main/","ch":"Core Java","tp":"Keywords: static","qn":1},{"id":"Q11","t":"What is the difference between static and instance variables?","u":"/interview/core-java/keywords-static/static-difference-instance-variables/","ch":"Core Java","tp":"Keywords: static","qn":2},{"id":"Q12","t":"How does static behave in inheritance?","u":"/interview/core-java/keywords-static/static-inheritance-behave/","ch":"Core Java","tp":"Keywords: static","qn":3},{"id":"Q13","t":"What happens if a static initializer block throws an exception?","u":"/interview/core-java/keywords-static/static-throws-exception-happens-initializer-block/","ch":"Core Java","tp":"Keywords: static","qn":4},{"id":"Q39","t":"What are varargs and what are the rules?","u":"/interview/core-java/methods-varargs/varargs-rules/","ch":"Core Java","tp":"Methods & Varargs","qn":1},{"id":"Q62","t":"Can you override private and static methods?","u":"/interview/core-java/methods-varargs/static-override-private-methods/","ch":"Core Java","tp":"Methods & Varargs","qn":2},{"id":"Q63","t":"With overloaded methods taking Object and String, which is called for null?","u":"/interview/core-java/methods-varargs/string-null-overloaded-methods-taking-object-called/","ch":"Core Java","tp":"Methods & Varargs","qn":3},{"id":"Q145","t":"What are the rules for this() and super() in constructors?","u":"/interview/core-java/constructors-this-super/rules-super-constructors/","ch":"Core Java","tp":"Constructors & this/super","qn":1},{"id":"Q153","t":"What are the constructor chaining rules?","u":"/interview/core-java/constructors-this-super/constructor-chaining-rules/","ch":"Core Java","tp":"Constructors & this/super","qn":2},{"id":"Q154","t":"Can an abstract class have a constructor?","u":"/interview/core-java/constructors-this-super/abstract-constructor/","ch":"Core Java","tp":"Constructors & this/super","qn":3},{"id":"Q66","t":"What is an enum and how is it different from constants?","u":"/interview/core-java/enum/enum-different-constants/","ch":"Core Java","tp":"Enum","qn":1},{"id":"Q67","t":"How does an enum with an abstract method implement the Strategy pattern?","u":"/interview/core-java/enum/enum-abstract-strategy-pattern-implement/","ch":"Core Java","tp":"Enum","qn":2},{"id":"Q120","t":"What are the different ways to create a String?","u":"/interview/core-java/string-and-string-pool/string-different-create/","ch":"Core Java","tp":"String & String Pool","qn":10},{"id":"Q135","t":"What are the essential String methods?","u":"/interview/core-java/string-and-string-pool/string-essential-methods/","ch":"Core Java","tp":"String & String Pool","qn":11},{"id":"Q136","t":"What are the gotchas of String.split()?","u":"/interview/core-java/string-and-string-pool/string-gotchas-split/","ch":"Core Java","tp":"String & String Pool","qn":12},{"id":"Q19","t":"Why is String immutable in Java?","u":"/interview/core-java/string-and-string-pool/string-immutable/","ch":"Core Java","tp":"String & String Pool","qn":1},{"id":"Q20","t":"What is the String Pool and how does it decide reuse?","u":"/interview/core-java/string-and-string-pool/string-pool-decide-reuse/","ch":"Core Java","tp":"String & String Pool","qn":2},{"id":"Q21","t":"What is String interning and how does it affect == comparisons?","u":"/interview/core-java/string-and-string-pool/string-interning-affect-comparisons/","ch":"Core Java","tp":"String & String Pool","qn":3},{"id":"Q22","t":"How does String concatenation work internally?","u":"/interview/core-java/string-and-string-pool/string-concatenation-internally/","ch":"Core Java","tp":"String & String Pool","qn":4},{"id":"Q23","t":"What is the difference between String, StringBuilder, and StringBuffer?","u":"/interview/core-java/string-and-string-pool/string-stringbuilder-stringbuffer-difference/","ch":"Core Java","tp":"String & String Pool","qn":5},{"id":"Q24","t":"How is StringBuffer thread-safe compared to String and StringBuilder?","u":"/interview/core-java/string-and-string-pool/stringbuffer-string-stringbuilder-thread-safe-compared/","ch":"Core Java","tp":"String & String Pool","qn":6},{"id":"Q25","t":"How do String and StringBuffer handle memory differently?","u":"/interview/core-java/string-and-string-pool/string-stringbuffer-handle-memory-differently/","ch":"Core Java","tp":"String & String Pool","qn":7},{"id":"Q26","t":"When would you specifically need StringBuffer over StringBuilder?","u":"/interview/core-java/string-and-string-pool/stringbuffer-stringbuilder-specifically/","ch":"Core Java","tp":"String & String Pool","qn":8},{"id":"Q92","t":"Why are strings immutable in Java?","u":"/interview/core-java/string-and-string-pool/immutable-strings-detailed/","ch":"Core Java","tp":"String & String Pool","qn":9},{"id":"Q15","t":"How do you create an immutable class in Java?","u":"/interview/core-java/immutability/immutable-create/","ch":"Core Java","tp":"Immutability","qn":1},{"id":"Q16","t":"Is an immutable class with a mutable field still immutable?","u":"/interview/core-java/immutability/immutable-mutable-field/","ch":"Core Java","tp":"Immutability","qn":2},{"id":"Q17","t":"How do you make an existing List immutable?","u":"/interview/core-java/immutability/list-immutable-existing/","ch":"Core Java","tp":"Immutability","qn":3},{"id":"Q18","t":"Why is an immutable value class inherently thread-safe?","u":"/interview/core-java/immutability/immutable-value-inherently-thread-safe/","ch":"Core Java","tp":"Immutability","qn":4},{"id":"Q137","t":"What are the array declaration and initialization forms in Java?","u":"/interview/core-java/arrays/array-declaration-initialization-forms/","ch":"Core Java","tp":"Arrays","qn":1},{"id":"Q138","t":"What are multi-dimensional and jagged arrays?","u":"/interview/core-java/arrays/multi-dimensional-jagged-arrays/","ch":"Core Java","tp":"Arrays","qn":2},{"id":"Q139","t":"What does the Arrays utility class provide?","u":"/interview/core-java/arrays/arrays-utility-provide/","ch":"Core Java","tp":"Arrays","qn":3},{"id":"Q140","t":"What are the key differences between an array and an ArrayList?","u":"/interview/core-java/arrays/array-arraylist-key-differences/","ch":"Core Java","tp":"Arrays","qn":4},{"id":"Q53","t":"What is the superclass of all Java classes?","u":"/interview/core-java/object-class-equals-hashcode/superclass-classes/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":1},{"id":"Q54","t":"What is the difference between Object and Objects?","u":"/interview/core-java/object-class-equals-hashcode/difference-object-objects/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":2},{"id":"Q55","t":"What is the contract between equals() and hashCode()?","u":"/interview/core-java/object-class-equals-hashcode/equals-hashcode-contract/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":3},{"id":"Q56","t":"What happens if you override equals() but not hashCode()?","u":"/interview/core-java/object-class-equals-hashcode/equals-hashcode-happens-override/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":4},{"id":"Q57","t":"What if hashCode() always returns a constant?","u":"/interview/core-java/object-class-equals-hashcode/hashcode-always-returns-constant/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":5},{"id":"Q58","t":"How do you make a custom object a valid HashMap key?","u":"/interview/core-java/object-class-equals-hashcode/hashmap-custom-object-valid-key/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":6},{"id":"Q59","t":"How do you compare two values safely when either may be null?","u":"/interview/core-java/object-class-equals-hashcode/null-compare-values-safely-either/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":7},{"id":"Q60","t":"Why do senior developers avoid scattering null checks?","u":"/interview/core-java/object-class-equals-hashcode/null-senior-developers-avoid-scattering-checks/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":8},{"id":"Q61","t":"Why do == and equals() not compare array contents?","u":"/interview/core-java/object-class-equals-hashcode/equals-array-compare-contents/","ch":"Core Java","tp":"Object Class, equals & hashCode","qn":9},{"id":"Q64","t":"Explain B b = new A() vs A a = new B() with upcasting","u":"/interview/core-java/upcasting-dispatch/upcasting-downcasting/","ch":"Core Java","tp":"Upcasting & Dispatch","qn":1},{"id":"Q65","t":"What is a base class and how does it differ from a derived class?","u":"/interview/core-java/upcasting-dispatch/base-differ-derived/","ch":"Core Java","tp":"Upcasting & Dispatch","qn":2},{"id":"Q84","t":"Is Java pass-by-value or pass-by-reference?","u":"/interview/core-java/pass-by-value-references/pass-by-value-pass-by-reference/","ch":"Core Java","tp":"Pass-by-Value & References","qn":1},{"id":"Q85","t":"Why does Java not expose explicit pointers?","u":"/interview/core-java/pass-by-value-references/expose-explicit-pointers/","ch":"Core Java","tp":"Pass-by-Value & References","qn":2},{"id":"Q90","t":"What is object cloning in Java?","u":"/interview/core-java/object-cloning/object-cloning/","ch":"Core Java","tp":"Object Cloning","qn":1},{"id":"Q91","t":"How do you achieve deep cloning?","u":"/interview/core-java/object-cloning/achieve-deep-cloning/","ch":"Core Java","tp":"Object Cloning","qn":2},{"id":"Q88","t":"What is an inner class and what are the four types?","u":"/interview/core-java/inner-classes/inner-types/","ch":"Core Java","tp":"Inner Classes","qn":1},{"id":"Q89","t":"Can you make a class private?","u":"/interview/core-java/inner-classes/top-level-private/","ch":"Core Java","tp":"Inner Classes","qn":2},{"id":"Q87","t":"What is a marker interface and what are the examples?","u":"/interview/core-java/marker-interface/interface-marker-examples/","ch":"Core Java","tp":"Marker Interface","qn":1},{"id":"Q68","t":"What are custom exceptions and how do you create them?","u":"/interview/core-java/exception-hierarchy/custom-exceptions-create/","ch":"Core Java","tp":"Exception Hierarchy","qn":1},{"id":"Q69","t":"What is the Throwable class and the exception hierarchy?","u":"/interview/core-java/exception-hierarchy/exception-throwable-hierarchy/","ch":"Core Java","tp":"Exception Hierarchy","qn":2},{"id":"Q130","t":"How do you read user input in Java?","u":"/interview/core-java/io-and-system/user/","ch":"Core Java","tp":"I/O & System","qn":2},{"id":"Q131","t":"What is the difference between byte streams and character streams?","u":"/interview/core-java/io-and-system/byte-difference-streams-character/","ch":"Core Java","tp":"I/O & System","qn":3},{"id":"Q70","t":"What is the difference between System.out, System.err, and System.in?","u":"/interview/core-java/io-and-system/system-difference-err/","ch":"Core Java","tp":"I/O & System","qn":1},{"id":"Q42","t":"What is the transient keyword?","u":"/interview/core-java/serialization/transient-keyword/","ch":"Core Java","tp":"Serialization & transient","qn":1},{"id":"Q43","t":"How does transient work with a serialization example?","u":"/interview/core-java/serialization/transient-serialization/","ch":"Core Java","tp":"Serialization & transient","qn":2},{"id":"Q44","t":"What is the difference between transient and volatile?","u":"/interview/core-java/serialization/transient-volatile-difference/","ch":"Core Java","tp":"Serialization & transient","qn":3},{"id":"Q45","t":"What is serialization and why must a class implement Serializable?","u":"/interview/core-java/serialization/serializable-serialization-implement/","ch":"Core Java","tp":"Serialization & transient","qn":4},{"id":"Q46","t":"Why should you not serialize to a plain text file?","u":"/interview/core-java/serialization/file-serialize-plain-text/","ch":"Core Java","tp":"Serialization & transient","qn":5},{"id":"Q47","t":"What happens with a non-serializable member inside a Serializable class?","u":"/interview/core-java/serialization/serializable-happens-non-serializable-member-inside/","ch":"Core Java","tp":"Serialization & transient","qn":6},{"id":"Q48","t":"What is serialVersionUID and why does it matter?","u":"/interview/core-java/serialization/serialversionuid-matter/","ch":"Core Java","tp":"Serialization & transient","qn":7},{"id":"Q49","t":"How do you serialize an object to a byte stream?","u":"/interview/core-java/serialization/byte-stream-serialize-object/","ch":"Core Java","tp":"Serialization & transient","qn":8},{"id":"Q50","t":"If a variable is static, does it participate in serialization?","u":"/interview/core-java/serialization/static-variable-participate-serialization/","ch":"Core Java","tp":"Serialization & transient","qn":9},{"id":"Q51","t":"How do you prevent a child class from being serialized?","u":"/interview/core-java/serialization/prevent-child-serialized/","ch":"Core Java","tp":"Serialization & transient","qn":10},{"id":"Q52","t":"What is the Externalizable interface?","u":"/interview/core-java/serialization/interface-externalizable/","ch":"Core Java","tp":"Serialization & transient","qn":11},{"id":"Q142","t":"What are the built-in Java annotations?","u":"/interview/core-java/annotations/annotations-built-in/","ch":"Core Java","tp":"Annotations","qn":1},{"id":"Q143","t":"How do you create a custom annotation?","u":"/interview/core-java/annotations/create-custom-annotation/","ch":"Core Java","tp":"Annotations","qn":2},{"id":"Q146","t":"How do Spring, JPA, and JUnit use annotations at runtime?","u":"/interview/core-java/annotations/spring-jpa-junit-annotations-runtime/","ch":"Core Java","tp":"Annotations","qn":3},{"id":"Q86","t":"What is a recursive program?","u":"/interview/core-java/recursion/recursion-cause-stackoverflowerror-recursive/","ch":"Core Java","tp":"Recursion","qn":1},{"id":"Q118","t":"What are the different ways to create an object in Java?","u":"/interview/core-java/reflection-object-creation/different-create-object/","ch":"Core Java","tp":"Reflection & Object Creation","qn":1},{"id":"Q119","t":"What is the Reflection API?","u":"/interview/core-java/reflection-object-creation/reflection-api/","ch":"Core Java","tp":"Reflection & Object Creation","qn":2},{"id":"Q155","t":"How has the Java interface evolved?","u":"/interview/core-java/interface-evolution/interface-evolved-17/","ch":"Core Java","tp":"Interface Evolution","qn":1},{"id":"Q147","t":"What is the Java compilation and execution flow?","u":"/interview/core-java/classloading-compilation/compilation-execution-flow/","ch":"Core Java","tp":"Class Loading & Compilation","qn":3},{"id":"Q148","t":"What are packages and how do imports work?","u":"/interview/core-java/classloading-compilation/packages-imports/","ch":"Core Java","tp":"Class Loading & Compilation","qn":4},{"id":"Q71","t":"What is a class loader and what are the types?","u":"/interview/core-java/classloading-compilation/loader-types/","ch":"Core Java","tp":"Class Loading & Compilation","qn":1},{"id":"Q72","t":"What is the class-loader delegation model?","u":"/interview/core-java/classloading-compilation/class-loader-delegation-model/","ch":"Core Java","tp":"Class Loading & Compilation","qn":2},{"id":"Q100","t":"What is shallow heap vs retained heap in heap dump analysis?","u":"/interview/core-java/memory-management-gc/heap-sort-heap-dump-analysis-difference-shallow-retained/","ch":"Core Java","tp":"Memory Management & GC","qn":18},{"id":"Q101","t":"How do you investigate a heap dump with Eclipse MAT?","u":"/interview/core-java/memory-management-gc/tree-heap-path-gc-catch-walk-eclipse-mat-heap-dump/","ch":"Core Java","tp":"Memory Management & GC","qn":19},{"id":"Q102","t":"How do you capture a heap dump in Kubernetes?","u":"/interview/core-java/memory-management-gc/heap-kubernetes-capture-dump-containers-ephemeral-oomkill/","ch":"Core Java","tp":"Memory Management & GC","qn":20},{"id":"Q152","t":"What makes an object eligible for garbage collection?","u":"/interview/core-java/memory-management-gc/collection-gc-isolation-object-eligible-garbage-live-strong/","ch":"Core Java","tp":"Memory Management & GC","qn":21},{"id":"Q73","t":"What types of memory are in the Java Memory Model?","u":"/interview/core-java/memory-management-gc/types-memory-model/","ch":"Core Java","tp":"Memory Management & GC","qn":1},{"id":"Q74","t":"How is heap memory divided?","u":"/interview/core-java/memory-management-gc/heap-metaspace-memory-divided-young-generation-eden-survivor/","ch":"Core Java","tp":"Memory Management & GC","qn":2},{"id":"Q75","t":"What is the difference between Young and Old Generation?","u":"/interview/core-java/memory-management-gc/difference-young-generation-memory-spaces/","ch":"Core Java","tp":"Memory Management & GC","qn":3},{"id":"Q76","t":"What is a memory reference in Java?","u":"/interview/core-java/memory-management-gc/mean-memory-reference/","ch":"Core Java","tp":"Memory Management & GC","qn":4},{"id":"Q77","t":"Which memory is faster, Heap or Stack?","u":"/interview/core-java/memory-management-gc/heap-stack-memory-faster-local-primitives-references-objects/","ch":"Core Java","tp":"Memory Management & GC","qn":5},{"id":"Q78","t":"How does garbage collection work in Java?","u":"/interview/core-java/memory-management-gc/collection-garbage/","ch":"Core Java","tp":"Memory Management & GC","qn":6},{"id":"Q79","t":"What is finalize() and why is it deprecated?","u":"/interview/core-java/memory-management-gc/finalize-collection-role-garbage-deprecated/","ch":"Core Java","tp":"Memory Management & GC","qn":7},{"id":"Q80","t":"Why do memory leaks still occur despite automatic GC?","u":"/interview/core-java/memory-management-gc/collection-cache-gc-automatic-garbage-memory-leaks-occur/","ch":"Core Java","tp":"Memory Management & GC","qn":8},{"id":"Q81","t":"Should you call System.gc() in production?","u":"/interview/core-java/memory-management-gc/system-gc-production-alternatives-reference-types-object/","ch":"Core Java","tp":"Memory Management & GC","qn":9},{"id":"Q82","t":"How do you debug an OutOfMemoryError?","u":"/interview/core-java/memory-management-gc/debug-outofmemoryerror/","ch":"Core Java","tp":"Memory Management & GC","qn":10},{"id":"Q83","t":"What is the difference between StackOverflowError and OutOfMemoryError?","u":"/interview/core-java/memory-management-gc/stack-recursion-heap-metaspace-thread-difference/","ch":"Core Java","tp":"Memory Management & GC","qn":11},{"id":"Q94","t":"Walk through every JVM memory area in detail","u":"/interview/core-java/memory-management-gc/jvm-heap-metaspace-stack-cache-xss-walk-memory-area-detail/","ch":"Core Java","tp":"Memory Management & GC","qn":12},{"id":"Q95","t":"What was PermGen and how does Metaspace fix it?","u":"/interview/core-java/memory-management-gc/metaspace-collection-permgen-cause-outofmemoryerror-space/","ch":"Core Java","tp":"Memory Management & GC","qn":13},{"id":"Q96","t":"How does Minor GC work in the Young Generation?","u":"/interview/core-java/memory-management-gc/gc-collection-young-generation-minor-copying-eden-survivor/","ch":"Core Java","tp":"Memory Management & GC","qn":14},{"id":"Q97","t":"What triggers a Full GC?","u":"/interview/core-java/memory-management-gc/gc-metaspace-system-heap-triggers-full-gen-promotion-failure/","ch":"Core Java","tp":"Memory Management & GC","qn":15},{"id":"Q98","t":"What is the difference between Minor, Major, and Full GC?","u":"/interview/core-java/memory-management-gc/gc-practical-difference-minor-major-full-g1/","ch":"Core Java","tp":"Memory Management & GC","qn":16},{"id":"Q99","t":"What is object promotion and premature promotion?","u":"/interview/core-java/memory-management-gc/gc-object-promotion-causes-premature-small-survivor-space/","ch":"Core Java","tp":"Memory Management & GC","qn":17},{"id":"Q103","t":"What is a TLAB and how does it make allocation fast?","u":"/interview/core-java/jvm-internals-advanced/tlab-allocation-fast/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":1},{"id":"Q104","t":"What is escape analysis?","u":"/interview/core-java/jvm-internals-advanced/escape-analysis/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":2},{"id":"Q105","t":"What are GC roots and how does tracing work?","u":"/interview/core-java/jvm-internals-advanced/gc-roots-tracing/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":3},{"id":"Q106","t":"What are Compressed Oops?","u":"/interview/core-java/jvm-internals-advanced/oops-compressed/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":4},{"id":"Q107","t":"What are Compact Object Headers?","u":"/interview/core-java/jvm-internals-advanced/compact-object-headers/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":5},{"id":"Q108","t":"What is a safepoint and Time-To-Safepoint?","u":"/interview/core-java/jvm-internals-advanced/safepoint-time-to-safepoint/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":6},{"id":"Q109","t":"What is G1 String Deduplication?","u":"/interview/core-java/jvm-internals-advanced/string-g1-deduplication/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":7},{"id":"Q110","t":"Why is finalize() deprecated and what replaces it?","u":"/interview/core-java/jvm-internals-advanced/finalize-deprecated-replaces/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":8},{"id":"Q111","t":"What are the four reference types in Java?","u":"/interview/core-java/jvm-internals-advanced/reference-types/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":9},{"id":"Q112","t":"What is WeakHashMap?","u":"/interview/core-java/jvm-internals-advanced/weakhashmap/","ch":"Core Java","tp":"JVM Internals: Advanced","qn":10},{"id":"Q2605","t":"What are the JVM memory areas?","u":"/interview/core-java/jvm-tuning-troubleshooting/jvm-heap-stack-thread-metaspace-cache-memory-areas-objects/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":1},{"id":"Q2606","t":"What is Young Generation vs Old Generation?","u":"/interview/core-java/jvm-tuning-troubleshooting/gc-young-generation-objects-created-gen-eden-survivor-spaces/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":2},{"id":"Q2607","t":"What is the difference between Minor GC and Full GC?","u":"/interview/core-java/jvm-tuning-troubleshooting/gc-heap-difference-minor-collects-young-gen-fast-frequent/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":3},{"id":"Q2608","t":"What are the main garbage collectors?","u":"/interview/core-java/jvm-tuning-troubleshooting/gc-main-garbage-collectors-serial-single-threaded-small-apps/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":4},{"id":"Q2609","t":"How does G1 GC work?","u":"/interview/core-java/jvm-tuning-troubleshooting/gc-heap-collections-jvm-g1-divides-equal-sized-regions/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":5},{"id":"Q2610","t":"When should you choose ZGC vs G1?","u":"/interview/core-java/jvm-tuning-troubleshooting/choose-zgc-g1-ultra-low-latency-requirements-real-time/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":6},{"id":"Q2611","t":"What are the essential JVM flags?","u":"/interview/core-java/jvm-tuning-troubleshooting/jvm-heap-gc-essential-flags-xms-initial-xmx-max-xx-useg1gc/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":7},{"id":"Q2612","t":"How do you detect a memory leak?","u":"/interview/core-java/jvm-tuning-troubleshooting/heap-gc-detect-memory-leak-usage-keeps-growing-full-runs/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":8},{"id":"Q2613","t":"What is JIT (Just-In-Time) compilation?","u":"/interview/core-java/jvm-tuning-troubleshooting/jvm-bytecode-quick-jit-just-in-time-compilation-interprets/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":9},{"id":"Q2614","t":"How do you profile a Java application?","u":"/interview/core-java/jvm-tuning-troubleshooting/heap-thread-profile-application-jfr-flight-recorder/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":10},{"id":"Q2615","t":"How do you diagnose OutOfMemoryError?","u":"/interview/core-java/jvm-tuning-troubleshooting/heap-metaspace-thread-diagnose-outofmemoryerror-check-area/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":11},{"id":"Q2616","t":"How do you diagnose high CPU usage?","u":"/interview/core-java/jvm-tuning-troubleshooting/thread-runnable-state-gc-diagnose-high-cpu-usage-dump-jstack/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":12},{"id":"Q2617","t":"How do you diagnose a thread deadlock?","u":"/interview/core-java/jvm-tuning-troubleshooting/thread-deadlock-state-timeout-diagnose-dump-shows-threads/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":13},{"id":"Q2618","t":"What is thread starvation?","u":"/interview/core-java/jvm-tuning-troubleshooting/thread-starvation-long-threads-never-cpu-time-because-hold/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":14},{"id":"Q2619","t":"What is JMH (Java Microbenchmark Harness)?","u":"/interview/core-java/jvm-tuning-troubleshooting/jvm-gc-state-system-isolation-jmh-microbenchmark-harness/","ch":"Core Java","tp":"JVM Tuning & Troubleshooting","qn":15},{"id":"Q113","t":"Predict the output: parent reference calling static method","u":"/interview/core-java/predict-the-output/static-predict-parent-reference-calling/","ch":"Core Java","tp":"Predict the Output","qn":2},{"id":"Q114","t":"Predict the output: 0.1 + 0.2 == 0.3","u":"/interview/core-java/predict-the-output/predict/","ch":"Core Java","tp":"Predict the Output","qn":3},{"id":"Q115","t":"Predict the output: mixed x++ and ++x expressions","u":"/interview/core-java/predict-the-output/predict-mixed-expressions/","ch":"Core Java","tp":"Predict the Output","qn":4},{"id":"Q116","t":"Predict the output: string concatenation with null","u":"/interview/core-java/predict-the-output/string-null-predict-concatenation/","ch":"Core Java","tp":"Predict the Output","qn":5},{"id":"Q117","t":"What happens if you call start() twice on the same Thread?","u":"/interview/core-java/predict-the-output/thread-happens-call-twice/","ch":"Core Java","tp":"Predict the Output","qn":6},{"id":"Q144","t":"What does null instanceof return?","u":"/interview/core-java/predict-the-output/null-instanceof-return/","ch":"Core Java","tp":"Predict the Output","qn":7},{"id":"Q149","t":"What does null instanceof AnyType return?","u":"/interview/core-java/predict-the-output/null-instanceof-anytype-return/","ch":"Core Java","tp":"Predict the Output","qn":8},{"id":"Q150","t":"What happens when try and finally both have a return?","u":"/interview/core-java/predict-the-output/try-finally-happens-return/","ch":"Core Java","tp":"Predict the Output","qn":9},{"id":"Q151","t":"What does System.exit() do?","u":"/interview/core-java/predict-the-output/system-exit/","ch":"Core Java","tp":"Predict the Output","qn":10},{"id":"Q93","t":"Predict the output: concat without reassignment","u":"/interview/core-java/predict-the-output/predict-concat-without-reassignment/","ch":"Core Java","tp":"Predict the Output","qn":1},{"id":"Q136","t":"What are the four pillars of OOP?","u":"/interview/oop/oops-fundamentals/oop-encapsulation-abstraction-inheritance-polymorphism/","ch":"OOP","tp":"OOPs Fundamentals","qn":1},{"id":"Q137","t":"What are all seven OOP concepts?","u":"/interview/oop/oops-fundamentals/oop-abstraction-encapsulation-inheritance-polymorphism-seven/","ch":"OOP","tp":"OOPs Fundamentals","qn":2},{"id":"Q138","t":"How can a single class prove it follows OOP principles?","u":"/interview/oop/oops-fundamentals/oop-encapsulation-abstraction-polymorphism-inheritance/","ch":"OOP","tp":"OOPs Fundamentals","qn":3},{"id":"Q139","t":"Why do we need encapsulation and abstraction?","u":"/interview/oop/oops-fundamentals/encapsulation-abstraction-scenarios/","ch":"OOP","tp":"OOPs Fundamentals","qn":4},{"id":"Q154","t":"Why does returning a live collection break encapsulation?","u":"/interview/oop/encapsulation-and-cohesion/collection-list-encapsulation-private-field-getter-returns/","ch":"OOP","tp":"Encapsulation & Cohesion","qn":1},{"id":"Q162","t":"What is cohesion and why is high cohesion a design goal?","u":"/interview/oop/encapsulation-and-cohesion/design-cohesion-high-goal-srp-thing-low-look-god-doing/","ch":"OOP","tp":"Encapsulation & Cohesion","qn":2},{"id":"Q144","t":"What is the difference between abstract class and interface?","u":"/interview/oop/abstraction-and-interfaces/abstract-interface-difference-choice-matter/","ch":"OOP","tp":"Abstraction & Interfaces","qn":1},{"id":"Q145","t":"Can an abstract class extend another class and implement interfaces?","u":"/interview/oop/abstraction-and-interfaces/abstract-implement-multiple-interfaces-extend-another-time/","ch":"OOP","tp":"Abstraction & Interfaces","qn":2},{"id":"Q165","t":"Can you instantiate an abstract class?","u":"/interview/oop/abstraction-and-interfaces/abstract-instantiate-directly-abstractclass-create-anonymous/","ch":"OOP","tp":"Abstraction & Interfaces","qn":3},{"id":"Q166","t":"When do you choose interface vs abstract class?","u":"/interview/oop/abstraction-and-interfaces/interface-abstract-choose-blurring-default-methods/","ch":"OOP","tp":"Abstraction & Interfaces","qn":4},{"id":"Q147","t":"Can Java achieve multiple inheritance?","u":"/interview/oop/inheritance/inheritance-achieve-multiple-disallowed-diamond-problem/","ch":"OOP","tp":"Inheritance","qn":1},{"id":"Q152","t":"Should you prefer composition or inheritance?","u":"/interview/oop/inheritance/inheritance-difference-composition-has-a-is-a-prefer/","ch":"OOP","tp":"Inheritance","qn":2},{"id":"Q153","t":"What is the fragile base class problem?","u":"/interview/oop/inheritance/base-stack-arraylist-index-fragile-problem-extends-leak/","ch":"OOP","tp":"Inheritance","qn":3},{"id":"Q140","t":"What is the difference between overloading and overriding?","u":"/interview/oop/polymorphism/jvm-difference-overloading-overriding-resolve-compile-time/","ch":"OOP","tp":"Polymorphism","qn":1},{"id":"Q141","t":"What are the rules for method overriding?","u":"/interview/oop/polymorphism/exception-overriding-depth-rules-covariant-return-types/","ch":"OOP","tp":"Polymorphism","qn":2},{"id":"Q142","t":"Can you change the access scope of an overridden method?","u":"/interview/oop/polymorphism/static-final-change-scope-access-modifier-overridden-rules/","ch":"OOP","tp":"Polymorphism","qn":3},{"id":"Q143","t":"What is polymorphism and why is it useful?","u":"/interview/oop/polymorphism/polymorphism-compile-time-overloading-runtime-overriding/","ch":"OOP","tp":"Polymorphism","qn":4},{"id":"Q156","t":"What is a covariant return type?","u":"/interview/oop/polymorphism/covariant-return-type-practical/","ch":"OOP","tp":"Polymorphism","qn":5},{"id":"Q157","t":"What is method hiding vs method overriding?","u":"/interview/oop/polymorphism/static-difference-hiding-overriding-instance-resolution/","ch":"OOP","tp":"Polymorphism","qn":6},{"id":"Q163","t":"What is static binding vs dynamic binding?","u":"/interview/oop/polymorphism/static-final-dynamic-difference-binding-compile-time-private/","ch":"OOP","tp":"Polymorphism","qn":7},{"id":"Q146","t":"What is the difference between this and super?","u":"/interview/oop/object-class-and-constructors/difference-super/","ch":"OOP","tp":"Object Class & Constructors","qn":1},{"id":"Q148","t":"What is a constructor and can it be private?","u":"/interview/oop/object-class-and-constructors/singleton-factory-constructor-private-as-methods-utility/","ch":"OOP","tp":"Object Class & Constructors","qn":2},{"id":"Q149","t":"What is shallow copy vs deep copy?","u":"/interview/oop/object-class-and-constructors/difference-shallow-copy-deep-demonstrate-nested-object/","ch":"OOP","tp":"Object Class & Constructors","qn":3},{"id":"Q150","t":"What is instanceof and pattern matching?","u":"/interview/oop/object-class-and-constructors/pattern-matching-instanceof-operator-16-remove-explicit-cast/","ch":"OOP","tp":"Object Class & Constructors","qn":4},{"id":"Q164","t":"What do the Object methods beyond equals/hashCode do?","u":"/interview/oop/object-class-and-constructors/equals-hashcode-tostring-clone-finalize-synchronized-beyond/","ch":"OOP","tp":"Object Class & Constructors","qn":5},{"id":"Q155","t":"What is aggregation vs composition?","u":"/interview/oop/relationships/aggregation-differ-composition/","ch":"OOP","tp":"Relationships: Association, Aggregation, Composition","qn":1},{"id":"Q160","t":"What is association vs aggregation vs composition?","u":"/interview/oop/relationships/difference-association-uses-a-aggregation-has-a-part/","ch":"OOP","tp":"Relationships: Association, Aggregation, Composition","qn":2},{"id":"Q167","t":"What is the delegation pattern?","u":"/interview/oop/relationships/pattern-inheritance-delegation-forwarding-request-delegate/","ch":"OOP","tp":"Relationships: Association, Aggregation, Composition","qn":3},{"id":"Q151","t":"What is a marker interface?","u":"/interview/oop/coupling-and-design/interface-serializable-cloneable-marker-examples-remote/","ch":"OOP","tp":"Coupling & Design","qn":1},{"id":"Q161","t":"What is tight coupling vs loose coupling?","u":"/interview/oop/coupling-and-design/oop-tight-coupling-loose-means-direct-dependency-concrete/","ch":"OOP","tp":"Coupling & Design","qn":2},{"id":"Q158","t":"What are Java Records?","u":"/interview/oop/modern-java-oop/oop-immutable-equals-hashcode-tostring-final-record-state/","ch":"OOP","tp":"Modern Java OOP: Records & Sealed","qn":1},{"id":"Q159","t":"What are sealed classes and interfaces?","u":"/interview/oop/modern-java-oop/sealed-oop-inheritance-final-pattern-matching-classes/","ch":"OOP","tp":"Modern Java OOP: Records & Sealed","qn":2},{"id":"Q137","t":"What is the Java Collections Framework?","u":"/interview/collections/collections-overview/collections-framework-main-interfaces-implementations/","ch":"Collections","tp":"Collections Framework Overview","qn":1},{"id":"Q138","t":"What does the Collections utility class provide?","u":"/interview/collections/collections-overview/collections-sort-synchronized-utility-reverse-shuffle-min/","ch":"Collections","tp":"Collections Framework Overview","qn":2},{"id":"Q178","t":"How do you decide between Set and List?","u":"/interview/collections/collections-overview/list-decide/","ch":"Collections","tp":"Collections Framework Overview","qn":3},{"id":"Q197","t":"How does Collection.toArray() work?","u":"/interview/collections/collections-overview/collection-toarray-object-typed-intfunction/","ch":"Collections","tp":"Collections Framework Overview","qn":4},{"id":"Q139","t":"When do you use ArrayList vs LinkedList?","u":"/interview/collections/list-arraylist-linkedlist/arraylist-linkedlist/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":1},{"id":"Q140","t":"How does ArrayList work internally?","u":"/interview/collections/list-arraylist-linkedlist/arraylist-dynamic-array-internal-working-5x-growth-resize/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":2},{"id":"Q141","t":"How does ArrayList expansion work?","u":"/interview/collections/list-arraylist-linkedlist/arraylist-expansion-threshold-default-size-10-grows-50/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":3},{"id":"Q142","t":"How does LinkedList work internally?","u":"/interview/collections/list-arraylist-linkedlist/linkedlist-internal-working-doubly-linked-nodes-head-tail/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":4},{"id":"Q143","t":"When should you use LinkedList over ArrayList?","u":"/interview/collections/list-arraylist-linkedlist/linkedlist-arraylist-decision-guide/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":5},{"id":"Q144","t":"What is the difference between Vector and ArrayList?","u":"/interview/collections/list-arraylist-linkedlist/vector-arraylist-synchronization-growth-legacy-difference/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":6},{"id":"Q145","t":"What are the gotchas of List.subList()?","u":"/interview/collections/list-arraylist-linkedlist/list-sublist-gotchas-view-backed-parent/","ch":"Collections","tp":"List: ArrayList & LinkedList","qn":7},{"id":"Q146","t":"When do you use ArrayDeque vs LinkedList vs Stack?","u":"/interview/collections/queue-deque-stack/linkedlist-stack-arraydeque/","ch":"Collections","tp":"Queue, Deque & Stack","qn":1},{"id":"Q147","t":"What is LinkedBlockingQueue?","u":"/interview/collections/queue-deque-stack/linkedblockingqueue-thread-safe-bounded-unbounded-blocking/","ch":"Collections","tp":"Queue, Deque & Stack","qn":2},{"id":"Q170","t":"What is CopyOnWriteArrayList?","u":"/interview/collections/queue-deque-stack/list-copyonwritearraylist-thread-safe-read-heavy-scenarios/","ch":"Collections","tp":"Queue, Deque & Stack","qn":3},{"id":"Q171","t":"PriorityQueue vs sorted list: when to use each?","u":"/interview/collections/queue-deque-stack/priorityqueue-list-sorted/","ch":"Collections","tp":"Queue, Deque & Stack","qn":4},{"id":"Q193","t":"What are the Queue throwing vs non-throwing methods?","u":"/interview/collections/queue-deque-stack/queue-throwing-non-throwing-methods-add-remove-element-offer/","ch":"Collections","tp":"Queue, Deque & Stack","qn":5},{"id":"Q194","t":"How does ArrayDeque replace Stack?","u":"/interview/collections/queue-deque-stack/stack-arraydeque-replaces-push-pop-peek-lifo-behavior/","ch":"Collections","tp":"Queue, Deque & Stack","qn":6},{"id":"Q195","t":"What is BlockingDeque?","u":"/interview/collections/queue-deque-stack/blockingdeque-linkedblockingdeque-work-stealing/","ch":"Collections","tp":"Queue, Deque & Stack","qn":7},{"id":"Q196","t":"What is TransferQueue?","u":"/interview/collections/queue-deque-stack/transferqueue-linkedtransferqueue-transfer-hand-off/","ch":"Collections","tp":"Queue, Deque & Stack","qn":8},{"id":"Q148","t":"What is the difference between HashMap, Hashtable, and ConcurrentHashMap?","u":"/interview/collections/hashmap-internals/hashmap-hashtable-concurrenthashmap-difference/","ch":"Collections","tp":"HashMap Internals","qn":1},{"id":"Q149","t":"How does HashMap differ from ConcurrentHashMap?","u":"/interview/collections/hashmap-internals/hashmap-concurrenthashmap-differences-differ/","ch":"Collections","tp":"HashMap Internals","qn":2},{"id":"Q150","t":"What is Collections.synchronizedMap?","u":"/interview/collections/hashmap-internals/collections-hashmap-synchronizedmap-wrapping-safe-iteration/","ch":"Collections","tp":"HashMap Internals","qn":3},{"id":"Q151","t":"How does HashMap work internally?","u":"/interview/collections/hashmap-internals/hashmap-load-internals-hashing-buckets-factor-resize/","ch":"Collections","tp":"HashMap Internals","qn":4},{"id":"Q152","t":"How does HashMap handle collisions?","u":"/interview/collections/hashmap-internals/hashmap-collision-handling-chaining-treeify-threshold-handle/","ch":"Collections","tp":"HashMap Internals","qn":5},{"id":"Q153","t":"What happens when you put a duplicate key in HashMap?","u":"/interview/collections/hashmap-internals/hashmap-duplicate-key-value-overwrite-returned-happens/","ch":"Collections","tp":"HashMap Internals","qn":6},{"id":"Q154","t":"What happens with a mutable key in HashMap?","u":"/interview/collections/hashmap-internals/hashmap-mutable-key-mutate-lookup-fails-entry-lost-happens/","ch":"Collections","tp":"HashMap Internals","qn":7},{"id":"Q155","t":"Why is entrySet() faster than keySet()+get() for iteration?","u":"/interview/collections/hashmap-internals/entryset-keyset-faster-iteration/","ch":"Collections","tp":"HashMap Internals","qn":8},{"id":"Q156","t":"How does ConcurrentHashMap work internally?","u":"/interview/collections/hashmap-internals/concurrenthashmap-internals-segments-cas-per-bucket-sync/","ch":"Collections","tp":"HashMap Internals","qn":9},{"id":"Q203","t":"How does HashMap resize internally?","u":"/interview/collections/hashmap-internals/hashmap-resize-internals-power-of-two-hash-capacity-1/","ch":"Collections","tp":"HashMap Internals","qn":10},{"id":"Q158","t":"What is the difference between HashMap, LinkedHashMap, and TreeMap?","u":"/interview/collections/linkedhashmap-treemap/hashmap-linkedhashmap-treemap-cache-ordering-performance/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":1},{"id":"Q159","t":"When should you use LinkedHashMap over HashMap?","u":"/interview/collections/linkedhashmap-treemap/linkedhashmap-hashmap/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":2},{"id":"Q160","t":"What is the difference between TreeMap and HashMap?","u":"/interview/collections/linkedhashmap-treemap/treemap-hashmap-differences-difference/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":3},{"id":"Q161","t":"Which Maps allow null keys?","u":"/interview/collections/linkedhashmap-treemap/null-hashmap-linkedhashmap-treemap-keys-rejects-maps-allow/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":4},{"id":"Q162","t":"How does HashMap handle null keys?","u":"/interview/collections/linkedhashmap-treemap/hashmap-null-key-multiple-values-handle-keys/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":5},{"id":"Q163","t":"How does TreeMap maintain sorted keys?","u":"/interview/collections/linkedhashmap-treemap/treemap-comparable-sorted-keys-requirement/","ch":"Collections","tp":"LinkedHashMap, TreeMap & Map Comparisons","qn":6},{"id":"Q157","t":"How does HashSet work internally?","u":"/interview/collections/set-hashset-treeset/hashmap-hashset-internals-backed-dummy-present-value/","ch":"Collections","tp":"Set: HashSet, LinkedHashSet, TreeSet","qn":1},{"id":"Q164","t":"What is the difference between HashSet, LinkedHashSet, and TreeSet?","u":"/interview/collections/set-hashset-treeset/hashset-linkedhashset-treeset-ordering-performance/","ch":"Collections","tp":"Set: HashSet, LinkedHashSet, TreeSet","qn":2},{"id":"Q165","t":"What is the difference between HashSet and LinkedHashSet?","u":"/interview/collections/set-hashset-treeset/hashset-linkedhashset-difference/","ch":"Collections","tp":"Set: HashSet, LinkedHashSet, TreeSet","qn":3},{"id":"Q166","t":"How do you remove duplicates while keeping insertion order?","u":"/interview/collections/set-hashset-treeset/remove-duplicates-while-maintaining-insertion-order/","ch":"Collections","tp":"Set: HashSet, LinkedHashSet, TreeSet","qn":4},{"id":"Q182","t":"What happens when you convert List to Set?","u":"/interview/collections/set-hashset-treeset/list-convert-happens-duplicates/","ch":"Collections","tp":"Set: HashSet, LinkedHashSet, TreeSet","qn":5},{"id":"Q167","t":"How does TreeSet sort custom objects?","u":"/interview/collections/comparable-comparator/comparable-comparator-tree-sort-treeset-sorting-custom/","ch":"Collections","tp":"Comparable & Comparator","qn":1},{"id":"Q168","t":"What is the difference between Comparable and Comparator?","u":"/interview/collections/comparable-comparator/comparable-comparator-top-difference/","ch":"Collections","tp":"Comparable & Comparator","qn":2},{"id":"Q169","t":"How do you implement a Comparator to sort employees?","u":"/interview/collections/comparable-comparator/comparator-sort-implementation-employees-age-name-implement/","ch":"Collections","tp":"Comparable & Comparator","qn":3},{"id":"Q179","t":"Why does BigDecimal compareTo differ from equals?","u":"/interview/collections/comparable-comparator/bigdecimal-equals-compareto-currency-exchange-rate/","ch":"Collections","tp":"Comparable & Comparator","qn":4},{"id":"Q172","t":"What is fail-fast vs fail-safe iteration?","u":"/interview/collections/iterator-and-removal/fail-fast-fail-safe-iteration/","ch":"Collections","tp":"Iterator & Removing During Iteration","qn":1},{"id":"Q173","t":"What is the difference between Iterator and ListIterator?","u":"/interview/collections/iterator-and-removal/iterator-listiterator-forward-only-bidirectional-add/","ch":"Collections","tp":"Iterator & Removing During Iteration","qn":2},{"id":"Q185","t":"How do you safely remove elements during iteration?","u":"/interview/collections/iterator-and-removal/iterator-removeif-remove-for-each/","ch":"Collections","tp":"Iterator & Removing During Iteration","qn":3},{"id":"Q183","t":"What are computeIfAbsent, merge, putIfAbsent, getOrDefault?","u":"/interview/collections/map-operations/merge-atomic-map-computeifabsent-putifabsent-getordefault/","ch":"Collections","tp":"Map Operations: compute, merge, putIfAbsent","qn":1},{"id":"Q184","t":"What is putIfAbsent vs computeIfAbsent?","u":"/interview/collections/map-operations/cache-putifabsent-computeifabsent-eager-lazy-patterns/","ch":"Collections","tp":"Map Operations: compute, merge, putIfAbsent","qn":2},{"id":"Q186","t":"What are List.of, Set.of, Map.of?","u":"/interview/collections/immutable-collections/list-map-immutable-collections-factories-unmodifiablelist/","ch":"Collections","tp":"Immutable Collections","qn":1},{"id":"Q187","t":"Why does List.of() throw UnsupportedOperationException?","u":"/interview/collections/immutable-collections/list-throws-throw-unsupportedoperationexception-copyof-safe/","ch":"Collections","tp":"Immutable Collections","qn":2},{"id":"Q190","t":"What is the difference between Arrays.asList and List.of?","u":"/interview/collections/immutable-collections/list-immutable-array-arrays-aslist-fixed-size-backed/","ch":"Collections","tp":"Immutable Collections","qn":3},{"id":"Q180","t":"What are generics and why do we need them?","u":"/interview/collections/generics-and-type-safety/generics-compile-time-type-safety-explicit-casts/","ch":"Collections","tp":"Generics & Type Safety","qn":1},{"id":"Q181","t":"What are bounded types, wildcards, and PECS?","u":"/interview/collections/generics-and-type-safety/pecs-generic-classes-methods-bounded-types-wildcards-rule/","ch":"Collections","tp":"Generics & Type Safety","qn":2},{"id":"Q198","t":"What is type erasure?","u":"/interview/collections/generics-and-type-safety/erasure-generics-list-string-type-compiler-erases/","ch":"Collections","tp":"Generics & Type Safety","qn":3},{"id":"Q199","t":"What are raw types and heap pollution?","u":"/interview/collections/generics-and-type-safety/heap-unchecked-raw-types-pollution-safevarargs-warnings/","ch":"Collections","tp":"Generics & Type Safety","qn":4},{"id":"Q200","t":"What is wildcard capture?","u":"/interview/collections/generics-and-type-safety/wildcard-list-capture-restriction-helper/","ch":"Collections","tp":"Generics & Type Safety","qn":5},{"id":"Q201","t":"What are recursive generics and self-bounded types?","u":"/interview/collections/generics-and-type-safety/generics-enum-recursive-self-bounded-types-extends-fluent/","ch":"Collections","tp":"Generics & Type Safety","qn":6},{"id":"Q202","t":"What does Collections.checkedList do?","u":"/interview/collections/generics-and-type-safety/collections-map-heap-checkedlist-runtime-type-enforcement/","ch":"Collections","tp":"Generics & Type Safety","qn":7},{"id":"Q174","t":"What is WeakHashMap?","u":"/interview/collections/special-maps-and-collections/collection-weakhashmap-weak-reference-keys-garbage-cases/","ch":"Collections","tp":"Special Maps & Collections","qn":1},{"id":"Q175","t":"What is IdentityHashMap?","u":"/interview/collections/special-maps-and-collections/equals-identityhashmap-reference-equality-instead/","ch":"Collections","tp":"Special Maps & Collections","qn":2},{"id":"Q177","t":"What happens with a mutable StringBuilder key in HashMap?","u":"/interview/collections/special-maps-and-collections/stringbuilder-hashmap-mutable-key-lookup-fails-happens/","ch":"Collections","tp":"Special Maps & Collections","qn":3},{"id":"Q188","t":"What are EnumSet and EnumMap?","u":"/interview/collections/special-maps-and-collections/array-enumset-enummap-bit-vector-ordinal-performance/","ch":"Collections","tp":"Special Maps & Collections","qn":4},{"id":"Q189","t":"What are NavigableMap and NavigableSet?","u":"/interview/collections/special-maps-and-collections/navigablemap-navigableset-floor-ceiling-lower-higher-headmap/","ch":"Collections","tp":"Special Maps & Collections","qn":5},{"id":"Q191","t":"What is a Spliterator?","u":"/interview/collections/spliterator/spliterator-tryadvance-trysplit-parallel-processing/","ch":"Collections","tp":"Spliterator","qn":1},{"id":"Q192","t":"What are Spliterator characteristics?","u":"/interview/collections/spliterator/stream-spliterator-characteristics-ordered-sized-sorted/","ch":"Collections","tp":"Spliterator","qn":2},{"id":"Q176","t":"How do you build your own HashMap?","u":"/interview/collections/build-your-own-hashmap/hashmap-build-manual-buckets-hashing-chaining-resize/","ch":"Collections","tp":"Build Your Own HashMap","qn":1},{"id":"Q177","t":"What is the difference between checked and unchecked exceptions?","u":"/interview/exception-handling/exception-fundamentals/checked-unchecked-exception-difference-compile-time-runtime/","ch":"Exception Handling","tp":"Exception Handling Fundamentals","qn":2},{"id":"Q178","t":"What is the difference between throw and throws?","u":"/interview/exception-handling/exception-fundamentals/throw-throws-difference/","ch":"Exception Handling","tp":"Exception Handling Fundamentals","qn":3},{"id":"Q183","t":"What is the difference between Error and Exception?","u":"/interview/exception-handling/exception-fundamentals/exception-difference-error/","ch":"Exception Handling","tp":"Exception Handling Fundamentals","qn":4},{"id":"Q186","t":"What is exception handling and what are the 5 keywords?","u":"/interview/exception-handling/exception-fundamentals/exception-try-catch-finally-throw-throws-handling-keywords/","ch":"Exception Handling","tp":"Exception Handling Fundamentals","qn":1},{"id":"Q179","t":"How does the finally block work?","u":"/interview/exception-handling/try-catch-finally/finally-system-jvm-block-situations-execute-exit-crash/","ch":"Exception Handling","tp":"try-catch-finally","qn":1},{"id":"Q180","t":"Why is throw/return in finally dangerous?","u":"/interview/exception-handling/try-catch-finally/exception-finally-try-catch-throw-throwing-returning-inside/","ch":"Exception Handling","tp":"try-catch-finally","qn":2},{"id":"Q188","t":"How do multiple catch blocks work?","u":"/interview/exception-handling/try-catch-finally/try-catch-single-multiple-blocks-specific-exceptions-caught/","ch":"Exception Handling","tp":"try-catch-finally","qn":3},{"id":"Q189","t":"What is multi-catch in Java 7+?","u":"/interview/exception-handling/try-catch-finally/catch-multi-catch-ioexception-sqlexception-differ-separate/","ch":"Exception Handling","tp":"try-catch-finally","qn":4},{"id":"Q181","t":"What is try-with-resources?","u":"/interview/exception-handling/try-with-resources/try-with-resources-automatically-close-resources-implement/","ch":"Exception Handling","tp":"try-with-resources & Suppressed Exceptions","qn":1},{"id":"Q182","t":"What are suppressed exceptions?","u":"/interview/exception-handling/try-with-resources/exception-try-finally-pattern-suppressed-exceptions/","ch":"Exception Handling","tp":"try-with-resources & Suppressed Exceptions","qn":2},{"id":"Q193","t":"How do you create custom checked vs unchecked exceptions?","u":"/interview/exception-handling/custom-exceptions/exception-checked-unchecked-catch-custom-preserve-cause/","ch":"Exception Handling","tp":"Custom Exceptions","qn":1},{"id":"Q184","t":"What is ClassNotFoundException vs NoClassDefFoundError?","u":"/interview/exception-handling/exception-chaining-and-stack-traces/checked-difference-classnotfoundexception-forname-found/","ch":"Exception Handling","tp":"Exception Chaining & Stack Traces","qn":1},{"id":"Q185","t":"What is exception chaining?","u":"/interview/exception-handling/exception-chaining-and-stack-traces/exception-throw-chaining-wrapping-low-level-cause/","ch":"Exception Handling","tp":"Exception Chaining & Stack Traces","qn":2},{"id":"Q190","t":"How do you read and log stack traces correctly?","u":"/interview/exception-handling/exception-chaining-and-stack-traces/stack-log-exception-information-trace-carry-correctly-error/","ch":"Exception Handling","tp":"Exception Chaining & Stack Traces","qn":3},{"id":"Q191","t":"What is fillInStackTrace() and why are exceptions expensive?","u":"/interview/exception-handling/exception-chaining-and-stack-traces/stack-exception-fillinstacktrace-capturing-trace-expensive/","ch":"Exception Handling","tp":"Exception Chaining & Stack Traces","qn":4},{"id":"Q192","t":"What is the assert keyword in Java?","u":"/interview/exception-handling/best-practices/assert-keyword-differ-exceptions-never-public-argument/","ch":"Exception Handling","tp":"Exception Best Practices","qn":1},{"id":"Q194","t":"What are the exception handling best practices?","u":"/interview/exception-handling/best-practices/catch-exception-specific-possible-avoid-throwable-broadly/","ch":"Exception Handling","tp":"Exception Best Practices","qn":2},{"id":"Q195","t":"What does throw early, catch late mean?","u":"/interview/exception-handling/best-practices/throw-catch-service-throws-controller-early-late-mean-shape/","ch":"Exception Handling","tp":"Exception Best Practices","qn":3},{"id":"Q196","t":"What is the difference between rethrow and wrap?","u":"/interview/exception-handling/best-practices/throw-difference-rethrowing-wrapping-serviceexception-msg/","ch":"Exception Handling","tp":"Exception Best Practices","qn":4},{"id":"Q187","t":"How does @ControllerAdvice handle exceptions globally?","u":"/interview/exception-handling/spring-exception-handling/spring-rest-api-handle-exceptions-globally-boot/","ch":"Exception Handling","tp":"Spring Exception Handling","qn":1},{"id":"Q197","t":"What happens when an exception occurs in a constructor?","u":"/interview/exception-handling/exceptions-in-constructors-and-static/exception-happens-thrown-constructor-object-never-assigned/","ch":"Exception Handling","tp":"Exceptions in Constructors & Static Init","qn":1},{"id":"Q198","t":"What is ExceptionInInitializerError?","u":"/interview/exception-handling/exceptions-in-constructors-and-static/exception-static-throws-happens-thrown-initializer/","ch":"Exception Handling","tp":"Exceptions in Constructors & Static Init","qn":2},{"id":"Q199","t":"What causes StackOverflowError?","u":"/interview/exception-handling/common-runtime-exceptions/recursion-tostring-equals-causes-stackoverflowerror/","ch":"Exception Handling","tp":"Common Runtime Exceptions","qn":1},{"id":"Q200","t":"What causes ClassCastException?","u":"/interview/exception-handling/common-runtime-exceptions/heap-classcastexception-occur-invalid-downcasting-raw-type/","ch":"Exception Handling","tp":"Common Runtime Exceptions","qn":2},{"id":"Q201","t":"What is IllegalArgumentException vs IllegalStateException?","u":"/interview/exception-handling/common-runtime-exceptions/throw-illegalargumentexception-illegalstateexception-objects/","ch":"Exception Handling","tp":"Common Runtime Exceptions","qn":3},{"id":"Q202","t":"What causes NoSuchElementException?","u":"/interview/exception-handling/common-runtime-exceptions/iterator-optional-queue-nosuchelementexception-thrown/","ch":"Exception Handling","tp":"Common Runtime Exceptions","qn":4},{"id":"Q203","t":"What is the JVM exception table?","u":"/interview/exception-handling/jvm-exception-internals/jvm-matching-catch-exception-bytecode-try-block-per-method/","ch":"Exception Handling","tp":"JVM Exception Internals","qn":1},{"id":"Q204","t":"Why are exceptions expensive to throw?","u":"/interview/exception-handling/jvm-exception-internals/throw-stack-optional-exceptions-expensive-fillinstacktrace/","ch":"Exception Handling","tp":"JVM Exception Internals","qn":2},{"id":"Q205","t":"What is the difference between a process and a thread?","u":"/interview/concurrency-multithreading/thread-basics/thread-stack-process-memory-space-overhead-difference/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":1},{"id":"Q206","t":"What are the ways to create a thread in Java?","u":"/interview/concurrency-multithreading/thread-basics/thread-runnable-callable-create-executorservice-preferred/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":2},{"id":"Q207","t":"What are the thread lifecycle states?","u":"/interview/concurrency-multithreading/thread-basics/thread-runnable-lifecycle-states-blocked-waiting-timed/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":3},{"id":"Q208","t":"What is the difference between BLOCKED and WAITING?","u":"/interview/concurrency-multithreading/thread-basics/thread-blocked-waiting-states-involuntary-lock-wait/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":4},{"id":"Q209","t":"What is the difference between start() and run()?","u":"/interview/concurrency-multithreading/thread-basics/thread-run-calling-directly-create-difference/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":5},{"id":"Q245","t":"What are the main concurrency tools in Java?","u":"/interview/concurrency-multithreading/thread-basics/thread-runnable-synchronized-concurrency-overview-main-tools/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":6},{"id":"Q246","t":"What is concurrency vs parallelism?","u":"/interview/concurrency-multithreading/thread-basics/concurrency-parallelism-interleaving-simultaneous-io-bound/","ch":"Concurrency & Multithreading","tp":"Thread Basics & Overview","qn":7},{"id":"Q210","t":"What is synchronized method vs synchronized block?","u":"/interview/concurrency-multithreading/synchronization/synchronized-block-scope-lock-object-granularity/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":1},{"id":"Q211","t":"How does synchronization work with intrinsic monitors?","u":"/interview/concurrency-multithreading/synchronization/race-synchronization-intrinsic-monitors-object-level-locks/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":2},{"id":"Q212","t":"How do you design a thread-safe class?","u":"/interview/concurrency-multithreading/synchronization/immutable-design-designing-thread-safe-confinement/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":3},{"id":"Q213","t":"What is static vs instance synchronized?","u":"/interview/concurrency-multithreading/synchronization/static-synchronized-instance-different-locks-run/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":4},{"id":"Q214","t":"How do you use synchronized for bank account access?","u":"/interview/concurrency-multithreading/synchronization/synchronized-banking-app-concurrent-account-access-block/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":5},{"id":"Q215","t":"Is the lock released if exception occurs in synchronized?","u":"/interview/concurrency-multithreading/synchronization/exception-synchronized-jvm-inside-block-lock-released-emits/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":6},{"id":"Q216","t":"Why is synchronizing on a String literal a bug?","u":"/interview/concurrency-multithreading/synchronization/string-final-synchronizing-literal-interned-object-bug/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":7},{"id":"Q292","t":"What is coarse-grained vs fine-grained locking?","u":"/interview/concurrency-multithreading/synchronization/coarse-grained-fine-grained-locking-concurrency-trade-off/","ch":"Concurrency & Multithreading","tp":"Synchronization","qn":8},{"id":"Q222","t":"What does the volatile keyword do?","u":"/interview/concurrency-multithreading/volatile/volatile-keyword-visibility-guarantee-atomicity/","ch":"Concurrency & Multithreading","tp":"volatile","qn":1},{"id":"Q223","t":"Where does volatile fail?","u":"/interview/concurrency-multithreading/volatile/volatile-fails-compound-actions-check-then-act/","ch":"Concurrency & Multithreading","tp":"volatile","qn":2},{"id":"Q224","t":"Can volatile alone guarantee thread safety for a counter?","u":"/interview/concurrency-multithreading/volatile/volatile-thread-synchronized-alone-guarantee-safety-counter/","ch":"Concurrency & Multithreading","tp":"volatile","qn":3},{"id":"Q225","t":"volatile vs Atomic classes?","u":"/interview/concurrency-multithreading/volatile/volatile-atomic-classes-atomicinteger-atomicreference/","ch":"Concurrency & Multithreading","tp":"volatile","qn":4},{"id":"Q226","t":"Why does while(flag){} never terminate without volatile?","u":"/interview/concurrency-multithreading/volatile/jvm-caching-volatile-while-flag-never-terminates-hoisting/","ch":"Concurrency & Multithreading","tp":"volatile","qn":5},{"id":"Q220","t":"What is a race condition?","u":"/interview/concurrency-multithreading/race-conditions/race-condition-concrete-check-then-act-read-modify-write/","ch":"Concurrency & Multithreading","tp":"Race Conditions","qn":1},{"id":"Q221","t":"Race condition vs deadlock?","u":"/interview/concurrency-multithreading/race-conditions/race-condition-deadlock-data-corruption-permanent-freeze/","ch":"Concurrency & Multithreading","tp":"Race Conditions","qn":2},{"id":"Q272","t":"What is data race vs race condition?","u":"/interview/concurrency-multithreading/race-conditions/race-condition-data-jmm-violation-logic-bug-exist-without/","ch":"Concurrency & Multithreading","tp":"Race Conditions","qn":3},{"id":"Q217","t":"What is a deadlock?","u":"/interview/concurrency-multithreading/deadlock/deadlock-detection-prevention-strategies/","ch":"Concurrency & Multithreading","tp":"Deadlock, Livelock & Starvation","qn":1},{"id":"Q218","t":"How do you detect and prevent deadlocks?","u":"/interview/concurrency-multithreading/deadlock/detect-analyze-prevent-deadlocks-jstack/","ch":"Concurrency & Multithreading","tp":"Deadlock, Livelock & Starvation","qn":2},{"id":"Q219","t":"What are the four conditions for deadlock?","u":"/interview/concurrency-multithreading/deadlock/deadlock-coffman-conditions-mutual-exclusion-hold-and-wait/","ch":"Concurrency & Multithreading","tp":"Deadlock, Livelock & Starvation","qn":3},{"id":"Q291","t":"Deadlock vs livelock vs starvation?","u":"/interview/concurrency-multithreading/deadlock/deadlock-livelock-starvation-detection-jstack-threadmxbean/","ch":"Concurrency & Multithreading","tp":"Deadlock, Livelock & Starvation","qn":4},{"id":"Q230","t":"wait()/notify() vs Condition.await()/signal()?","u":"/interview/concurrency-multithreading/wait-notify-sleep/condition-wait-notify-await-signal-monitor-wait-set-multiple/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":1},{"id":"Q231","t":"wait() vs sleep() vs yield()?","u":"/interview/concurrency-multithreading/wait-notify-sleep/thread-state-wait-sleep-yield-lock-release-purpose/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":2},{"id":"Q232","t":"Why must wait() be in a while loop?","u":"/interview/concurrency-multithreading/wait-notify-sleep/state-wait-while-loop-spurious-wake-ups-change-notify/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":3},{"id":"Q233","t":"Why does wait() release the lock but sleep() does not?","u":"/interview/concurrency-multithreading/wait-notify-sleep/wait-releases-lock-sleep-asymmetry-matters-progress-release/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":4},{"id":"Q234","t":"What does Thread.yield() do?","u":"/interview/concurrency-multithreading/wait-notify-sleep/thread-yield-scheduler-hint-os-ignore-unreliable-production/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":5},{"id":"Q235","t":"What is the producer-consumer pattern?","u":"/interview/concurrency-multithreading/wait-notify-sleep/pattern-producer-consumer-reentrantlock-conditions-wait/","ch":"Concurrency & Multithreading","tp":"wait/notify, sleep/yield & Producer-Consumer","qn":6},{"id":"Q228","t":"What is AtomicInteger and CAS?","u":"/interview/concurrency-multithreading/atomic-and-cas/thread-atomicinteger-lock-free-safety-via-cas/","ch":"Concurrency & Multithreading","tp":"Atomic Classes & CAS","qn":1},{"id":"Q280","t":"What is LongAdder?","u":"/interview/concurrency-multithreading/atomic-and-cas/longadder-striped-cells-reduces-contention-atomiclong-prefer/","ch":"Concurrency & Multithreading","tp":"Atomic Classes & CAS","qn":2},{"id":"Q281","t":"How does Compare-And-Swap work?","u":"/interview/concurrency-multithreading/atomic-and-cas/atomic-compare-and-swap-cas-lock-free-classes-spinning-hurt/","ch":"Concurrency & Multithreading","tp":"Atomic Classes & CAS","qn":3},{"id":"Q321","t":"What is the ABA problem?","u":"/interview/concurrency-multithreading/atomic-and-cas/aba-problem-compare-and-swap-plain-cas-succeed-incorrectly/","ch":"Concurrency & Multithreading","tp":"Atomic Classes & CAS","qn":4},{"id":"Q229","t":"What is ReentrantLock vs synchronized?","u":"/interview/concurrency-multithreading/locks/interface-synchronized-lock-reentrantlock-unlock-trylock/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":1},{"id":"Q277","t":"LockSupport.park() vs wait()?","u":"/interview/concurrency-multithreading/locks/locksupport-park-unpark-wait-notify-permit-based/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":2},{"id":"Q278","t":"What is StampedLock?","u":"/interview/concurrency-multithreading/locks/stampedlock-optimistic-mode-tryoptimisticread-validate-beats/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":3},{"id":"Q279","t":"What is ReadWriteLock?","u":"/interview/concurrency-multithreading/locks/readwritelock-reentrantreadwritelock-read-heavy-improvement/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":4},{"id":"Q297","t":"What is striped lock partitioning?","u":"/interview/concurrency-multithreading/locks/partitioning-array-concurrenthashmap-striped-lock-locks-hash/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":5},{"id":"Q317","t":"What is lock fairness?","u":"/interview/concurrency-multithreading/locks/starvation-lock-fairness-reentrantlock-fair-fifo-prevent/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":6},{"id":"Q318","t":"What is lock downgrading?","u":"/interview/concurrency-multithreading/locks/lock-downgrading-reentrantreadwritelock-safe-while-upgrading/","ch":"Concurrency & Multithreading","tp":"Locks: ReentrantLock, ReadWriteLock, StampedLock","qn":7},{"id":"Q227","t":"What is safe publication?","u":"/interview/concurrency-multithreading/memory-model/safe-publication-ensuring-threads-fully-constructed-object/","ch":"Concurrency & Multithreading","tp":"Safe Publication & Memory Model","qn":1},{"id":"Q273","t":"What is happens-before?","u":"/interview/concurrency-multithreading/memory-model/happens-before-relationship-rules-threads-stale-values/","ch":"Concurrency & Multithreading","tp":"Safe Publication & Memory Model","qn":2},{"id":"Q274","t":"How has the Java Memory Model evolved?","u":"/interview/concurrency-multithreading/memory-model/memory-model-evolution-pre-java-broken-jsr-133-varhandle-21/","ch":"Concurrency & Multithreading","tp":"Safe Publication & Memory Model","qn":3},{"id":"Q275","t":"What is instruction reordering?","u":"/interview/concurrency-multithreading/memory-model/volatile-instruction-reordering-compiler-jit-cpu-reorder/","ch":"Concurrency & Multithreading","tp":"Safe Publication & Memory Model","qn":4},{"id":"Q319","t":"What are memory barriers?","u":"/interview/concurrency-multithreading/memory-model/memory-barriers-fences-loadload-storestore-loadstore/","ch":"Concurrency & Multithreading","tp":"Safe Publication & Memory Model","qn":5},{"id":"Q236","t":"What is a thread pool?","u":"/interview/concurrency-multithreading/thread-pool/thread-pool-executors-types-fixed-cached-single-scheduled/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":1},{"id":"Q237","t":"What is the Executor framework?","u":"/interview/concurrency-multithreading/thread-pool/executor-runnable-callable-future-framework-executorservice/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":2},{"id":"Q238","t":"Callable vs Runnable?","u":"/interview/concurrency-multithreading/thread-pool/callable-runnable-checked-future-return-value-exceptions/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":3},{"id":"Q239","t":"What happens on unchecked exception in thread?","u":"/interview/concurrency-multithreading/thread-pool/unchecked-exception-thread-future-submit/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":4},{"id":"Q240","t":"How to handle InterruptedException?","u":"/interview/concurrency-multithreading/thread-pool/interruptedexception-restore-interrupt-status-don-swallow/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":5},{"id":"Q286","t":"What are ThreadPoolExecutor 7 parameters?","u":"/interview/concurrency-multithreading/thread-pool/threadpoolexecutor-parameters-queue-full-behavior-rejection/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":6},{"id":"Q287","t":"Queueing vs rejection?","u":"/interview/concurrency-multithreading/thread-pool/queue-queueing-rejection-unbounded-oom-bounded-fail-fast/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":7},{"id":"Q290","t":"What are BlockingQueue implementations?","u":"/interview/concurrency-multithreading/thread-pool/blockingqueue-implementations-arraybq-linkedbq-prioritybq/","ch":"Concurrency & Multithreading","tp":"Thread Pool & Executor Framework","qn":8},{"id":"Q288","t":"What causes thread pool deadlock?","u":"/interview/concurrency-multithreading/thread-pool-sizing/thread-deadlock-join-pool-parent-child-segregation-fix/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":1},{"id":"Q289","t":"Why is newFixedThreadPool dangerous?","u":"/interview/concurrency-multithreading/thread-pool-sizing/queue-executors-newfixedthreadpool-dangerous-unbounded-oom/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":2},{"id":"Q298","t":"How to size a thread pool?","u":"/interview/concurrency-multithreading/thread-pool-sizing/thread-decide-correct-number-threads-pool-formula-cpu-bound/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":3},{"id":"Q299","t":"Fixed vs Cached vs Scheduled pool?","u":"/interview/concurrency-multithreading/thread-pool-sizing/io-gives-several-ready-made-executors-newfixedthreadpool/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":4},{"id":"Q300","t":"Why is CachedThreadPool dangerous for long tasks?","u":"/interview/concurrency-multithreading/thread-pool-sizing/long-io-newcachedthreadpool-dangerous-production-tasks-run/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":5},{"id":"Q301","t":"Per-request memory overhead in Spring Boot?","u":"/interview/concurrency-multithreading/thread-pool-sizing/spring-service-thread-stack-heap-boot-handles-request-memory/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":6},{"id":"Q302","t":"How to estimate target throughput?","u":"/interview/concurrency-multithreading/thread-pool-sizing/heap-configuration-target-throughput-1000-transactions-per/","ch":"Concurrency & Multithreading","tp":"Thread Pool: Sizing & Pitfalls","qn":7},{"id":"Q241","t":"ThreadLocal dangers in thread pools?","u":"/interview/concurrency-multithreading/threadlocal/thread-finally-threadlocal-pools-memory-leak-data-leaking/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":1},{"id":"Q242","t":"Why is SimpleDateFormat not thread-safe?","u":"/interview/concurrency-multithreading/threadlocal/state-simpledateformat-thread-safe-mutable-calendar/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":2},{"id":"Q322","t":"What is InheritableThreadLocal?","u":"/interview/concurrency-multithreading/threadlocal/thread-inheritablethreadlocal-child-inherit-parent-value/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":3},{"id":"Q323","t":"What is thread confinement?","u":"/interview/concurrency-multithreading/threadlocal/thread-stack-confinement-local-variables-object-threadlocal/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":4},{"id":"Q324","t":"What is the this-escaping problem?","u":"/interview/concurrency-multithreading/threadlocal/thread-static-factory-escape-problem-object-construction/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":5},{"id":"Q325","t":"Thread-safe Singleton implementations?","u":"/interview/concurrency-multithreading/threadlocal/singleton-synchronized-volatile-enum-implement-thread-safe/","ch":"Concurrency & Multithreading","tp":"ThreadLocal & Thread Confinement","qn":6},{"id":"Q243","t":"What are daemon threads?","u":"/interview/concurrency-multithreading/daemon-threads/daemon-threads-features-cases-advantages-disadvantages/","ch":"Concurrency & Multithreading","tp":"Daemon Threads & JVM Shutdown","qn":1},{"id":"Q244","t":"Why does JVM not exit after main()?","u":"/interview/concurrency-multithreading/daemon-threads/jvm-doesn-exit-main-non-daemon-threads-keep-alive-clean/","ch":"Concurrency & Multithreading","tp":"Daemon Threads & JVM Shutdown","qn":2},{"id":"Q326","t":"What is a JVM shutdown hook?","u":"/interview/concurrency-multithreading/daemon-threads/jvm-shutdown-hook-runtime-addshutdownhook-run-kill-graceful/","ch":"Concurrency & Multithreading","tp":"Daemon Threads & JVM Shutdown","qn":3},{"id":"Q247","t":"thenApply vs thenCompose vs thenCombine?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-thenapply-thencompose-thencombine/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":1},{"id":"Q248","t":"supplyAsync() vs runAsync()?","u":"/interview/concurrency-multithreading/completablefuture/supplyasync-runasync-result-fire-and-forget/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":2},{"id":"Q249","t":"get() vs join()?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-join-checked-unchecked-exception-handling/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":3},{"id":"Q250","t":"Exception handling in CompletableFuture?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-exception-handling-exceptionally-handle/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":4},{"id":"Q251","t":"thenApply vs thenApplyAsync?","u":"/interview/concurrency-multithreading/completablefuture/thread-thenapply-thenapplyasync-runs-callback/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":5},{"id":"Q252","t":"Why thenApply produces nested CF<CF<T>>?","u":"/interview/concurrency-multithreading/completablefuture/thenapply-produces-nested-cf-thencompose-flattens-flatmap/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":6},{"id":"Q253","t":"Default pool for supplyAsync?","u":"/interview/concurrency-multithreading/completablefuture/executor-supplyasync-default-pool-forkjoinpool-commonpool/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":7},{"id":"Q254","t":"When does CompletableFuture improve performance?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-improves-performance-avoid-improve/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":8},{"id":"Q255","t":"CompletableFuture vs Future?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-future-blocking-non-blocking-chaining/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":9},{"id":"Q256","t":"Do virtual threads replace CompletableFuture?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-thread-virtual-threads-21-async-pools/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":10},{"id":"Q257","t":"Why is blocking IO on commonPool dangerous?","u":"/interview/concurrency-multithreading/completablefuture/io-starvation-isolation-blocking-forkjoinpool-commonpool/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":11},{"id":"Q258","t":"What is the bulkhead pattern?","u":"/interview/concurrency-multithreading/completablefuture/bulkhead-pattern-separate-bounded-pools-per-workload-shared/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":12},{"id":"Q259","t":"Why can CF work be lost on shutdown?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-silently-lost-shutdown-daemon-threads/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":13},{"id":"Q260","t":"How to use allOf() correctly?","u":"/interview/concurrency-multithreading/completablefuture/join-allof-returns-cf-void-partial-results-fail-all/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":14},{"id":"Q261","t":"How to add timeouts to CompletableFuture?","u":"/interview/concurrency-multithreading/completablefuture/completablefuture-timeouts-ortimeout-fail-completeontimeout/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":15},{"id":"Q262","t":"What is fan-out amplification?","u":"/interview/concurrency-multithreading/completablefuture/load-circuit-fan-out-amplification-connection-pools-rate/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":16},{"id":"Q263","t":"How to race on first successful result?","u":"/interview/concurrency-multithreading/completablefuture/race-success-successful-result-deadline-anyof-pitfall-cancel/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":17},{"id":"Q264","t":"What is accidental serialization?","u":"/interview/concurrency-multithreading/completablefuture/join-pattern-accidental-serialization-launching-cf/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":18},{"id":"Q265","t":"Scenario: REST 30s to parallel + safeguards?","u":"/interview/concurrency-multithreading/completablefuture/rest-scenario-endpoint-30s-parallel-safeguards-optimization/","ch":"Concurrency & Multithreading","tp":"CompletableFuture & Resilience","qn":19},{"id":"Q266","t":"CyclicBarrier vs CountDownLatch?","u":"/interview/concurrency-multithreading/sync-utilities/event-cyclicbarrier-countdownlatch-reusable-sync-point/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":1},{"id":"Q282","t":"What is a Semaphore?","u":"/interview/concurrency-multithreading/sync-utilities/binary-synchronized-semaphore-permits-limit-concurrent/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":2},{"id":"Q283","t":"Mutex vs Semaphore?","u":"/interview/concurrency-multithreading/sync-utilities/mutex-semaphore-ownership-locking-permit-count-signaling/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":3},{"id":"Q284","t":"What is a Phaser?","u":"/interview/concurrency-multithreading/sync-utilities/dynamic-phaser-party-registration-multiple-phases-flexible/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":4},{"id":"Q314","t":"What is Exchanger?","u":"/interview/concurrency-multithreading/sync-utilities/pattern-exchanger-threads-swap-objects-rendezvous-point/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":5},{"id":"Q315","t":"CountDownLatch patterns?","u":"/interview/concurrency-multithreading/sync-utilities/common-countdownlatch-patterns-startup-gate-completion-latch/","ch":"Concurrency & Multithreading","tp":"Synchronization Utilities: Latch, Barrier, Semaphore","qn":6},{"id":"Q267","t":"What is ForkJoinPool?","u":"/interview/concurrency-multithreading/forkjoinpool/forkjoinpool-divide-and-conquer-work-stealing-commonpool/","ch":"Concurrency & Multithreading","tp":"ForkJoinPool & Work Stealing","qn":1},{"id":"Q268","t":"How do CF and parallelStream use ForkJoinPool?","u":"/interview/concurrency-multithreading/forkjoinpool/executor-completablefuture-forkjoinpool-framework-cf/","ch":"Concurrency & Multithreading","tp":"ForkJoinPool & Work Stealing","qn":2},{"id":"Q285","t":"How does work-stealing work?","u":"/interview/concurrency-multithreading/forkjoinpool/deque-forkjoinpool-work-stealing-front-steal-back-blocking/","ch":"Concurrency & Multithreading","tp":"ForkJoinPool & Work Stealing","qn":3},{"id":"Q327","t":"ForkJoinTask, RecursiveTask, RecursiveAction?","u":"/interview/concurrency-multithreading/forkjoinpool/join-forkjointask-recursivetask-recursiveaction-fork-compute/","ch":"Concurrency & Multithreading","tp":"ForkJoinPool & Work Stealing","qn":4},{"id":"Q328","t":"parallelSort, parallelPrefix, parallelSetAll?","u":"/interview/concurrency-multithreading/forkjoinpool/arrays-parallelsort-parallelprefix-parallelsetall-common/","ch":"Concurrency & Multithreading","tp":"ForkJoinPool & Work Stealing","qn":5},{"id":"Q269","t":"What concurrency issues does HashMap cause?","u":"/interview/concurrency-multithreading/concurrent-collections/hashmap-cache-concurrency-issues-infinite-loop-lost-updates/","ch":"Concurrency & Multithreading","tp":"Concurrent Collections","qn":1},{"id":"Q270","t":"HashMap concurrent resize problems?","u":"/interview/concurrency-multithreading/concurrent-collections/hashmap-concurrent-resize-infinite-loop-table-corruption/","ch":"Concurrency & Multithreading","tp":"Concurrent Collections","qn":2},{"id":"Q316","t":"ConcurrentSkipListMap and ConcurrentSkipListSet?","u":"/interview/concurrency-multithreading/concurrent-collections/list-log-concurrenthashmap-concurrentskiplistmap/","ch":"Concurrency & Multithreading","tp":"Concurrent Collections","qn":3},{"id":"Q309","t":"What is thread priority?","u":"/interview/concurrency-multithreading/thread-lifecycle/thread-map-system-priority-range-operating-language/","ch":"Concurrency & Multithreading","tp":"Thread Lifecycle: Priority, Interruption, Factory","qn":1},{"id":"Q310","t":"What is cooperative interruption?","u":"/interview/concurrency-multithreading/thread-lifecycle/thread-static-cooperative-interruption-interrupt-difference/","ch":"Concurrency & Multithreading","tp":"Thread Lifecycle: Priority, Interruption, Factory","qn":2},{"id":"Q311","t":"Why are stop/suspend/resume deprecated?","u":"/interview/concurrency-multithreading/thread-lifecycle/thread-state-deadlock-stop-suspend-resume-deprecated/","ch":"Concurrency & Multithreading","tp":"Thread Lifecycle: Priority, Interruption, Factory","qn":3},{"id":"Q312","t":"Why is ThreadGroup obsolete?","u":"/interview/concurrency-multithreading/thread-lifecycle/thread-threadgroup-considered-obsolete-replaced-naming/","ch":"Concurrency & Multithreading","tp":"Thread Lifecycle: Priority, Interruption, Factory","qn":4},{"id":"Q313","t":"Custom ThreadFactory?","u":"/interview/concurrency-multithreading/thread-lifecycle/thread-custom-threadfactory-names-daemon-status-priority/","ch":"Concurrency & Multithreading","tp":"Thread Lifecycle: Priority, Interruption, Factory","qn":5},{"id":"Q293","t":"How to troubleshoot thread contention?","u":"/interview/concurrency-multithreading/troubleshooting/thread-troubleshoot-high-contention-dumps-jfr-root-cause/","ch":"Concurrency & Multithreading","tp":"Thread Troubleshooting","qn":1},{"id":"Q294","t":"Threads rising, CPU low: what is wrong?","u":"/interview/concurrency-multithreading/troubleshooting/io-thread-scenario-threads-rising-cpu-low-slow-leak/","ch":"Concurrency & Multithreading","tp":"Thread Troubleshooting","qn":2},{"id":"Q295","t":"Debug slow app with no errors?","u":"/interview/concurrency-multithreading/troubleshooting/distributed-debug-app-feels-slow-errors-segment-timeline/","ch":"Concurrency & Multithreading","tp":"Thread Troubleshooting","qn":3},{"id":"Q296","t":"Profile ReentrantLock contention?","u":"/interview/concurrency-multithreading/troubleshooting/profile-reentrantlock-contention-waiting-blocked-jfr/","ch":"Concurrency & Multithreading","tp":"Thread Troubleshooting","qn":4},{"id":"Q329","t":"How to capture and read a thread dump?","u":"/interview/concurrency-multithreading/troubleshooting/thread-state-stack-deadlock-capture-dump-jstack-kill-jcmd/","ch":"Concurrency & Multithreading","tp":"Thread Troubleshooting","qn":5},{"id":"Q303","t":"What is the JDK Flow API?","u":"/interview/concurrency-multithreading/reactive-flow-api/jdk-api-flow-introduced-publisher-subscriber-subscription/","ch":"Concurrency & Multithreading","tp":"Reactive & Flow API","qn":1},{"id":"Q304","t":"Flow API vs Reactor vs RxJava?","u":"/interview/concurrency-multithreading/reactive-flow-api/jdk-api-completablefuture-flow-relate-project-reactor-rxjava/","ch":"Concurrency & Multithreading","tp":"Reactive & Flow API","qn":2},{"id":"Q305","t":"What is coordinated omission?","u":"/interview/concurrency-multithreading/benchmarking/load-coordinated-omission-testing-closed-model-tool-jmeter/","ch":"Concurrency & Multithreading","tp":"Benchmarking & Load Testing","qn":1},{"id":"Q306","t":"How to design a JVM benchmark?","u":"/interview/concurrency-multithreading/benchmarking/design-jvm-service-gc-reliable-benchmark-warmup-phase-jit/","ch":"Concurrency & Multithreading","tp":"Benchmarking & Load Testing","qn":2},{"id":"Q307","t":"Reactive vs blocking benchmark mistakes?","u":"/interview/concurrency-multithreading/benchmarking/service-gc-benchmarking-reactive-against-blocking-mistakes/","ch":"Concurrency & Multithreading","tp":"Benchmarking & Load Testing","qn":3},{"id":"Q308","t":"Chaos engineering during load tests?","u":"/interview/concurrency-multithreading/benchmarking/load-buffer-chaos-engineering-combine-tests-cpu-throttling/","ch":"Concurrency & Multithreading","tp":"Benchmarking & Load Testing","qn":4},{"id":"Q271","t":"Two threads print 1,A,2,B,3,C alternately?","u":"/interview/concurrency-multithreading/advanced-patterns/alternate-printing-threads-wait-notify-alternately/","ch":"Concurrency & Multithreading","tp":"Advanced: Disruptor, Actor, False Sharing","qn":1},{"id":"Q276","t":"What is false sharing?","u":"/interview/concurrency-multithreading/advanced-patterns/cache-false-sharing-line-invalidation-padding-contended/","ch":"Concurrency & Multithreading","tp":"Advanced: Disruptor, Actor, False Sharing","qn":2},{"id":"Q320","t":"What is busy-waiting?","u":"/interview/concurrency-multithreading/advanced-patterns/thread-busy-waiting-spinning-spin-lock-onspinwait-help/","ch":"Concurrency & Multithreading","tp":"Advanced: Disruptor, Actor, False Sharing","qn":3},{"id":"Q330","t":"What is the LMAX Disruptor?","u":"/interview/concurrency-multithreading/advanced-patterns/buffer-lmax-disruptor-lock-free-ring-sequences-sequence/","ch":"Concurrency & Multithreading","tp":"Advanced: Disruptor, Actor, False Sharing","qn":4},{"id":"Q331","t":"What is the Actor model?","u":"/interview/concurrency-multithreading/advanced-patterns/state-immutable-actor-model-as-akka-private-asynchronous/","ch":"Concurrency & Multithreading","tp":"Advanced: Disruptor, Actor, False Sharing","qn":5},{"id":"Q314","t":"What are lambda expressions?","u":"/interview/java-streams-lambda-functional/lambda-expressions/lambda-expression-advantages-anonymous-classes-expressions/","ch":"Java Streams, Lambda & Functional Programming","tp":"Lambda Expressions","qn":1},{"id":"Q315","t":"What is target typing in lambdas?","u":"/interview/java-streams-lambda-functional/lambda-expressions/lambda-target-typing-expressions-intrinsic-type-compiler/","ch":"Java Streams, Lambda & Functional Programming","tp":"Lambda Expressions","qn":2},{"id":"Q381","t":"Why can lambdas only capture effectively-final variables?","u":"/interview/java-streams-lambda-functional/lambda-expressions/lambda-final-array-capture-effectively-final-local-variables/","ch":"Java Streams, Lambda & Functional Programming","tp":"Lambda Expressions","qn":3},{"id":"Q420","t":"Effectively final vs explicitly final?","u":"/interview/java-streams-lambda-functional/lambda-expressions/final-lambda-difference-effectively-variable-explicitly/","ch":"Java Streams, Lambda & Functional Programming","tp":"Lambda Expressions","qn":4},{"id":"Q421","t":"What does a lambda close over?","u":"/interview/java-streams-lambda-functional/lambda-expressions/exactly-lambda-close-captures-value-local-variable-copy/","ch":"Java Streams, Lambda & Functional Programming","tp":"Lambda Expressions","qn":5},{"id":"Q2329","t":"Write a Predicate<Employee> for salary > 50000 and combine with department == \"IT\" using .and()","u":"/interview/java-streams-lambda-functional/functional-interfaces/predicate-salary-employee-checks-50-000-combine-another/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":7},{"id":"Q2331","t":"Write a Consumer<Employee> that prints details, then chain another consumer using andThen()","u":"/interview/java-streams-lambda-functional/functional-interfaces/consumer-employee-prints-details-chain-another-andthen/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":8},{"id":"Q2332","t":"Write a Supplier<Employee> that creates a default employee","u":"/interview/java-streams-lambda-functional/functional-interfaces/supplier-employee-creates-default/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":9},{"id":"Q2333","t":"Write a BiFunction<Employee, Double, Employee> that applies a salary raise","u":"/interview/java-streams-lambda-functional/functional-interfaces/bifunction-double-salary-employee-applies-raise/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":10},{"id":"Q2334","t":"Write a UnaryOperator<String> that trims and lowercases a name","u":"/interview/java-streams-lambda-functional/functional-interfaces/string-unaryoperator-trims-lowercases-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":11},{"id":"Q2335","t":"Write a custom @FunctionalInterface with boolean test(Employee e, double threshold) and use it as a lambda","u":"/interview/java-streams-lambda-functional/functional-interfaces/boolean-double-lambda-custom-functionalinterface-test/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":12},{"id":"Q2336","t":"Write a custom three-argument @FunctionalInterface TriFunction<A, B, C, R> and explain why Java has no built-in 3-arg function","u":"/interview/java-streams-lambda-functional/functional-interfaces/custom-three-argument-functionalinterface-trifunction-apply/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":13},{"id":"Q316","t":"What is a functional interface?","u":"/interview/java-streams-lambda-functional/functional-interfaces/functional-interface-static-sam-examples-util/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":1},{"id":"Q317","t":"Is @FunctionalInterface mandatory?","u":"/interview/java-streams-lambda-functional/functional-interfaces/functional-interface-static-functionalinterface-mandatory/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":2},{"id":"Q321","t":"Predicate vs Function vs Supplier vs Consumer?","u":"/interview/java-streams-lambda-functional/functional-interfaces/predicate-supplier-consumer-differences/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":3},{"id":"Q419","t":"What is Predicate.not()?","u":"/interview/java-streams-lambda-functional/functional-interfaces/predicate-pattern-string-lambda-11-asmatchpredicate/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":6},{"id":"Q422","t":"What are BiConsumer, BiPredicate, BiFunction?","u":"/interview/java-streams-lambda-functional/functional-interfaces/bifunction-functional-map-merge-biconsumer-bipredicate/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":4},{"id":"Q423","t":"UnaryOperator vs BinaryOperator?","u":"/interview/java-streams-lambda-functional/functional-interfaces/bifunction-list-stream-map-merge-difference-unaryoperator/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Interfaces","qn":5},{"id":"Q2324","t":"Rewrite a lambda e -> e.getName() as a method reference Employee::getName","u":"/interview/java-streams-lambda-functional/method-references/lambda-rewrite-getname-as-reference-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Method References","qn":3},{"id":"Q2325","t":"Rewrite (a, b) -> a.compareTo(b) as String::compareTo","u":"/interview/java-streams-lambda-functional/method-references/string-rewrite-compareto-as/","ch":"Java Streams, Lambda & Functional Programming","tp":"Method References","qn":2},{"id":"Q2326","t":"Use a constructor reference Employee::new to create employees from a stream of data","u":"/interview/java-streams-lambda-functional/method-references/stream-constructor-reference-employee-create-employees-data/","ch":"Java Streams, Lambda & Functional Programming","tp":"Method References","qn":4},{"id":"Q2328","t":"Use an instance method reference on a specific object System.out::println for forEach","u":"/interview/java-streams-lambda-functional/method-references/system-instance-reference-specific-object-println-foreach/","ch":"Java Streams, Lambda & Functional Programming","tp":"Method References","qn":5},{"id":"Q347","t":"What are the four types of method references?","u":"/interview/java-streams-lambda-functional/method-references/types-references/","ch":"Java Streams, Lambda & Functional Programming","tp":"Method References","qn":1},{"id":"Q318","t":"What are default and static methods in interfaces?","u":"/interview/java-streams-lambda-functional/default-static-methods/static-collections-default-methods-interfaces-added-backward/","ch":"Java Streams, Lambda & Functional Programming","tp":"Default & Static Methods in Interfaces","qn":1},{"id":"Q319","t":"What happens with default method conflicts?","u":"/interview/java-streams-lambda-functional/default-static-methods/resolve-conflict-implements-interfaces-declare-default/","ch":"Java Streams, Lambda & Functional Programming","tp":"Default & Static Methods in Interfaces","qn":2},{"id":"Q320","t":"How are static methods in interfaces called?","u":"/interview/java-streams-lambda-functional/default-static-methods/static-interface-methods-called-inherited-implementing/","ch":"Java Streams, Lambda & Functional Programming","tp":"Default & Static Methods in Interfaces","qn":3},{"id":"Q322","t":"What is the Stream API?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-api-collections-components-source-intermediate/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":1},{"id":"Q323","t":"Why do streams not store elements?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-mean-store-elements-pipeline-source-lazy-pull-based/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":2},{"id":"Q324","t":"What is stream laziness?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-streams-called-lazy-intermediate-terminal-operations/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":3},{"id":"Q329","t":"Can you reuse a stream after terminal operation?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-supplier-reuse-terminal-operation-workaround/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":4},{"id":"Q330","t":"When to use a loop over Stream API?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-api-index-try-catch-cases-traditional-loop-access/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":5},{"id":"Q331","t":"When must you close a resource stream?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/file-collection-stream-streams-backed-resource-closed-files/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":6},{"id":"Q332","t":"Why should stream pipelines be side-effect-free?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-collection-map-arraylist-pipelines-side-effect-free/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":7},{"id":"Q333","t":"Stream vs Collection: key differences?","u":"/interview/java-streams-lambda-functional/stream-fundamentals/stream-collection-differences-key/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream API Fundamentals","qn":8},{"id":"Q2225","t":"Filter all employees whose salary is greater than 50,000","u":"/interview/java-streams-lambda-functional/stream-filter/salary-filter-employees-greater-50-000/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":11},{"id":"Q2226","t":"Filter employees who joined after 2015 and belong to the \"IT\" department","u":"/interview/java-streams-lambda-functional/stream-filter/filter-employees-joined-2015-belong-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":12},{"id":"Q2227","t":"Filter male employees older than 30 from the \"Sales\" department","u":"/interview/java-streams-lambda-functional/stream-filter/filter-male-employees-older-30-sales-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":13},{"id":"Q2229","t":"Filter employees whose email domain is \"gmail.com\"","u":"/interview/java-streams-lambda-functional/stream-filter/filter-employees-email-domain-gmail-com/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":10},{"id":"Q2231","t":"Filter employees whose salary is between 40,000 and 80,000 (inclusive range)","u":"/interview/java-streams-lambda-functional/stream-filter/salary-filter-employees-40-000-80-inclusive-range/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":14},{"id":"Q2232","t":"Filter out null or empty employee names from the list","u":"/interview/java-streams-lambda-functional/stream-filter/null-list-filter-empty-employee-names/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":15},{"id":"Q2276","t":"Remove duplicate employees by id using a key-based filter, and remove exact duplicates using distinct","u":"/interview/java-streams-lambda-functional/stream-filter/list-equals-hashcode-employee-remove-exact-duplicate-objects/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":6},{"id":"Q2279","t":"Validate a batch of employees using anyMatch, allMatch, and noneMatch","u":"/interview/java-streams-lambda-functional/stream-filter/list-stream-employee-check-whether-earns-threshold-anymatch/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":7},{"id":"Q2290","t":"Safely navigate nested optional banking data using Optional.map, filter, and flatMap","u":"/interview/java-streams-lambda-functional/stream-filter/optional-map-null-account-branch-manager-name-extract/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":8},{"id":"Q2294","t":"Fetch a deterministic first match versus any match using findFirst and findAny on an ordered stream","u":"/interview/java-streams-lambda-functional/stream-filter/list-matching-stream-employee-sorted-joining-year-fetch/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":9},{"id":"Q2319","t":"Given a Map<String, Integer> product to price, filter entries where price > 100","u":"/interview/java-streams-lambda-functional/stream-filter/map-string-integer-product-price-filter-entries-100/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":16},{"id":"Q2350","t":"Find duplicate characters in a string using groupingBy + counting and filtering count > 1","u":"/interview/java-streams-lambda-functional/stream-filter/string-duplicate-characters-collectors-groupingby-counting/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":17},{"id":"Q2353","t":"Remove all whitespace from a string using chars().filter and Collectors.joining()","u":"/interview/java-streams-lambda-functional/stream-filter/string-remove-whitespace-chars-filter-character-iswhitespace/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":18},{"id":"Q2354","t":"Filter a list of strings to those containing ONLY vowels","u":"/interview/java-streams-lambda-functional/stream-filter/list-filter-strings-containing-vowels-matches-aeiouaeiou/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":19},{"id":"Q325","t":"Intermediate operations: filter, map, sorted, distinct, limit, skip, peek, flatMap","u":"/interview/java-streams-lambda-functional/stream-filter/map-name-intermediate-operations-filter-sorted-distinct/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":1},{"id":"Q327","t":"filter(): what Predicate it accepts, how it works internally (lazy, spliterator, predicate test)","u":"/interview/java-streams-lambda-functional/stream-filter/predicate-filter-accept-internally-lazy-spliterator-test/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":2},{"id":"Q328","t":"Effectively final variable inside filter(): capture rules, AtomicInteger workaround, final array","u":"/interview/java-streams-lambda-functional/stream-filter/int-condition-final-array-external-variable-inside-filter/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":3},{"id":"Q383","t":"anyMatch vs allMatch vs noneMatch: short-circuiting behavior","u":"/interview/java-streams-lambda-functional/stream-filter/difference-anymatch-allmatch-nonematch-short-circuit/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":4},{"id":"Q384","t":"takeWhile vs dropWhile (Java 9): prefix-based vs filter (whole stream)","u":"/interview/java-streams-lambda-functional/stream-filter/stream-difference-takewhile-dropwhile-differ-filter-stop/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: filter","qn":5},{"id":"Q2234","t":"Extract a list of all employee names from the employee list","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-extract-employee-names/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":7},{"id":"Q2235","t":"Convert all employee names to uppercase","u":"/interview/java-streams-lambda-functional/stream-map-transform/convert-employee-names-uppercase/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":8},{"id":"Q2236","t":"Extract a list of unique departments from the employee list","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-extract-unique-departments-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":13},{"id":"Q2237","t":"Create a list of EmployeeDTO(name, department) from the employee list using map()","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-map-create-employeedto-name-department-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":14},{"id":"Q2238","t":"Extract the email addresses of all employees and return as a comma-separated string using Collectors.joining(\", \")","u":"/interview/java-streams-lambda-functional/stream-map-transform/string-extract-email-addresses-employees-return-as/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":10},{"id":"Q2239","t":"Given a list of employee names, return a list of their lengths","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-employee-names-return-lengths/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":15},{"id":"Q2240","t":"Map each employee to a string \"Name - Department\" and collect into a list","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-list-employee-name-department-collect/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":16},{"id":"Q2241","t":"Convert a list of CSV lines (\"name,department,salary\") into a List<Employee> by splitting each line and constructing objects inside map()","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-salary-map-convert-csv-lines-name-department-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":17},{"id":"Q2242","t":"Convert a List<Employee> back into a List<String> of CSV rows (reverse of the above)","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-string-convert-employee-back-csv-rows-reverse/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":18},{"id":"Q2269","t":"Collect employees into a Map<Long, Employee> keyed by id using Collectors.toMap with a merge function","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-map-long-merge-employee-build-keyed-id-collectors-tomap/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":2},{"id":"Q2270","t":"Collect employees into a LinkedHashMap preserving insertion order using Collectors.toMap with a map supplier","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-map-long-string-linkedhashmap-supplier-employee-collect/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":3},{"id":"Q2278","t":"Compute the total, average, minimum, and maximum age using a primitive IntStream via mapToInt","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-stream-employee-convert-ages-primitive-intstream/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":4},{"id":"Q2288","t":"Build an immutable lookup map and an unmodifiable list using Collectors.collectingAndThen","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-map-final-immutable-collect-employee-names-unmodifiable/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":5},{"id":"Q2296","t":"Build an account-to-balance map with Collectors.toMap and resolve duplicate keys with a merge function","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-bigdecimal-stream-merge-build-account-id-total/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":31},{"id":"Q2302","t":"Convert a List<Employee> to an IntStream of ages and compute sum, average, max, min","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-convert-employee-intstream-ages-maptoint-getage-compute/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":11},{"id":"Q2305","t":"Convert IntStream back to Stream<Integer> using boxed()","u":"/interview/java-streams-lambda-functional/stream-map-transform/stream-convert-intstream-back-integer-boxed/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":12},{"id":"Q2307","t":"Use mapToDouble(...).summaryStatistics() to get count, sum, min, max, avg in one pass","u":"/interview/java-streams-lambda-functional/stream-map-transform/maptodouble-employee-getsalary-summarystatistics-count-sum/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":22},{"id":"Q2308","t":"Create a Map<Long, String> of employee id to employee name","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-long-string-create-employee-id-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":23},{"id":"Q2309","t":"Create a Map<String, Double> of name to salary, keeping the higher salary on duplicates","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-double-salary-create-employee-name-handle/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":24},{"id":"Q2310","t":"Create a Map<String, Employee> of department to highest-paid employee","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-create-employee-department-highest-paid/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":25},{"id":"Q2311","t":"Create a Map<String, Long> of department to employee count","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-long-create-department-employee-count-collectors/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":26},{"id":"Q2312","t":"Invert a Map<String, List<String>> (department to names) into Map<String, String> (name to department)","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-list-invert-department-employee-names-create-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":27},{"id":"Q2321","t":"Merge two Map<String, Integer> maps, summing values for duplicate keys","u":"/interview/java-streams-lambda-functional/stream-map-transform/merge-map-string-stream-integer-maps-summing-values/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":19},{"id":"Q2322","t":"Convert a Map<String, List<Employee>> to Map<String, Long> (department to count)","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-string-list-long-stream-convert-employee-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":20},{"id":"Q2323","t":"Find the key with the maximum value in a map","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-collections-key-maximum-value-max-entryset-entry/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":21},{"id":"Q2327","t":"Use a static method reference Integer::parseInt to convert a list of string numbers to integers","u":"/interview/java-streams-lambda-functional/stream-map-transform/static-list-string-reference-integer-parseint-convert/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":34},{"id":"Q2330","t":"Write a Function<Employee, String> that extracts the name, then compose with andThen(String::toUpperCase)","u":"/interview/java-streams-lambda-functional/stream-map-transform/string-employee-extracts-name-compose-another-uppercases/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":9},{"id":"Q2337","t":"Convert a String date \"2020-01-15\" to LocalDate and calculate the employee's tenure in years","u":"/interview/java-streams-lambda-functional/stream-map-transform/string-convert-date-2020-01-15-localdate-calculate-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":6},{"id":"Q2344","t":"Find the first non-repeating character in a string using chars() and LinkedHashMap","u":"/interview/java-streams-lambda-functional/stream-map-transform/string-linkedhashmap-non-repeating-character-chars/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":28},{"id":"Q2346","t":"Count the occurrences of each character in a string into Map<Character, Long>","u":"/interview/java-streams-lambda-functional/stream-map-transform/string-map-long-count-occurrences-character/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":29},{"id":"Q2351","t":"Convert a list of strings to a single comma-separated string using Collectors.joining","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-string-convert-strings-single-comma-separated/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":30},{"id":"Q2372","t":"From a list of integers, keep only numbers greater than a threshold and convert each to its String form","u":"/interview/java-streams-lambda-functional/stream-map-transform/list-string-map-integers-keep-numbers-greater-threshold/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":32},{"id":"Q2373","t":"Find the average salary of male and female employees separately into Map<String, Double>","u":"/interview/java-streams-lambda-functional/stream-map-transform/salary-map-string-double-average-male-female-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":33},{"id":"Q337","t":"map() vs reduce(): transformation vs aggregation","u":"/interview/java-streams-lambda-functional/stream-map-transform/map-difference-reduce-streams-transformation-aggregation/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: map & Transform","qn":1},{"id":"Q2243","t":"Given a List<Department> where each department has a List<Employee>, flatten to a single List<Employee>","u":"/interview/java-streams-lambda-functional/stream-flatmap/list-department-employee-flatten-single/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":6},{"id":"Q2246","t":"Given a Map<String, List<Employee>> (department → employees), flatten all employees into one list","u":"/interview/java-streams-lambda-functional/stream-flatmap/map-string-list-employee-department-employees-flatten/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":7},{"id":"Q2275","t":"Flatten a List of departments, each holding a List of employees, into one Stream of employees using flatMap","u":"/interview/java-streams-lambda-functional/stream-flatmap/list-stream-map-department-holds-employee-flatmap-turn/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":5},{"id":"Q336","t":"map() vs flatMap(): one-to-one vs one-to-many + flatten","u":"/interview/java-streams-lambda-functional/stream-flatmap/map-difference-flatmap-streams-one-to-one-one-to-many/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":1},{"id":"Q338","t":"flatMap use cases: flatten nested collections, split values, Optional::stream, nested data","u":"/interview/java-streams-lambda-functional/stream-flatmap/collections-optional-stream-cases-flatmap-flatten-nested/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":2},{"id":"Q425","t":"flatMapToInt/Long/Double: flatten to primitive stream, vs flatMap+mapToInt","u":"/interview/java-streams-lambda-functional/stream-flatmap/map-stream-long-double-flatmaptoint-flatmaptolong/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":3},{"id":"Q431","t":"Stream.mapMulti (Java 16): push 0..N elements imperatively, vs flatMap","u":"/interview/java-streams-lambda-functional/stream-flatmap/stream-consumer-mapmulti-16-pushes-elements-instead/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: flatMap","qn":4},{"id":"Q2247","t":"Sort employees by salary in ascending order","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-salary-employees-ascending-order/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":15},{"id":"Q2248","t":"Sort employees by salary in descending order","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-salary-employees-descending-order/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":16},{"id":"Q2249","t":"Sort employees by name alphabetically (case-insensitive)","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-employees-name-alphabetically-case-insensitive/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":17},{"id":"Q2250","t":"Sort employees by department first, then by salary descending within each department","u":"/interview/java-streams-lambda-functional/stream-sorting/list-sort-salary-comparator-employee-employees-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":18},{"id":"Q2251","t":"Sort employees by age, and for the same age, sort by name","u":"/interview/java-streams-lambda-functional/stream-sorting/list-sort-comparator-employee-age-ascending-employees-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":19},{"id":"Q2252","t":"Sort employees by year of joining (most recent first)","u":"/interview/java-streams-lambda-functional/stream-sorting/list-sort-employee-year-joining-recently-joined-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":20},{"id":"Q2253","t":"Sort employees by salary descending using Comparator.comparing(Employee::getSalary).reversed()","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-list-salary-comparator-employee-descending-order/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":21},{"id":"Q2254","t":"Sort a list of strings by their length using Comparator.comparingInt(String::length)","u":"/interview/java-streams-lambda-functional/stream-sorting/list-string-sort-comparator-transaction-reference-codes/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":22},{"id":"Q2255","t":"Sort employees with nulls-last for a nullable field using Comparator.nullsLast","u":"/interview/java-streams-lambda-functional/stream-sorting/list-null-sort-comparator-employee-city-field-alphabetically/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":23},{"id":"Q2283","t":"Group employees by department into a sorted TreeMap using groupingBy with a map supplier","u":"/interview/java-streams-lambda-functional/stream-sorting/treemap-map-supplier-group-employees-department-return/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":6},{"id":"Q2289","t":"Build a word frequency map and return the top entries sorted by count descending","u":"/interview/java-streams-lambda-functional/stream-sorting/list-sort-map-transaction-narration-strings-count-often-word/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":7},{"id":"Q2295","t":"Sort employees by multiple keys with tie-breaking using Comparator.comparing and thenComparing","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-salary-final-comparator-employees-department-ascending/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":8},{"id":"Q2297","t":"Find the highest-paid employee using reduce with BinaryOperator.maxBy and a Comparator","u":"/interview/java-streams-lambda-functional/stream-sorting/list-stream-salary-comparator-optional-binary-highest-paid/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":11},{"id":"Q2314","t":"Group employees by city and sort each group by salary descending","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-salary-group-employees-city-descending/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":9},{"id":"Q2355","t":"Find the longest string in a list using max(Comparator.comparingInt(String::length))","u":"/interview/java-streams-lambda-functional/stream-sorting/string-list-comparator-longest-max-comparingint-length/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":10},{"id":"Q2365","t":"Find the Kth largest element from an unsorted list using streams","u":"/interview/java-streams-lambda-functional/stream-sorting/list-kth-largest-element-unsorted-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":12},{"id":"Q2366","t":"Merge two sorted lists into a single sorted list using Stream.concat(...).sorted()","u":"/interview/java-streams-lambda-functional/stream-sorting/merge-list-stream-sorted-lists-single-concat/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":13},{"id":"Q2369","t":"Given a list of integers, return a list of their squares, sorted ascending","u":"/interview/java-streams-lambda-functional/stream-sorting/list-integers-return-squares-sorted-ascending-order/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":14},{"id":"Q349","t":"Stream.sorted(): stateful intermediate operation, buffers all elements","u":"/interview/java-streams-lambda-functional/stream-sorting/stream-sorted-stateful-intermediate-operation-mean-buffers/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":1},{"id":"Q356","t":"Sort a stream by multiple fields: Comparator.comparing().thenComparing()","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-stream-salary-comparator-multiple-fields-name-age/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":2},{"id":"Q357","t":"Sort a list of strings by length: ascending and descending using streams","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-list-strings-length-ascending-descending-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":3},{"id":"Q415","t":"Comparator.comparing + thenComparing + reversed + nullsFirst/nullsLast: complex sort orders","u":"/interview/java-streams-lambda-functional/stream-sorting/sort-comparator-build-complex-orders-comparing-keyextractor/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":4},{"id":"Q416","t":"Comparable.compareTo vs Comparator.compare: natural ordering vs external strategy","u":"/interview/java-streams-lambda-functional/stream-sorting/comparable-comparator-strategy-difference-compareto-natural/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Sorting & Comparator","qn":5},{"id":"Q2256","t":"Find the total salary of all employees using reduce()","u":"/interview/java-streams-lambda-functional/stream-reduce/list-stream-bigdecimal-salary-employee-compute-total/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":6},{"id":"Q2257","t":"Find the employee with the maximum salary using reduce() (not max())","u":"/interview/java-streams-lambda-functional/stream-reduce/list-salary-employee-single-earns-reduce-directly-rather-max/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":7},{"id":"Q2258","t":"Concatenate all employee names into a single string separated by \", \" using reduce()","u":"/interview/java-streams-lambda-functional/stream-reduce/list-string-stream-employee-build-comma-separated-names/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":8},{"id":"Q2259","t":"Find the product of all employee ages using reduce()","u":"/interview/java-streams-lambda-functional/stream-reduce/list-employee-compute-product-ages-reduce-overflow-guard/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":9},{"id":"Q2260","t":"Explain the difference between reduce(identity, accumulator) and reduce(accumulator) returning Optional","u":"/interview/java-streams-lambda-functional/stream-reduce/optional-banking-examples-difference-two-argument-reduce/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":4},{"id":"Q2361","t":"Compute the factorial of N using LongStream.rangeClosed(1, n).reduce(1, Math::multiplyExact)","u":"/interview/java-streams-lambda-functional/stream-reduce/factorial-compute-longstream-rangeclosed-reduce-math/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":5},{"id":"Q326","t":"Terminal operations: collect, forEach, reduce, count, anyMatch, findFirst: trigger execution, consume stream","u":"/interview/java-streams-lambda-functional/stream-reduce/stream-terminal-operations-collect-foreach-reduce-count/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":1},{"id":"Q339","t":"forEach() vs forEachOrdered(): ordering guarantees in parallel streams","u":"/interview/java-streams-lambda-functional/stream-reduce/difference-foreach-foreachordered-ordering-guarantees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":2},{"id":"Q340","t":"findFirst() vs findAny(): encounter order vs parallel performance","u":"/interview/java-streams-lambda-functional/stream-reduce/difference-findfirst-findany-encounter-order-parallel/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: reduce & Aggregate","qn":3},{"id":"Q2261","t":"Group employees by department into Map<String, List<Employee>>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-employee-group-department-result-key-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":1},{"id":"Q2262","t":"Group employees by department, then count employees in each department into Map<String, Long>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-long-employee-produce-giving-number/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":2},{"id":"Q2263","t":"Group employees by department, then get the average salary per department into Map<String, Double>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-salary-map-string-double-employee-compute-average/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":3},{"id":"Q2264","t":"Group employees by department, then get the employee with the highest salary in each department","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-optional-salary-employee-department-single/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":4},{"id":"Q2265","t":"Group employees by department, then collect only employee names per department using Collectors.mapping","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-employee-produce-department-names-groupingby/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":5},{"id":"Q2266","t":"Multi-level grouping: group by department, then by gender into Map<String, Map<String, List<Employee>>>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-employee-group-department-within-gender/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":6},{"id":"Q2267","t":"Partition employees into two groups: salary > 50,000 and salary <= 50,000 using Collectors.partitioningBy","u":"/interview/java-streams-lambda-functional/stream-grouping/list-exactly-partition-salary-employee-split-groups-earning/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":7},{"id":"Q2285","t":"Sum salaries per department as BigDecimal using groupingBy with Collectors.reducing","u":"/interview/java-streams-lambda-functional/stream-grouping/salary-bigdecimal-double-compute-total-per-department-as/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":8},{"id":"Q2291","t":"Partition employees into high and low earners and count each partition using partitioningBy with a downstream collector","u":"/interview/java-streams-lambda-functional/stream-grouping/partition-exactly-employees-earning-threshold-pass-count/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":16},{"id":"Q2292","t":"Compute the average salary per department correctly, contrasting averagingDouble with a BigDecimal average","u":"/interview/java-streams-lambda-functional/stream-grouping/salary-bigdecimal-compute-average-per-department-collectors/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":9},{"id":"Q2313","t":"Group employees by department and get the total salary per department","u":"/interview/java-streams-lambda-functional/stream-grouping/salary-group-employees-department-total-per/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":11},{"id":"Q2315","t":"Group employees by age range using a custom classifier","u":"/interview/java-streams-lambda-functional/stream-grouping/group-employees-age-range-20-29-30-39-40-49-50-custom/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":12},{"id":"Q2316","t":"Group employees by department, then find the second-highest salary in each department","u":"/interview/java-streams-lambda-functional/stream-grouping/salary-group-employees-department-employee-second-highest/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":13},{"id":"Q2317","t":"Group employees by department, then partition each group into male/female","u":"/interview/java-streams-lambda-functional/stream-grouping/partition-group-employees-department-male-female/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":14},{"id":"Q2318","t":"Group employees by the first letter of their name","u":"/interview/java-streams-lambda-functional/stream-grouping/group-employees-letter-name/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":15},{"id":"Q2339","t":"Group employees by their joining year into Map<Integer, List<Employee>>","u":"/interview/java-streams-lambda-functional/stream-grouping/map-list-group-employees-joining-year-integer-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":10},{"id":"Q2356","t":"Group a list of strings by their length into Map<Integer, List<String>>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-group-strings-length-integer-groupingby/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":17},{"id":"Q2357","t":"Group a list of strings by their length and count each group into Map<Integer, Long>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-long-string-group-strings-length-count-integer/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":18},{"id":"Q2358","t":"Group a list of strings by their first letter into Map<Character, List<String>>","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-group-strings-letter-character-groupingby/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":19},{"id":"Q2364","t":"Separate odd and even numbers from a list using partitioningBy","u":"/interview/java-streams-lambda-functional/stream-grouping/list-separate-odd-numbers-partitioningby/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":21},{"id":"Q2368","t":"Find duplicate elements in an integer list using groupingBy + counting","u":"/interview/java-streams-lambda-functional/stream-grouping/list-duplicate-elements-integer-collectors-groupingby/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":22},{"id":"Q2390","t":"Convert a flat List<Employee> into a Map<String, Map<String, List<Employee>>> grouped by department then by city","u":"/interview/java-streams-lambda-functional/stream-grouping/list-map-string-convert-flat-employee-grouped-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Grouping & Partitioning","qn":20},{"id":"Q2284","t":"Collect the distinct set of cities per department using groupingBy with mapping to a Set","u":"/interview/java-streams-lambda-functional/collectors/map-string-department-collect-distinct-cities-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":14},{"id":"Q2299","t":"Build a formatted department summary string from a grouped map using entrySet streaming and Collectors.joining","u":"/interview/java-streams-lambda-functional/collectors/map-string-long-streaming-stream-employee-count-per/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":21},{"id":"Q2320","t":"Sort a Map<String, Double> by value descending and collect into LinkedHashMap","u":"/interview/java-streams-lambda-functional/collectors/sort-map-string-double-salary-linkedhashmap-value-descending/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":20},{"id":"Q2404","t":"Collect employee names into a Set<String> (removing duplicates)","u":"/interview/java-streams-lambda-functional/collectors/string-collect-employee-names-removing-duplicates/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":15},{"id":"Q2405","t":"Collect employees into a TreeSet<Employee> sorted by salary","u":"/interview/java-streams-lambda-functional/collectors/salary-comparator-collect-employees-treeset-employee-sorted/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":16},{"id":"Q2406","t":"Collect employees into an array using toArray(Employee[]::new)","u":"/interview/java-streams-lambda-functional/collectors/array-collect-employees-toarray-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":17},{"id":"Q2407","t":"Collect a stream result into a ConcurrentHashMap using Collectors.toConcurrentMap","u":"/interview/java-streams-lambda-functional/collectors/stream-concurrenthashmap-collect-result-collectors/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":18},{"id":"Q2408","t":"Collect employees into a Map<String, Set<String>> (department to set of unique cities)","u":"/interview/java-streams-lambda-functional/collectors/map-string-collect-employees-department-unique-cities/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":19},{"id":"Q348","t":"Collectors.groupingBy(): single-level, multi-level, downstream collectors","u":"/interview/java-streams-lambda-functional/collectors/collectors-groupingby-multi-level-grouping-single-level/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":1},{"id":"Q385","t":"Collectors.partitioningBy: boolean two-bucket split vs groupingBy","u":"/interview/java-streams-lambda-functional/collectors/exactly-boolean-collectors-partitioningby-different/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":2},{"id":"Q386","t":"Collectors.mapping: downstream transformation within groups","u":"/interview/java-streams-lambda-functional/collectors/collectors-mapping-as-downstream-collector-transform/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":3},{"id":"Q387","t":"Custom Collector with Collector.of(): supplier, accumulator, combiner, finisher, characteristics","u":"/interview/java-streams-lambda-functional/collectors/supplier-custom-collector-accumulator-combiner-finisher/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":4},{"id":"Q388","t":"summaryStatistics(): min/max/sum/average/count in one pass","u":"/interview/java-streams-lambda-functional/collectors/min-max-sum-average-count-single-pass-summarystatistics/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":5},{"id":"Q390","t":"Collect to unmodifiable result: toUnmodifiableList, collectingAndThen, why immutability matters","u":"/interview/java-streams-lambda-functional/collectors/collections-stream-collect-unmodifiable-result-collectors/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":6},{"id":"Q391","t":"Stream.toList() (Java 16) vs collect(Collectors.toList()): unmodifiable vs mutable, breaking change","u":"/interview/java-streams-lambda-functional/collectors/stream-tolist-16-differ-collect-collectors-swapping-break/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":7},{"id":"Q412","t":"Collectors.joining(delimiter, prefix, suffix): concatenate stream to String","u":"/interview/java-streams-lambda-functional/collectors/stream-string-stringbuilder-collectors-joining-delimiter/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":8},{"id":"Q413","t":"Collectors.toMap: keyMapper, valueMapper, merge function, map supplier (LinkedHashMap)","u":"/interview/java-streams-lambda-functional/collectors/throw-merge-map-supplier-linkedhashmap-collectors-tomap/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":9},{"id":"Q414","t":"Collectors.teeing: two collectors in one pass, merge results (Java 12+)","u":"/interview/java-streams-lambda-functional/collectors/salary-streaming-merge-collectors-teeing-downstream1/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":10},{"id":"Q426","t":"StringJoiner: delimiter, prefix, suffix: relationship to Collectors.joining and String.join","u":"/interview/java-streams-lambda-functional/collectors/optional-string-join-stringjoiner-delimiter-prefix-suffix/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":11},{"id":"Q428","t":"Collectors.reducing vs Stream.reduce: collector (downstream) vs terminal operation","u":"/interview/java-streams-lambda-functional/collectors/stream-difference-collectors-reducing-collector-usable-as/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":12},{"id":"Q429","t":"Collectors.collectingAndThen: wrap result, extract value, transform collected container","u":"/interview/java-streams-lambda-functional/collectors/collectors-collectingandthen-downstream-finisher-typical/","ch":"Java Streams, Lambda & Functional Programming","tp":"Collectors","qn":13},{"id":"Q2274","t":"Find any employee from HR using Optional","u":"/interview/java-streams-lambda-functional/optional/list-hr-optional-employee-department-returning-demonstrate/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":8},{"id":"Q2306","t":"Compute average salary using DoubleStream","u":"/interview/java-streams-lambda-functional/optional/salary-doublestream-compute-average-orelse-optionaldouble/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":9},{"id":"Q341","t":"What is Optional?","u":"/interview/java-streams-lambda-functional/optional/optional-null-nullpointerexception-handling-explicit-avoid/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":1},{"id":"Q342","t":"Optional.of() vs Optional.ofNullable()?","u":"/interview/java-streams-lambda-functional/optional/optional-npe-null-differ-ofnullable-empty/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":2},{"id":"Q343","t":"orElse() vs orElseGet()?","u":"/interview/java-streams-lambda-functional/optional/optional-difference-orelse-orelseget-matter/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":3},{"id":"Q344","t":"What are the Optional anti-patterns?","u":"/interview/java-streams-lambda-functional/optional/optional-collection-serializable-designed-return-type/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":4},{"id":"Q345","t":"What is idiomatic Optional usage?","u":"/interview/java-streams-lambda-functional/optional/optional-map-consume-idiomatically-orelse-orelseget-defaults/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":5},{"id":"Q346","t":"When NOT to use Optional?","u":"/interview/java-streams-lambda-functional/optional/optional-collection-list-long-double-return-empty-instead/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":6},{"id":"Q418","t":"What did Java 9 add to Optional?","u":"/interview/java-streams-lambda-functional/optional/optional-stream-supplier-list-map-ifpresentorelse-action/","ch":"Java Streams, Lambda & Functional Programming","tp":"Optional","qn":7},{"id":"Q2360","t":"Find prime numbers using IntStream","u":"/interview/java-streams-lambda-functional/primitive-streams/prime-predicate-numbers-intstream/","ch":"Java Streams, Lambda & Functional Programming","tp":"Primitive Streams","qn":2},{"id":"Q424","t":"What are IntStream, LongStream, DoubleStream?","u":"/interview/java-streams-lambda-functional/primitive-streams/stream-primitive-types-intstream-longstream-doublestream/","ch":"Java Streams, Lambda & Functional Programming","tp":"Primitive Streams","qn":1},{"id":"Q2280","t":"Generate a schedule of installment due dates using Stream.iterate with a bounded limit","u":"/interview/java-streams-lambda-functional/stream-creation/stream-iterate-generate-twelve-monthly-installment-due-dates/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":7},{"id":"Q2281","t":"Generate a fixed number of unique transaction reference numbers using Stream.generate","u":"/interview/java-streams-lambda-functional/stream-creation/stream-generate-produce-fixed-number-unique-transaction/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":8},{"id":"Q2287","t":"Generate account numbers and iterate by index using IntStream.rangeClosed","u":"/interview/java-streams-lambda-functional/stream-creation/list-index-intstream-rangeclosed-generate-sequence-account/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":9},{"id":"Q2303","t":"Use IntStream.range(1, 11) to generate numbers 1-10, then filter even numbers","u":"/interview/java-streams-lambda-functional/stream-creation/intstream-range-11-generate-numbers-1-10-filter/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":10},{"id":"Q2304","t":"Use IntStream.rangeClosed(1, 100) to compute the sum of first 100 numbers","u":"/interview/java-streams-lambda-functional/stream-creation/intstream-rangeclosed-100-compute-sum-numbers/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":11},{"id":"Q2359","t":"Find the sum of all even numbers from 1 to 100 using IntStream.rangeClosed","u":"/interview/java-streams-lambda-functional/stream-creation/sum-numbers-100-intstream-rangeclosed/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":18},{"id":"Q2399","t":"Create a stream of fixed values using Stream.of(\"A\", \"B\", \"C\")","u":"/interview/java-streams-lambda-functional/stream-creation/stream-create-fixed-values/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":12},{"id":"Q2400","t":"Generate an infinite stream of random salaries using Stream.generate(Math::random) with limit(10)","u":"/interview/java-streams-lambda-functional/stream-creation/stream-generate-infinite-random-salaries-math-limit-10/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":13},{"id":"Q2401","t":"Generate the Fibonacci sequence using Stream.iterate","u":"/interview/java-streams-lambda-functional/stream-creation/fibonacci-stream-long-map-generate-sequence-iterate-limit-20/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":14},{"id":"Q2402","t":"Generate a stream of powers of 2 using Stream.iterate(1, n -> n * 2).limit(10)","u":"/interview/java-streams-lambda-functional/stream-creation/stream-generate-powers-iterate-limit-10/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":15},{"id":"Q2403","t":"Use Stream.iterate with a predicate (Java 9) to generate numbers from 1 to 100","u":"/interview/java-streams-lambda-functional/stream-creation/stream-predicate-iterate-generate-numbers-100/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":16},{"id":"Q2416","t":"Why should you prefer Collection.stream() over Stream.of(array) for large datasets?","u":"/interview/java-streams-lambda-functional/stream-creation/collection-stream-array-prefer-large-datasets/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":17},{"id":"Q389","t":"Stream.iterate, Stream.generate, IntStream.range/rangeClosed + boxed(), infinite streams + limit","u":"/interview/java-streams-lambda-functional/stream-creation/stream-build-streams-iterate-generate-intstream-range/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":1},{"id":"Q392","t":"Stream Gatherers (JEP 485, Java 24): custom stateful intermediate operations","u":"/interview/java-streams-lambda-functional/stream-creation/stream-gatherers-gather-jep-485-needed-enable-windowing/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":2},{"id":"Q417","t":"Stream.ofNullable (Java 9) + Stream.concat: null-safe stream creation and lazy merging","u":"/interview/java-streams-lambda-functional/stream-creation/stream-null-merge-ofnullable-value-returns-one-element/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":3},{"id":"Q430","t":"Stream.concat(a,b) vs Stream.of(a,b).flatMap(identity): trade-offs for 2+ streams","u":"/interview/java-streams-lambda-functional/stream-creation/merge-stream-streams-concat-versus-flatmap-identity/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":4},{"id":"Q432","t":"Stream.toArray() vs toArray(IntFunction): Object[] vs typed array","u":"/interview/java-streams-lambda-functional/stream-creation/string-array-stream-toarray-overloads-returns-object-while/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":5},{"id":"Q433","t":"Spliterator characteristics/flags: ORDERED, SIZED, SORTED, DISTINCT and pipeline optimization","u":"/interview/java-streams-lambda-functional/stream-creation/stream-immutable-characteristics-spliterator-flags-ordered/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Creation & Utilities","qn":6},{"id":"Q2293","t":"Sum transaction amounts safely with a parallel stream using an associative reduce","u":"/interview/java-streams-lambda-functional/parallel-streams/list-stream-sum-large-transaction-amounts-parallel-reduce/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":3},{"id":"Q2298","t":"Group a large transaction stream by account in parallel using groupingByConcurrent","u":"/interview/java-streams-lambda-functional/parallel-streams/stream-map-group-large-transactions-account-id-parallel/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":10},{"id":"Q2393","t":"Convert a stream to a parallel stream and sum all salaries, explaining when parallelism helps vs hurts","u":"/interview/java-streams-lambda-functional/parallel-streams/stream-convert-parallel-sum-salaries-parallelism-helps-hurts/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":7},{"id":"Q2394","t":"Demonstrate a bug caused by a shared mutable ArrayList inside forEach of a parallel stream","u":"/interview/java-streams-lambda-functional/parallel-streams/arraylist-stream-race-condition-demonstrate-bug-caused/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":8},{"id":"Q2395","t":"Fix the parallel-stream collection bug using collect(Collectors.toList())","u":"/interview/java-streams-lambda-functional/parallel-streams/collection-fix-bug-collect-collectors-tolist-instead/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":9},{"id":"Q2396","t":"Explain why forEachOrdered is needed with parallel streams to preserve encounter order","u":"/interview/java-streams-lambda-functional/parallel-streams/foreachordered-needed-parallel-streams-preserve-encounter/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":5},{"id":"Q2397","t":"Benchmark parallel vs sequential for 10 elements vs 10 million and explain the overhead","u":"/interview/java-streams-lambda-functional/parallel-streams/list-benchmark-parallel-sequential-10-elements-million/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":4},{"id":"Q2398","t":"Explain why stateful operations (sorted, distinct, limit) are more expensive in parallel streams","u":"/interview/java-streams-lambda-functional/parallel-streams/stateful-operations-sorted-distinct-limit-expensive-parallel/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":6},{"id":"Q334","t":"Parallel stream: ForkJoinPool, when to use, caveats (ordering, small data, shared state)","u":"/interview/java-streams-lambda-functional/parallel-streams/stream-state-parallel-forkjoinpool-caveats-ordering-small/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":1},{"id":"Q335","t":"Stream vs for-loop performance: when is each faster, when does parallelStream help vs hurt?","u":"/interview/java-streams-lambda-functional/parallel-streams/stream-streams-faster-traditional-loop-parallelstream-help/","ch":"Java Streams, Lambda & Functional Programming","tp":"Parallel Streams","qn":2},{"id":"Q2413","t":"How do you handle a checked exception inside a map() or forEach() lambda?","u":"/interview/java-streams-lambda-functional/stream-exceptions/checked-exception-map-lambda-handle-inside-foreach-wrap/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Exception Handling","qn":2},{"id":"Q2414","t":"Write a utility method Function<T, R> unchecked(CheckedFunction<T, R> f) to wrap a checked function for use in streams","u":"/interview/java-streams-lambda-functional/stream-exceptions/unchecked-checked-utility-checkedfunction-wraps-streams-wrap/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Exception Handling","qn":3},{"id":"Q2415","t":"How do you collect BOTH successful results and errors from a stream pipeline?","u":"/interview/java-streams-lambda-functional/stream-exceptions/stream-pattern-collect-successful-results-errors-pipeline/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Exception Handling","qn":4},{"id":"Q382","t":"Checked exceptions in lambdas/streams: why awkward, handling options, trade-offs","u":"/interview/java-streams-lambda-functional/stream-exceptions/checked-lambda-throws-throw-exceptions-lambdas-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Exception Handling","qn":1},{"id":"Q2301","t":"Explain why peek() should NOT be used for side effects in production code","u":"/interview/java-streams-lambda-functional/stream-performance/peek-side-effects-production-skipped-pipeline/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Performance & Pitfalls","qn":5},{"id":"Q2417","t":"Why is list.stream().filter(...).count() sometimes more efficient than collect(toList()).size()?","u":"/interview/java-streams-lambda-functional/stream-performance/list-stream-filter-count-sometimes-efficient-collect-tolist/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Performance & Pitfalls","qn":4},{"id":"Q2419","t":"When should you use toArray() vs collect(toList())?","u":"/interview/java-streams-lambda-functional/stream-performance/toarray-collect-tolist/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Performance & Pitfalls","qn":2},{"id":"Q2420","t":"Why is using a HashSet for the lookup list faster than filter(list::contains) for intersection queries?","u":"/interview/java-streams-lambda-functional/stream-performance/list-hashset-lookup-filter-contains-faster-intersection/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Performance & Pitfalls","qn":3},{"id":"Q427","t":"Stream.peek(): debugging only, may be optimized away, side effects unreliable","u":"/interview/java-streams-lambda-functional/stream-performance/stream-consumer-peek-debugging-optimized-away-side-effects/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Performance & Pitfalls","qn":1},{"id":"Q2422","t":"What does Stream.of(1,2,3).map(i -> i * 2) return if no terminal operation is called?","u":"/interview/java-streams-lambda-functional/stream-predict-output/stream-map-return-terminal-operation-called-nothing-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":1},{"id":"Q2423","t":"What happens if you reuse a stream after calling a terminal operation?","u":"/interview/java-streams-lambda-functional/stream-predict-output/stream-happens-reuse-calling-terminal-operation/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":2},{"id":"Q2424","t":"What does Arrays.asList(1,2,3).stream().peek(System.out::println).count() print in Java 9+?","u":"/interview/java-streams-lambda-functional/stream-predict-output/stream-system-arrays-aslist-peek-println-count-nothing-skip/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":3},{"id":"Q2425","t":"What is the output of IntStream.range(0, 5).mapToObj(i -> \"a\").reduce(\"\", (a, b) -> a + b)?","u":"/interview/java-streams-lambda-functional/stream-predict-output/intstream-range-maptoobj-reduce-aaaaa/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":4},{"id":"Q2426","t":"Why does Stream.generate(() -> \"x\").limit(5).parallel().forEachOrdered(System.out::println) print \"x\" five times in order?","u":"/interview/java-streams-lambda-functional/stream-predict-output/stream-system-generate-limit-parallel-foreachordered-println/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":5},{"id":"Q2427","t":"What happens with Collectors.toMap when two employees have the same id?","u":"/interview/java-streams-lambda-functional/stream-predict-output/merge-happens-collectors-tomap-employees-id/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":6},{"id":"Q2428","t":"Why does list.stream().sorted().forEach(System.out::println) NOT guarantee order in a parallel stream?","u":"/interview/java-streams-lambda-functional/stream-predict-output/list-stream-system-sorted-foreach-println-guarantee-order/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Predict the Output","qn":7},{"id":"Q2228","t":"Find all employees whose name starts with \"A\"","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-name-starts/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":21},{"id":"Q2230","t":"Find employees who do NOT belong to any of the given departments (use !Set.contains)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-belong-departments-contains/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":26},{"id":"Q2233","t":"Find employees who are duplicates by name (appear more than once)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/once-employees-duplicates-name-appear/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":25},{"id":"Q2268","t":"Get DoubleSummaryStatistics of salaries (count, sum, min, max, average) using Collectors.summarizingDouble","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-employee-compute-count-sum-minimum-maximum-average/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":9},{"id":"Q2271","t":"Collect employees into an unmodifiable list using toUnmodifiableList or collectingAndThen with Collections.unmodifiableList","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-stream-collections-employee-collect-results-cannot/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":10},{"id":"Q2272","t":"Use Collectors.teeing to compute the min and max salary in a single pass","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-salary-stream-employee-compute-minimum-maximum-single/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":11},{"id":"Q2273","t":"Use Collectors.joining(\", \", \"[\", \"]\") to create a formatted string of employee names","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-string-employee-build-single-formatted-names-separated/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":12},{"id":"Q2277","t":"Paginate employees using skip and limit to fetch a specific page","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-salary-pagination-employee-sorted-descending-skip-limit/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":13},{"id":"Q2286","t":"Merge two employee streams into one using Stream.concat and deduplicate the result","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-merge-stream-employee-source-systems-concat-remove/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":14},{"id":"Q2338","t":"Find all employees who joined in the last 5 years using LocalDate.now().minusYears(5)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-joined-years-localdate-now-minusyears/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":17},{"id":"Q2340","t":"Find the employee who joined most recently","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employee-joined-recently/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":18},{"id":"Q2341","t":"Calculate the difference in days between two employees' joining dates using ChronoUnit.DAYS.between","u":"/interview/java-streams-lambda-functional/stream-employee-practice/calculate-difference-days-employees-joining-dates-chronounit/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":19},{"id":"Q2342","t":"Format an employee's joining date as dd-MMM-yyyy using DateTimeFormatter","u":"/interview/java-streams-lambda-functional/stream-employee-practice/format-employee-joining-date-as-dd-mmm-yyyy/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":20},{"id":"Q2343","t":"Find all employees who have a birthday this month","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-birthday-month/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":22},{"id":"Q2349","t":"Count vowels and consonants in a string using streams","u":"/interview/java-streams-lambda-functional/stream-employee-practice/string-count-vowels-consonants-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":35},{"id":"Q2370","t":"Compute the running/cumulative sum of a list using streams","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-compute-running-cumulative-sum-streams-hint/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":38},{"id":"Q2374","t":"Find the department that has the highest average salary","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-department-highest-average/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":39},{"id":"Q2375","t":"Find the department with the highest total salary expenditure","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-department-highest-total-expenditure/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":40},{"id":"Q2376","t":"Find the employee with the second-highest salary (handle ties)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-employee-second-highest-entire-organization-handle/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":41},{"id":"Q2377","t":"Find the Nth-highest salary (make it generic for any N)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-nth-highest-generic/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":42},{"id":"Q2378","t":"Find employees whose salary is above their department's average","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-employees-average-department/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":43},{"id":"Q2379","t":"Find the youngest male and female employee","u":"/interview/java-streams-lambda-functional/stream-employee-practice/youngest-male-female-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":31},{"id":"Q2380","t":"Find the most common city among employees","u":"/interview/java-streams-lambda-functional/stream-employee-practice/common-city-among-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":29},{"id":"Q2381","t":"Find the department with the most diverse age range (max - min age)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/department-diverse-age-range-max-min/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":27},{"id":"Q2382","t":"List departments where average age is above 35","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-departments-average-age-35/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":34},{"id":"Q2383","t":"For each department, find the ratio of male to female employees","u":"/interview/java-streams-lambda-functional/stream-employee-practice/department-ratio-male-female-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":32},{"id":"Q2384","t":"Find the employee closest to retirement age (assuming retirement at 60)","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employee-closest-retirement-age-assuming-60/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":28},{"id":"Q2385","t":"Find the year in which the maximum number of employees joined","u":"/interview/java-streams-lambda-functional/stream-employee-practice/year-maximum-number-employees-joined/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":30},{"id":"Q2386","t":"Compute new salaries with department-based raise policy","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-raise-policy-10-15-sales-others-compute-employee/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":33},{"id":"Q2387","t":"Create a summary report per department: count, avg, min, max, total salary","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-create-summary-report-department-count-average-min/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":15},{"id":"Q2388","t":"Find employees who share the same birthday month","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-share-birthday-month/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":36},{"id":"Q2389","t":"Find pairs of employees who have the same salary","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-list-pairs-employees-across-whole/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":37},{"id":"Q2391","t":"Find the top 3 departments by average salary","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-top-departments-average/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":23},{"id":"Q2392","t":"Find employees who earn more than their department's average","u":"/interview/java-streams-lambda-functional/stream-employee-practice/employees-earn-department-average/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":24},{"id":"Q2410","t":"Find department with highest total salary, then its top earner","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-salary-employees-department-total-highest-return-top/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":16},{"id":"Q350","t":"Group employees by field (city/department) + filter by city/age using streams","u":"/interview/java-streams-lambda-functional/stream-employee-practice/group-employees-field-city-department-filter-age-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":1},{"id":"Q351","t":"Count male vs female employees: across organization and per department","u":"/interview/java-streams-lambda-functional/stream-employee-practice/count-male-female-employees-across-organization-per/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":2},{"id":"Q352","t":"Average age and salary of employees by gender: overall and per department","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-compute-average-age-employees-gender-overall-per/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":3},{"id":"Q353","t":"Find oldest, youngest female, longest-serving employee: overall and per department","u":"/interview/java-streams-lambda-functional/stream-employee-practice/oldest-employee-youngest-female-longest-serving-overall-per/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":4},{"id":"Q354","t":"Find the department with the highest number of employees","u":"/interview/java-streams-lambda-functional/stream-employee-practice/department-highest-number-employees/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":5},{"id":"Q355","t":"Highest, second-highest, Nth-highest salary: top 3 earners","u":"/interview/java-streams-lambda-functional/stream-employee-practice/salary-highest-second-highest-nth-highest-top-earners/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":6},{"id":"Q358","t":"Merge two employee lists: unique by ID, keep-existing and deep-merge strategies","u":"/interview/java-streams-lambda-functional/stream-employee-practice/merge-list-employee-lists-return-unique-keyed-id/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":7},{"id":"Q359","t":"Remove duplicates from a list: by value and by object field using streams","u":"/interview/java-streams-lambda-functional/stream-employee-practice/list-remove-duplicate-elements-value-object-field-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Employee Analysis","qn":8},{"id":"Q2245","t":"Given a list of sentences, split each into words and return a flat list of all unique words","u":"/interview/java-streams-lambda-functional/stream-string-practice/list-sentences-split-words-return-flat-unique/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":6},{"id":"Q2345","t":"Find the most frequent character in a string","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-frequent-character/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":7},{"id":"Q2347","t":"Reverse a string using chars() and StringBuilder","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-stringbuilder-reverse-chars/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":8},{"id":"Q2348","t":"Check if a string is a palindrome using streams","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-palindrome-check-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":9},{"id":"Q2352","t":"Find the SECOND non-repeating character in a string","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-linkedhashmap-second-non-repeating-character/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":10},{"id":"Q2371","t":"From a list of integers, find all numbers whose string representation starts with a given digit","u":"/interview/java-streams-lambda-functional/stream-string-practice/list-string-integers-numbers-representation-starts-digit/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":11},{"id":"Q360","t":"First non-repeating character in a string using streams","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-non-repeating-character-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":1},{"id":"Q361","t":"Second most repeated (Nth most frequent) character in a string: LinkedHashMap tie-break","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-linkedhashmap-second-repeated-character-nth-frequent/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":2},{"id":"Q362","t":"First non-repeating string in an array using streams","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-array-non-repeating-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":3},{"id":"Q363","t":"Find unique words from a sentence using streams","u":"/interview/java-streams-lambda-functional/stream-string-practice/list-unique-words-sentence-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":4},{"id":"Q364","t":"Frequency count of each string in a list using streams","u":"/interview/java-streams-lambda-functional/stream-string-practice/string-list-compute-frequency-count-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: String & Character","qn":5},{"id":"Q2362","t":"Find the second-largest number in a list using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-second-largest-number-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":9},{"id":"Q2363","t":"Find the second-smallest number in a list using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-second-smallest-number-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":10},{"id":"Q2367","t":"Find the intersection and union of two lists using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/union-intersection-lists-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":11},{"id":"Q365","t":"Intersection / common elements of two lists: filter(set::contains), HashSet for O(1)","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-intersection-common-elements-lists-streams-filter-set2/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":1},{"id":"Q366","t":"Sort a Map by key or value: LinkedHashMap to preserve order","u":"/interview/java-streams-lambda-functional/stream-collection-practice/sort-map-stream-linkedhashmap-hashmap-key-value-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":2},{"id":"Q367","t":"Find the second-largest number from a list using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-second-largest-number-streams-2/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":3},{"id":"Q368","t":"Convert lowercase string to uppercase using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/string-convert-lowercase-uppercase-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":4},{"id":"Q369","t":"Remove empty and null strings from an array using streams","u":"/interview/java-streams-lambda-functional/stream-collection-practice/null-array-remove-empty-strings-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":5},{"id":"Q370","t":"Reverse an integer array without using inbuilt functions","u":"/interview/java-streams-lambda-functional/stream-collection-practice/array-reverse-integer-without-inbuilt-functions/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":6},{"id":"Q371","t":"Find middle element of a linked list: slow/fast pointer","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-pointer-middle-element-linked-slow-fast/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":7},{"id":"Q372","t":"Predict output: loop adding to List<Short> with removal: autoboxing trap","u":"/interview/java-streams-lambda-functional/stream-collection-practice/list-predict-loop-adds-short-removes-element-whenever-size/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream Practice: Collections & Numbers","qn":8},{"id":"Q2244","t":"Given a List<Company> → List<Department> → List<Employee>, extract all employee names across all companies","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/list-company-contains-department-employee-extract-names/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":5},{"id":"Q2282","t":"Audit each element flowing through a pipeline using peek without changing the data","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/stream-log-peek-employee-as-passes-filtering-mapping/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":1},{"id":"Q2300","t":"Use peek() to log each employee as the stream pipeline processes them (debugging only)","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/log-stream-peek-employee-as-pipeline-processes-debugging/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":8},{"id":"Q2409","t":"From a List<Company>, extract all employees, filter earners > 60000, group by city, sort each group by name","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/list-sort-map-string-company-extract-employees-across/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":2},{"id":"Q2411","t":"Merge two lists of employees, remove duplicates by id, group by department, compute average salary","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/merge-salary-lists-employees-branches-remove-duplicates-id/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":3},{"id":"Q2412","t":"Build a pipeline that filters active employees, maps to a DTO, groups by department, sorts each group by salary descending, collects into a LinkedHashMap sorted by department","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/salary-linkedhashmap-build-single-pipeline-filters-active/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":4},{"id":"Q2418","t":"Why should you avoid calling stream() inside another stream pipeline (nested streams)?","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/stream-avoid-calling-inside-another-pipeline-nested-streams/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":7},{"id":"Q2421","t":"Why should stream pipelines be side-effect-free, and what breaks if you mutate external state from map()/filter()?","u":"/interview/java-streams-lambda-functional/stream-complex-pipelines/stream-state-map-pipelines-side-effect-free-breaks-mutate/","ch":"Java Streams, Lambda & Functional Programming","tp":"Stream: Complex Pipelines","qn":6},{"id":"Q312","t":"What is the java.time Date/Time API?","u":"/interview/java-streams-lambda-functional/date-time-api/api-time-date-preferred-legacy-calendar-simpledateformat/","ch":"Java Streams, Lambda & Functional Programming","tp":"Date/Time API","qn":1},{"id":"Q313","t":"What is the Java 8 Base64 API?","u":"/interview/java-streams-lambda-functional/date-time-api/api-base64-getencoder-getdecoder-url-safe-mime-variants/","ch":"Java Streams, Lambda & Functional Programming","tp":"Date/Time API","qn":2},{"id":"Q374","t":"What are the key Java 11 features?","u":"/interview/java-streams-lambda-functional/java-11-features/lambda-string-file-predicate-http-gc-features-introduced-11/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 11 Features","qn":1},{"id":"Q375","t":"What is the Java 11 HttpClient?","u":"/interview/java-streams-lambda-functional/java-11-features/rest-api-http-call-11-httpclient-sync-send-async-sendasync/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 11 Features","qn":2},{"id":"Q376","t":"What String and Optional improvements came in Java 11?","u":"/interview/java-streams-lambda-functional/java-11-features/string-optional-files-readstring-writestring-isblank-strip/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 11 Features","qn":3},{"id":"Q377","t":"What is Java Flight Recorder?","u":"/interview/java-streams-lambda-functional/java-11-features/gc-thread-flight-recorder-jfr-low-overhead-production/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 11 Features","qn":4},{"id":"Q378","t":"What breaks when upgrading Java 8 to 11?","u":"/interview/java-streams-lambda-functional/java-11-features/11-upgrade-break-build-removed-ee-corba-modules-now-needing/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 11 Features","qn":5},{"id":"Q379","t":"How do you migrate from Java 8 to Java 17?","u":"/interview/java-streams-lambda-functional/java-17-features/migrate-application-17-technical-challenges-face/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 17 Features","qn":1},{"id":"Q380","t":"What are Java 8 to 17 breaking changes?","u":"/interview/java-streams-lambda-functional/java-17-features/encapsulation-jvm-gc-specific-breaking-changes-migrating-17/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 17 Features","qn":2},{"id":"Q403","t":"What are Java 17 LTS features?","u":"/interview/java-streams-lambda-functional/java-17-features/17-add-overall-teams-adopt-lts-stability-modern-features/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 17 Features","qn":3},{"id":"Q393","t":"What are virtual threads?","u":"/interview/java-streams-lambda-functional/java-21-features/thread-virtual-threads-problem-solve-cheap-blocking-o-bound/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":1},{"id":"Q394","t":"What is virtual thread pinning?","u":"/interview/java-streams-lambda-functional/java-21-features/thread-causes-carrier-thread-pinning-changed-across-versions/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":2},{"id":"Q395","t":"Why is pooling virtual threads an anti-pattern?","u":"/interview/java-streams-lambda-functional/java-21-features/thread-pooling-virtual-threads-anti-pattern-re-cheap/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":3},{"id":"Q396","t":"Do virtual threads change system capacity?","u":"/interview/java-streams-lambda-functional/java-21-features/system-virtual-threads-change-concurrency-model-capacity-db/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":4},{"id":"Q397","t":"What are Java 21 LTS features?","u":"/interview/java-streams-lambda-functional/java-21-features/21-add-overall-common-upgrade-target-lts-features/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":5},{"id":"Q398","t":"What is Structured Concurrency?","u":"/interview/java-streams-lambda-functional/java-21-features/structured-concurrency-structuredtaskscope-fix-unstructured/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":6},{"id":"Q399","t":"What is ScopedValue?","u":"/interview/java-streams-lambda-functional/java-21-features/scopedvalue-preferred-threadlocal-virtual-threads-status/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":7},{"id":"Q400","t":"What are text blocks?","u":"/interview/java-streams-lambda-functional/java-21-features/sql-text-blocks-useful-json-html-without-escaping/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":8},{"id":"Q401","t":"What are switch expressions?","u":"/interview/java-streams-lambda-functional/java-21-features/switch-expressions-arrow-syntax-yield-exhaustiveness-reduce/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":9},{"id":"Q402","t":"What are helpful NullPointerExceptions?","u":"/interview/java-streams-lambda-functional/java-21-features/helpful-nullpointerexceptions-jep-358-npes-easier-diagnose/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 21+ Features","qn":10},{"id":"Q404","t":"What are Stable Values?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/final-once-static-stable-values-jep-502-lazy-container/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":1},{"id":"Q405","t":"What are Primitive Types in Patterns?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/primitive-types-patterns-jep-507-instanceof-switch/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":2},{"id":"Q406","t":"What are Module Imports and Compact Source Files?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/module-import-declarations-jep-511-compact-source-files/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":3},{"id":"Q407","t":"What are Flexible Constructor Bodies?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/flexible-constructor-bodies-jep-513-statements-super-enable/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":4},{"id":"Q408","t":"What are Vector API and security additions?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/vector-api-simd-incubator-key-derivation-jep-510-pem/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":5},{"id":"Q409","t":"What is HTTP/3 in JDK HttpClient?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/http-jdk-support-httpclient-version-quic-improve-connection/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":6},{"id":"Q410","t":"What are unnamed variables and patterns?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/exception-pattern-unnamed-variables-patterns-jep-456/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":7},{"id":"Q411","t":"What is Project Leyden?","u":"/interview/java-streams-lambda-functional/java-24-25-preview/jvm-project-leyden-aiming-improve-faster-startup-warm-up-via/","ch":"Java Streams, Lambda & Functional Programming","tp":"Java 24/25 Preview","qn":8},{"id":"Q434","t":"What are Java Records?","u":"/interview/java-streams-lambda-functional/records/records-16-auto-generate-regular-classes/","ch":"Java Streams, Lambda & Functional Programming","tp":"Records","qn":1},{"id":"Q311","t":"Why was Java 8 introduced?","u":"/interview/java-streams-lambda-functional/functional-programming/introduced-major-features/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Programming Concepts","qn":1},{"id":"Q373","t":"What are the benefits of functional programming?","u":"/interview/java-streams-lambda-functional/functional-programming/functional-programming-benefits-immutability-pure-functions/","ch":"Java Streams, Lambda & Functional Programming","tp":"Functional Programming Concepts","qn":2},{"id":"Q421","t":"What is IoC Container: BeanFactory vs ApplicationContext?","u":"/interview/spring-spring-boot/ioc-and-bean-lifecycle/spring-ioc-container-difference-beanfactory/","ch":"Spring & Spring Boot","tp":"IoC Container & Bean Lifecycle","qn":1},{"id":"Q422","t":"What is the Spring Bean Lifecycle?","u":"/interview/spring-spring-boot/ioc-and-bean-lifecycle/spring-bean-proxy-walk-complete-lifecycle-injected-init/","ch":"Spring & Spring Boot","tp":"IoC Container & Bean Lifecycle","qn":2},{"id":"Q423","t":"How does Spring handle circular dependencies?","u":"/interview/spring-spring-boot/ioc-and-bean-lifecycle/spring-handle-circular-dependencies-constructor-injection/","ch":"Spring & Spring Boot","tp":"IoC Container & Bean Lifecycle","qn":3},{"id":"Q428","t":"What are the Bean Scopes?","u":"/interview/spring-spring-boot/ioc-and-bean-lifecycle/spring-bean-singleton-prototype-proxy-scopes-difference-goes/","ch":"Spring & Spring Boot","tp":"IoC Container & Bean Lifecycle","qn":4},{"id":"Q424","t":"How do you resolve multiple beans of the same type?","u":"/interview/spring-spring-boot/dependency-injection/list-map-mechanisms-resolve-multiple-beans-type-primary/","ch":"Spring & Spring Boot","tp":"Dependency Injection","qn":1},{"id":"Q425","t":"What is constructor vs field vs setter injection?","u":"/interview/spring-spring-boot/dependency-injection/autowired-di-types-pros-cons-constructor-injection-preferred/","ch":"Spring & Spring Boot","tp":"Dependency Injection","qn":2},{"id":"Q426","t":"What is @Autowired vs @Resource vs @Inject?","u":"/interview/spring-spring-boot/dependency-injection/autowired-differences-resource-inject-exact-resolution-order/","ch":"Spring & Spring Boot","tp":"Dependency Injection","qn":3},{"id":"Q429","t":"What is the difference between Spring bean and plain Java object?","u":"/interview/spring-spring-boot/bean-types-and-stereotypes/spring-bean-component-service-repository-controller/","ch":"Spring & Spring Boot","tp":"Bean Types & Stereotypes","qn":1},{"id":"Q432","t":"What are @Conditional and @SpringBootApplication?","u":"/interview/spring-spring-boot/bean-types-and-stereotypes/spring-conditional-variants-difference-springbootapplication/","ch":"Spring & Spring Boot","tp":"Bean Types & Stereotypes","qn":2},{"id":"Q427","t":"How does servlet concurrency work in Spring?","u":"/interview/spring-spring-boot/web-layer/state-singleton-bean-spring-servlet-model-handle-concurrent/","ch":"Spring & Spring Boot","tp":"Web Layer: Controllers & Request Mapping","qn":1},{"id":"Q430","t":"What are the Spring MVC request mapping annotations?","u":"/interview/spring-spring-boot/web-layer/controller-spring-annotations-difference-restcontroller/","ch":"Spring & Spring Boot","tp":"Web Layer: Controllers & Request Mapping","qn":2},{"id":"Q431","t":"Why should you not put DB logic in a controller?","u":"/interview/spring-spring-boot/web-layer/controller-spring-db-operations-bad-practice-dao-layer/","ch":"Spring & Spring Boot","tp":"Web Layer: Controllers & Request Mapping","qn":3},{"id":"Q433","t":"What is the Spring Boot startup flow?","u":"/interview/spring-spring-boot/configuration-and-profiles/spring-boot-initialize-dispatcherservlet-create-build-run/","ch":"Spring & Spring Boot","tp":"Configuration & Profiles","qn":1},{"id":"Q434","t":"How does property resolution work in Spring Boot?","u":"/interview/spring-spring-boot/configuration-and-profiles/spring-microservices-boot-property-resolution-order-activate/","ch":"Spring & Spring Boot","tp":"Configuration & Profiles","qn":2},{"id":"Q437","t":"What is AOP in Spring?","u":"/interview/spring-spring-boot/aop/spring-aop-via-proxies-define-aspect-joinpoint-pointcut/","ch":"Spring & Spring Boot","tp":"AOP: Aspect-Oriented Programming","qn":1},{"id":"Q438","t":"What is Spring Cache with Redis?","u":"/interview/spring-spring-boot/caching/caching-spring-redis-cache-ttl-strategy-design-distributed/","ch":"Spring & Spring Boot","tp":"Caching: Spring Cache & Redis","qn":1},{"id":"Q439","t":"What are the Spring testing annotations?","u":"/interview/spring-spring-boot/testing/junit-mockito-annotations-testcontainers-spring-test/","ch":"Spring & Spring Boot","tp":"Testing: Unit, Integration, Testcontainers","qn":1},{"id":"Q440","t":"How does Spring Security work with JWT?","u":"/interview/spring-spring-boot/security/feign-spring-jwt-content-negotiation-resttemplate-webclient/","ch":"Spring & Spring Boot","tp":"Spring Security: JWT, OAuth2, CSRF/CORS","qn":1},{"id":"Q441","t":"What is CSRF vs CORS and Bean Validation?","u":"/interview/spring-spring-boot/security/csrf-cors-rest-post-spring-jdbc-jpa-bean-differ-safe-disable/","ch":"Spring & Spring Boot","tp":"Spring Security: JWT, OAuth2, CSRF/CORS","qn":2},{"id":"Q445","t":"What is OAuth2 Resource Server and WebFlux?","u":"/interview/spring-spring-boot/security/oidc-spring-http-websocket-sse-oauth2-security-declarative/","ch":"Spring & Spring Boot","tp":"Spring Security: JWT, OAuth2, CSRF/CORS","qn":3},{"id":"Q435","t":"What is Spring Boot Actuator?","u":"/interview/spring-spring-boot/logging-and-monitoring/spring-actuator-expose-endpoints-add-custom-health-check-run/","ch":"Spring & Spring Boot","tp":"Logging & Monitoring","qn":1},{"id":"Q436","t":"How does logging work in Spring Boot?","u":"/interview/spring-spring-boot/logging-and-monitoring/logging-spring-slf4j-logback-log-implemented-boot-centralize/","ch":"Spring & Spring Boot","tp":"Logging & Monitoring","qn":2},{"id":"Q443","t":"Why does @Transactional on private method do nothing?","u":"/interview/spring-spring-boot/proxy-and-internals/transactional-rest-private-nothing-async-self-invoke-run/","ch":"Spring & Spring Boot","tp":"Proxy, @Transactional Pitfalls & Internals","qn":1},{"id":"Q444","t":"What are BeanPostProcessor, EventListener, SmartLifecycle?","u":"/interview/spring-spring-boot/proxy-and-internals/thread-spring-beanpostprocessor-applicationeventpublisher/","ch":"Spring & Spring Boot","tp":"Proxy, @Transactional Pitfalls & Internals","qn":2},{"id":"Q442","t":"How do you debug a slow Spring Boot app?","u":"/interview/spring-spring-boot/performance-and-debugging/spring-api-debug-running-boot-app-address-prod-slower-uat/","ch":"Spring & Spring Boot","tp":"Performance & Debugging","qn":1},{"id":"Q446","t":"What other Spring features should you know?","u":"/interview/spring-spring-boot/advanced-spring/spring-rest-hateoas-file-retry-state-testcontainers/","ch":"Spring & Spring Boot","tp":"Advanced: WebFlux, WebSocket, Virtual Threads","qn":1},{"id":"Q570","t":"What does @Transactional(readOnly=true) do?","u":"/interview/transactions/transactional-basics/transactional-hibernate-readonly-true-flush-mode-manual/","ch":"Transactions","tp":"@Transactional Basics","qn":5},{"id":"Q573","t":"How does @Modifying + @Transactional work on @Query?","u":"/interview/transactions/transactional-basics/delete-transactional-bulk-query-update-statements-modifying/","ch":"Transactions","tp":"@Transactional Basics","qn":6},{"id":"Q574","t":"@Transactional on class vs interface: JDK proxy vs CGLIB?","u":"/interview/transactions/transactional-basics/transactional-interface-jdk-dynamic-proxy-implementation/","ch":"Transactions","tp":"@Transactional Basics","qn":7},{"id":"Q576","t":"How does @Transactional work?","u":"/interview/transactions/transactional-basics/transactional-spring-proxy-rollback-propagation-isolation/","ch":"Transactions","tp":"@Transactional Basics","qn":1},{"id":"Q576b","t":"Declarative vs Programmatic transaction management?","u":"/interview/transactions/transactional-basics/spring-rollback-boot-manage-transactions-including/","ch":"Transactions","tp":"@Transactional Basics","qn":2},{"id":"Q576c","t":"Class-level vs Method-level @Transactional?","u":"/interview/transactions/transactional-basics/transactional-difference-class-level-method-level/","ch":"Transactions","tp":"@Transactional Basics","qn":3},{"id":"Q576d","t":"Transactions with and without Spring Boot?","u":"/interview/transactions/transactional-basics/spring-transactional-jdbc-rollback-transactions-without-boot/","ch":"Transactions","tp":"@Transactional Basics","qn":4},{"id":"Q569","t":"What is TransactionTemplate?","u":"/interview/transactions/declarative-vs-programmatic/transactional-transactiontemplate-programmatic-transaction/","ch":"Transactions","tp":"Declarative vs Programmatic","qn":1},{"id":"Q585","t":"TransactionSynchronization and TransactionTemplate?","u":"/interview/transactions/declarative-vs-programmatic/transactionsynchronization-callbacks-aftercommit/","ch":"Transactions","tp":"Declarative vs Programmatic","qn":2},{"id":"Q577","t":"What are the transaction isolation levels?","u":"/interview/transactions/isolation-levels/transactional-isolation-levels-phenomena-prevent-dirty/","ch":"Transactions","tp":"Isolation Levels & MVCC","qn":1},{"id":"Q577b","t":"What is MVCC?","u":"/interview/transactions/isolation-levels/mvcc-postgresql-isolation-innodb-keep-row-versions-readers/","ch":"Transactions","tp":"Isolation Levels & MVCC","qn":2},{"id":"Q581","t":"Isolation level vs @Lock: how do they interact?","u":"/interview/transactions/isolation-levels/isolation-spring-difference-transaction-level-lock-boot/","ch":"Transactions","tp":"Isolation Levels & MVCC","qn":3},{"id":"Q578","t":"What are transaction propagation levels?","u":"/interview/transactions/propagation/transactional-propagation-levels-required-requires-supports/","ch":"Transactions","tp":"Transaction Propagation","qn":1},{"id":"Q578b","t":"What is the REQUIRES_NEW connection pool deadlock?","u":"/interview/transactions/propagation/propagation-deadlock-heavy-requires-application/","ch":"Transactions","tp":"Transaction Propagation","qn":2},{"id":"Q578c","t":"What are AB-BA row-level deadlocks?","u":"/interview/transactions/propagation/hibernate-concurrent-transactions-updating-multiple-entities/","ch":"Transactions","tp":"Transaction Propagation","qn":3},{"id":"Q578d","t":"Why is REQUIRES_NEW + sync REST calls a Saga anti-pattern?","u":"/interview/transactions/propagation/rest-saga-requires-synchronous-calls-mimic-anti-pattern/","ch":"Transactions","tp":"Transaction Propagation","qn":4},{"id":"Q579","t":"When does @Transactional NOT rollback?","u":"/interview/transactions/rollback-and-pitfalls/transactional-checked-rollback-cases-roll-back-exceptions/","ch":"Transactions","tp":"Rollback Rules & Pitfalls","qn":1},{"id":"Q579b","t":"What is UnexpectedRollbackException?","u":"/interview/transactions/rollback-and-pitfalls/catch-exception-transaction-roll-back-difference-logical/","ch":"Transactions","tp":"Rollback Rules & Pitfalls","qn":2},{"id":"Q579c","t":"Why are external side effects inside a transaction dangerous?","u":"/interview/transactions/rollback-and-pitfalls/transactional-http-govern-db-resources-external-side-effects/","ch":"Transactions","tp":"Rollback Rules & Pitfalls","qn":3},{"id":"Q596","t":"How does readOnly=true silently drop writes?","u":"/interview/transactions/rollback-and-pitfalls/transactional-hibernate-readonly-true-cause-insert-update/","ch":"Transactions","tp":"Rollback Rules & Pitfalls","qn":4},{"id":"Q597","t":"Transaction rolled back but API returned 200?","u":"/interview/transactions/rollback-and-pitfalls/transactional-api-http-catch-exception-state-scenario-rolled/","ch":"Transactions","tp":"Rollback Rules & Pitfalls","qn":5},{"id":"Q580","t":"How do you handle parallel transaction deadlocks?","u":"/interview/transactions/deadlocks-and-locking/spring-retry-parallel-transactions-cause-deadlocks-handle/","ch":"Transactions","tp":"Deadlocks & Locking","qn":1},{"id":"Q583","t":"What causes connection pool exhaustion?","u":"/interview/transactions/deadlocks-and-locking/avoid-slow-network-calls-inside-tx-pool-exhaust-db-healthy/","ch":"Transactions","tp":"Deadlocks & Locking","qn":2},{"id":"Q571","t":"What is @TransactionalEventListener?","u":"/interview/transactions/events-and-callbacks/rollback-transactionaleventlistener-commit-phases-differs/","ch":"Transactions","tp":"Events & Transaction Callbacks","qn":1},{"id":"Q587","t":"What is readOnly optimization and @TransactionalEventListener phases?","u":"/interview/transactions/events-and-callbacks/rollback-readonly-true-optimize-phases/","ch":"Transactions","tp":"Events & Transaction Callbacks","qn":2},{"id":"Q595","t":"What are TransactionSynchronization callbacks?","u":"/interview/transactions/events-and-callbacks/spring-cache-transactionsynchronization/","ch":"Transactions","tp":"Events & Transaction Callbacks","qn":3},{"id":"Q584","t":"How does @Transactional work with multiple DataSources?","u":"/interview/transactions/multiple-datasources/transactional-multiple-datasources-single-span-independent/","ch":"Transactions","tp":"Multiple DataSources","qn":1},{"id":"Q591","t":"@Transactional on interface vs implementation?","u":"/interview/transactions/multiple-datasources/spring-transactional-interface-recommend-putting-concrete/","ch":"Transactions","tp":"Multiple DataSources","qn":2},{"id":"Q572","t":"What are distributed transactions and why is Saga preferred?","u":"/interview/transactions/distributed-transactions/distributed-microservices-saga-outbox-pattern-consistency/","ch":"Transactions","tp":"Distributed Transactions & Saga","qn":1},{"id":"Q589","t":"How do distributed transactions and @Modifying interact?","u":"/interview/transactions/distributed-transactions/distributed-transactional-transactions-jta-xa-two-phase/","ch":"Transactions","tp":"Distributed Transactions & Saga","qn":2},{"id":"Q582","t":"What happens internally when @Transactional executes?","u":"/interview/transactions/internals/transactional-proxy-rollback-internally-end-to-end-aop/","ch":"Transactions","tp":"Transaction Internals","qn":1},{"id":"Q582b","t":"What is PlatformTransactionManager?","u":"/interview/transactions/internals/jdbc-platformtransactionmanager-implementation/","ch":"Transactions","tp":"Transaction Internals","qn":2},{"id":"Q592","t":"What is JPA vs Hibernate?","u":"/interview/jpa-hibernate/jpa-fundamentals/jpa-hibernate-advantages-disadvantages-core-interfaces/","ch":"JPA & Hibernate","tp":"JPA Fundamentals","qn":1},{"id":"Q596","t":"What are entity lifecycle states?","u":"/interview/jpa-hibernate/jpa-fundamentals/transient-merge-offset-pagination-entity-states-managed/","ch":"JPA & Hibernate","tp":"JPA Fundamentals","qn":2},{"id":"Q634","t":"What is persist() vs merge()?","u":"/interview/jpa-hibernate/jpa-fundamentals/merge-jpa-spring-difference-persist-data-save-relate/","ch":"JPA & Hibernate","tp":"JPA Fundamentals","qn":3},{"id":"Q635","t":"What are the core EntityManager operations?","u":"/interview/jpa-hibernate/jpa-fundamentals/merge-core-entitymanager-operations-including-persist-remove/","ch":"JPA & Hibernate","tp":"JPA Fundamentals","qn":4},{"id":"Q667","t":"What is the JPA persistence context?","u":"/interview/jpa-hibernate/jpa-fundamentals/jpa-cache-persistence-context-role-as-first-level-manages/","ch":"JPA & Hibernate","tp":"JPA Fundamentals","qn":5},{"id":"Q593","t":"What is the N+1 query problem?","u":"/interview/jpa-hibernate/n-plus-1-and-fetching/join-hibernate-detect-fix-strategies-fetch-entitygraph/","ch":"JPA & Hibernate","tp":"N+1 Problem & Fetching","qn":1},{"id":"Q594","t":"What is EAGER vs LAZY fetching?","u":"/interview/jpa-hibernate/n-plus-1-and-fetching/proxy-sql-hibernate-load-eager-lazy-default-fetch-per/","ch":"JPA & Hibernate","tp":"N+1 Problem & Fetching","qn":2},{"id":"Q629","t":"How do you connect two tables with @OneToMany?","u":"/interview/jpa-hibernate/entity-relationships/hibernate-jpa-annotations-connect-tables-onetomany-manytoone/","ch":"JPA & Hibernate","tp":"Entity Mapping: Relationships","qn":1},{"id":"Q652","t":"What is @OneToMany / @ManyToOne / @JoinColumn / mappedBy?","u":"/interview/jpa-hibernate/entity-relationships/map-two-table-parent-child-relationship-onetomany-manytoone/","ch":"JPA & Hibernate","tp":"Entity Mapping: Relationships","qn":2},{"id":"Q659","t":"User-Order @OneToMany: a complete worked example","u":"/interview/jpa-hibernate/entity-relationships/map-jpa-user-to-order-one-to-many-relationship-including/","ch":"JPA & Hibernate","tp":"Entity Mapping: Relationships","qn":3},{"id":"Q660","t":"What are JPA cascade types?","u":"/interview/jpa-hibernate/entity-relationships/jpa-merge-cascade-types-persist-remove-detach-refresh-differ/","ch":"JPA & Hibernate","tp":"Entity Mapping: Relationships","qn":4},{"id":"Q676","t":"Why must you synchronize both sides of a bidirectional relationship?","u":"/interview/jpa-hibernate/entity-relationships/jpa-synchronize-sides-bidirectional-relationship-helper/","ch":"JPA & Hibernate","tp":"Entity Mapping: Relationships","qn":5},{"id":"Q630","t":"What is a composite primary key in JPA?","u":"/interview/jpa-hibernate/entity-keys-columns/map-jpa-equals-hashcode-serializable-composite-primary-key/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":1},{"id":"Q631","t":"What is @ElementCollection vs @OneToMany?","u":"/interview/jpa-hibernate/entity-keys-columns/list-string-jpa-collections-elementcollection-instead/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":2},{"id":"Q632","t":"What are the @GeneratedValue strategies?","u":"/interview/jpa-hibernate/entity-keys-columns/jpa-declare-generate-single-column-primary-key-id/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":3},{"id":"Q633","t":"What is @Column and @Transient?","u":"/interview/jpa-hibernate/entity-keys-columns/jpa-transient-control-field-to-column-mapping-column-exclude/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":4},{"id":"Q653","t":"@EmbeddedId vs @IdClass for composite keys?","u":"/interview/jpa-hibernate/entity-keys-columns/jpa-model-composite-primary-key-difference-embeddedid/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":5},{"id":"Q654","t":"@ElementCollection vs @OneToMany: value vs entity?","u":"/interview/jpa-hibernate/entity-keys-columns/elementcollection-differ-onetomany-embeddable-value-objects/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":6},{"id":"Q655","t":"IDENTITY vs SEQUENCE vs TABLE vs AUTO vs UUID?","u":"/interview/jpa-hibernate/entity-keys-columns/generatedvalue-strategies-identity-sequence-table-auto-uuid/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":7},{"id":"Q656","t":"@Column mapping and @Transient?","u":"/interview/jpa-hibernate/entity-keys-columns/jpa-transient-column-control-field-to-column-mapping/","ch":"JPA & Hibernate","tp":"Entity Mapping: Keys, Columns & Annotations","qn":8},{"id":"Q657","t":"What is @SecondaryTable?","u":"/interview/jpa-hibernate/entity-embeddable-inheritance/secondarytable-let-entity-span-multiple-tables/","ch":"JPA & Hibernate","tp":"Embeddable, Inheritance & Secondary Tables","qn":1},{"id":"Q658","t":"Why does random UUID primary key hurt performance?","u":"/interview/jpa-hibernate/entity-embeddable-inheritance/index-random-uuidv4-primary-key-hurt-performance-b-tree-page/","ch":"JPA & Hibernate","tp":"Embeddable, Inheritance & Secondary Tables","qn":2},{"id":"Q680","t":"What is @Embeddable / @Embedded?","u":"/interview/jpa-hibernate/entity-embeddable-inheritance/jpa-embeddable-embedded-model-value-objects/","ch":"JPA & Hibernate","tp":"Embeddable, Inheritance & Secondary Tables","qn":3},{"id":"Q681","t":"@MappedSuperclass vs @Inheritance?","u":"/interview/jpa-hibernate/entity-embeddable-inheritance/inheritance-jpa-difference-mappedsuperclass-shared-fields/","ch":"JPA & Hibernate","tp":"Embeddable, Inheritance & Secondary Tables","qn":4},{"id":"Q682","t":"What are JPA inheritance strategies?","u":"/interview/jpa-hibernate/entity-embeddable-inheritance/jpa-inheritance-map-strategies-single-table-joined-per/","ch":"JPA & Hibernate","tp":"Embeddable, Inheritance & Secondary Tables","qn":5},{"id":"Q624","t":"CrudRepository vs JpaRepository?","u":"/interview/jpa-hibernate/spring-data-repositories/difference-crudrepository-jparepository/","ch":"JPA & Hibernate","tp":"Spring Data Repositories","qn":1},{"id":"Q625","t":"Repository pattern vs DAO?","u":"/interview/jpa-hibernate/spring-data-repositories/repository-pattern-interface-relate-dao-abstracting-data/","ch":"JPA & Hibernate","tp":"Spring Data Repositories","qn":2},{"id":"Q647","t":"CrudRepository vs JpaRepository: the differences?","u":"/interview/jpa-hibernate/spring-data-repositories/spring-difference-crudrepository-pagingandsortingrepository/","ch":"JPA & Hibernate","tp":"Spring Data Repositories","qn":3},{"id":"Q648","t":"Repository pattern vs DAO: abstraction and testability?","u":"/interview/jpa-hibernate/spring-data-repositories/repository-pattern-abstraction-difference-dao-help-swappable/","ch":"JPA & Hibernate","tp":"Spring Data Repositories","qn":4},{"id":"Q626","t":"What are the query options in Spring Data JPA?","u":"/interview/jpa-hibernate/queries/spring-jpa-sql-custom-queries-data-repositories-derived/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":1},{"id":"Q627","t":"What are @QueryHints?","u":"/interview/jpa-hibernate/queries/jpa-hibernate-timeout-transactional-queryhints-hints-matter/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":2},{"id":"Q649","t":"Custom queries: derived, JPQL, native, @Modifying?","u":"/interview/jpa-hibernate/queries/spring-jpa-sql-custom-queries-data-derived-query-methods/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":3},{"id":"Q650","t":"@QueryHints at method vs transaction level?","u":"/interview/jpa-hibernate/queries/jpa-timeout-queryhints-hints-readonly-cacheable-fetchsize/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":4},{"id":"Q683","t":"What are @NamedQuery and @NamedNativeQuery?","u":"/interview/jpa-hibernate/queries/jpa-namedquery-namednativequery-differ-inline-query/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":5},{"id":"Q684","t":"What is the Criteria API / Specification?","u":"/interview/jpa-hibernate/queries/jpa-api-spring-dynamic-optional-criteria-data-specification/","ch":"JPA & Hibernate","tp":"Queries: JPQL, Native, Derived, Criteria","qn":6},{"id":"Q623","t":"What are JPA projections?","u":"/interview/jpa-hibernate/projections/jpa-interface-dynamic-projections-dto-performant/","ch":"JPA & Hibernate","tp":"Projections: Interface, DTO, Dynamic","qn":1},{"id":"Q628","t":"Interface vs DTO vs dynamic projections?","u":"/interview/jpa-hibernate/projections/jpa-dynamic-interface-projections-forms-interface-based/","ch":"JPA & Hibernate","tp":"Projections: Interface, DTO, Dynamic","qn":2},{"id":"Q646","t":"JPA projections performance comparison?","u":"/interview/jpa-hibernate/projections/jpa-interface-dynamic-projections-dto-differ-compare/","ch":"JPA & Hibernate","tp":"Projections: Interface, DTO, Dynamic","qn":3},{"id":"Q651","t":"Interface, class/DTO constructor, dynamic generic projections?","u":"/interview/jpa-hibernate/projections/jpa-dynamic-interface-forms-projections-interface-based-dto/","ch":"JPA & Hibernate","tp":"Projections: Interface, DTO, Dynamic","qn":4},{"id":"Q636","t":"What is JPA auditing?","u":"/interview/jpa-hibernate/entity-lifecycle-auditing/jpa-spring-hibernate-data-auditing-createddate/","ch":"JPA & Hibernate","tp":"Entity Lifecycle & Auditing","qn":1},{"id":"Q637","t":"What are entity lifecycle callbacks?","u":"/interview/jpa-hibernate/entity-lifecycle-auditing/jpa-entity-lifecycle-callbacks-fire/","ch":"JPA & Hibernate","tp":"Entity Lifecycle & Auditing","qn":2},{"id":"Q638","t":"Optimistic vs pessimistic locking?","u":"/interview/jpa-hibernate/locking/jpa-difference-optimistic-pessimistic-locking-choose-banking/","ch":"JPA & Hibernate","tp":"Locking: Optimistic & Pessimistic","qn":1},{"id":"Q639","t":"Optimistic vs pessimistic by conflict frequency?","u":"/interview/jpa-hibernate/locking/inventory-stock-scenario-decide-optimistic-pessimistic/","ch":"JPA & Hibernate","tp":"Locking: Optimistic & Pessimistic","qn":2},{"id":"Q640","t":"How does @Version optimistic locking work internally?","u":"/interview/jpa-hibernate/locking/version-optimistic-locking-internally-handle/","ch":"JPA & Hibernate","tp":"Locking: Optimistic & Pessimistic","qn":3},{"id":"Q641","t":"What is @Lock and LockModeType?","u":"/interview/jpa-hibernate/locking/spring-jpa-lock-annotation-lockmodetype-data-choose/","ch":"JPA & Hibernate","tp":"Locking: Optimistic & Pessimistic","qn":4},{"id":"Q621","t":"How does pagination work in JPA and Spring Data?","u":"/interview/jpa-hibernate/pagination-sorting/pagination-jpa-spring-sort-perform-sorting-entitymanager/","ch":"JPA & Hibernate","tp":"Pagination & Sorting","qn":1},{"id":"Q642","t":"Offset vs keyset/cursor pagination?","u":"/interview/jpa-hibernate/pagination-sorting/pagination-jpa-offset-strategies-exist-keyset-differ-kill/","ch":"JPA & Hibernate","tp":"Pagination & Sorting","qn":2},{"id":"Q644","t":"Pagination and sorting with Pageable and Sort?","u":"/interview/jpa-hibernate/pagination-sorting/pagination-jpa-spring-sort-implement-sorting-setfirstresult/","ch":"JPA & Hibernate","tp":"Pagination & Sorting","qn":3},{"id":"Q620","t":"Why do large IN clauses hurt performance?","u":"/interview/jpa-hibernate/performance/list-long-sql-large-clauses-findbyidin-ids-10k-hurt-huge/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":1},{"id":"Q622","t":"readOnly, dirty checking, and Open Session in View?","u":"/interview/jpa-hibernate/performance/transactional-hibernate-readonly-true-optimize-dirty/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":2},{"id":"Q643","t":"Large IN clauses: chunking and alternatives?","u":"/interview/jpa-hibernate/performance/jpa-handle-large-clauses-filtering-10-000-ids-without/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":3},{"id":"Q645","t":"readOnly, dirty checking, and OSIV?","u":"/interview/jpa-hibernate/performance/transactional-readonly-true-optimize-relate-dirty-checking/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":4},{"id":"Q673","t":"What is Open-Session-In-View and why disable it?","u":"/interview/jpa-hibernate/performance/open-session-in-view-osiv-hide-lazyinitializationexception/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":5},{"id":"Q674","t":"Why does Hibernate UPDATE set every column?","u":"/interview/jpa-hibernate/performance/hibernate-merge-null-update-column-changed-dirty-checking/","ch":"JPA & Hibernate","tp":"Performance: Large IN, Dirty Checking, OSIV","qn":6},{"id":"Q668","t":"session.evict() vs session.clear() vs detach()?","u":"/interview/jpa-hibernate/flush-persist-cache/difference-session-evict-clear-detach-entity-versus-matter/","ch":"JPA & Hibernate","tp":"Flush, Persist & Cache","qn":1},{"id":"Q669","t":"save() vs saveAndFlush()?","u":"/interview/jpa-hibernate/flush-persist-cache/spring-jpa-difference-save-saveandflush-data/","ch":"JPA & Hibernate","tp":"Flush, Persist & Cache","qn":2},{"id":"Q670","t":"What is flush vs commit?","u":"/interview/jpa-hibernate/flush-persist-cache/jpa-hibernate-difference-flush-commit-data-flushed-committed/","ch":"JPA & Hibernate","tp":"Flush, Persist & Cache","qn":3},{"id":"Q671","t":"Why does save() not immediately INSERT?","u":"/interview/jpa-hibernate/flush-persist-cache/calling-save-immediately-run-insert-statement-happens-call/","ch":"JPA & Hibernate","tp":"Flush, Persist & Cache","qn":4},{"id":"Q672","t":"What are Hibernate flush modes?","u":"/interview/jpa-hibernate/flush-persist-cache/hibernate-flush-modes-auto-commit-manual-always-control/","ch":"JPA & Hibernate","tp":"Flush, Persist & Cache","qn":5},{"id":"Q675","t":"CascadeType.ALL vs orphanRemoval=true?","u":"/interview/jpa-hibernate/cascade-soft-delete/jpa-difference-cascadetype-orphanremoval-true-association/","ch":"JPA & Hibernate","tp":"Cascade, Orphan Removal & Soft Delete","qn":1},{"id":"Q677","t":"How do you implement soft delete?","u":"/interview/jpa-hibernate/cascade-soft-delete/delete-hibernate-implement-soft-sqldelete-sqlrestriction/","ch":"JPA & Hibernate","tp":"Cascade, Orphan Removal & Soft Delete","qn":2},{"id":"Q678","t":"What is the batch insert flush+clear pattern?","u":"/interview/jpa-hibernate/batch-processing/pattern-naive-save-loop-bulk-inserts-balloon-memory-flush/","ch":"JPA & Hibernate","tp":"Batch Processing","qn":1},{"id":"Q679","t":"What are JDBC batch insert configuration settings?","u":"/interview/jpa-hibernate/batch-processing/hibernate-jdbc-configuration-configure-efficient-batch/","ch":"JPA & Hibernate","tp":"Batch Processing","qn":2},{"id":"Q661","t":"How do you connect to two databases in Spring Boot?","u":"/interview/jpa-hibernate/multi-database/spring-configure-boot-application-databases-separate/","ch":"JPA & Hibernate","tp":"Multi-Database & Migration","qn":1},{"id":"Q662","t":"MySQL to Oracle migration challenges?","u":"/interview/jpa-hibernate/multi-database/spring-jpa-mysql-jdbc-changes-migrating-boot-application/","ch":"JPA & Hibernate","tp":"Multi-Database & Migration","qn":2},{"id":"Q663","t":"How do you process large datasets in a @Scheduled job?","u":"/interview/jpa-hibernate/scheduling/long-process-large-dataset-inside-scheduled-job-without/","ch":"JPA & Hibernate","tp":"Scheduling: @Scheduled, ShedLock, Retry","qn":1},{"id":"Q664","t":"How do you add retry logic to Spring schedulers?","u":"/interview/jpa-hibernate/scheduling/retry-spring-add-logic-scheduled-job-retryable-recover/","ch":"JPA & Hibernate","tp":"Scheduling: @Scheduled, ShedLock, Retry","qn":2},{"id":"Q665","t":"How do you prevent @Scheduled from running on every instance?","u":"/interview/jpa-hibernate/scheduling/spring-once-run-multiple-instances-boot-app-scheduled-job/","ch":"JPA & Hibernate","tp":"Scheduling: @Scheduled, ShedLock, Retry","qn":3},{"id":"Q666","t":"What are @Scheduled limitations?","u":"/interview/jpa-hibernate/scheduling/spring-dynamic-limitations-scheduled-single-threaded-default/","ch":"JPA & Hibernate","tp":"Scheduling: @Scheduled, ShedLock, Retry","qn":4},{"id":"Q700","t":"Challenges of microservices versus a monolithic application","u":"/interview/microservices/fundamentals/microservices-challenges-monolithic-application-versus/","ch":"Microservices","tp":"Microservices Fundamentals","qn":3},{"id":"Q701","t":"Key components of a microservices architecture","u":"/interview/microservices/fundamentals/microservices-api-gateway-service-load-balancer-logging/","ch":"Microservices","tp":"Microservices Fundamentals","qn":4},{"id":"Q702","t":"Common microservices design patterns","u":"/interview/microservices/fundamentals/microservices-design-api-gateway-service-circuit-breaker/","ch":"Microservices","tp":"Microservices Fundamentals","qn":5},{"id":"Q703","t":"Three microservices design patterns in detail","u":"/interview/microservices/fundamentals/microservices-design-api-gateway-circuit-breaker-patterns/","ch":"Microservices","tp":"Microservices Fundamentals","qn":6},{"id":"Q776","t":"(Scenario) A race condition causes the SAME payment to be processed twice: how do you prevent it end to end","u":"/interview/microservices/fundamentals/race-condition-distributed-atomic-retry-scenario-causes/","ch":"Microservices","tp":"Microservices Fundamentals","qn":8},{"id":"Q801","t":"Explain the full flow of a microservices application end to end","u":"/interview/microservices/fundamentals/microservices-api-gateway-service-logging-full-flow/","ch":"Microservices","tp":"Microservices Fundamentals","qn":7},{"id":"Q831","t":"What is the difference between SOA and microservices","u":"/interview/microservices/fundamentals/microservices-difference-soa-esb-lightweight-protocols/","ch":"Microservices","tp":"Microservices Fundamentals","qn":10},{"id":"Q845","t":"What is a \"distributed monolith,\" and how do you avoid it?","u":"/interview/microservices/fundamentals/distributed-monolith-services-deploy-fail-scale-together-via/","ch":"Microservices","tp":"Microservices Fundamentals","qn":1},{"id":"Q846","t":"What are the common microservices anti-patterns and their fixes?","u":"/interview/microservices/fundamentals/microservices-gateway-retry-circuit-breaker-service-common/","ch":"Microservices","tp":"Microservices Fundamentals","qn":2},{"id":"Q873","t":"What separates a senior microservices answer from a staff/principal-level answer?","u":"/interview/microservices/fundamentals/microservices-design-consistency-separates-senior-staff/","ch":"Microservices","tp":"Microservices Fundamentals","qn":11},{"id":"Q875","t":"Why does shared-database access between microservices weaken their independence, and what are the alternatives?","u":"/interview/microservices/fundamentals/microservices-state-shared-database-access-weaken/","ch":"Microservices","tp":"Microservices Fundamentals","qn":12},{"id":"Q886","t":"Why is rollback harder in distributed systems than in a monolith?","u":"/interview/microservices/fundamentals/rollback-distributed-state-once-binary-system-harder-systems/","ch":"Microservices","tp":"Microservices Fundamentals","qn":9},{"id":"Q705","t":"Decomposing a monolith into microservices","u":"/interview/microservices/decomposition-ddd/microservices-monolithic-food-delivery-application-decompose/","ch":"Microservices","tp":"Decomposition & DDD","qn":6},{"id":"Q706","t":"The Decomposition design pattern","u":"/interview/microservices/decomposition-ddd/design-pattern-decomposition-business-capability-subdomain/","ch":"Microservices","tp":"Decomposition & DDD","qn":5},{"id":"Q707","t":"Bounded Context in microservices (DDD)","u":"/interview/microservices/decomposition-ddd/microservices-bounded-context-ddd-principles-advantages/","ch":"Microservices","tp":"Decomposition & DDD","qn":1},{"id":"Q708","t":"Event Storming and aggregate design at high TPS","u":"/interview/microservices/decomposition-ddd/event-map-consistency-design-storming-decompose-domain/","ch":"Microservices","tp":"Decomposition & DDD","qn":2},{"id":"Q709","t":"DDD tactical building blocks and strategic concepts","u":"/interview/microservices/decomposition-ddd/map-spring-repository-service-ddd-tactical-building-blocks/","ch":"Microservices","tp":"Decomposition & DDD","qn":3},{"id":"Q710","t":"When should two microservices be merged back","u":"/interview/microservices/decomposition-ddd/microservices-consistency-api-delete-merge-merged-back/","ch":"Microservices","tp":"Decomposition & DDD","qn":4},{"id":"Q835","t":"Compare the major architecture styles: Monolith, Modular Monolith, Microservices, Layered, Microkernel, Hexagonal, Space-Based, Peer-to-Peer: and the problem each one solves.","u":"/interview/microservices/decomposition-ddd/microservices-compare-major-architecture-styles-monolith/","ch":"Microservices","tp":"Decomposition & DDD","qn":7},{"id":"Q836","t":"What is the Hexagonal (Ports and Adapters) architecture, how does it isolate domain logic from infrastructure, and why is it a style you layer on top of microservices or a monolith?","u":"/interview/microservices/decomposition-ddd/microservices-hexagonal-ports-adapters-architecture-isolate/","ch":"Microservices","tp":"Decomposition & DDD","qn":8},{"id":"Q868","t":"A critical service has grown to 300,000 lines: would you split it into microservices, and what would you evaluate first?","u":"/interview/microservices/decomposition-ddd/service-microservices-distributed-consistency-scenario/","ch":"Microservices","tp":"Decomposition & DDD","qn":9},{"id":"Q711","t":"How microservices communicate: synchronous versus asynchronous","u":"/interview/microservices/communication/microservices-rest-feign-grpc-kafka-rabbitmq-communicate/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":1},{"id":"Q712","t":"When to choose a REST API over Kafka and vice versa","u":"/interview/microservices/communication/rest-api-kafka-choose-messaging-queues-vice-versa/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":2},{"id":"Q713","t":"Differences between REST, gRPC, and Kafka","u":"/interview/microservices/communication/rest-grpc-kafka-differences/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":3},{"id":"Q714","t":"Design pattern for synchronous communication between microservices","u":"/interview/microservices/communication/design-pattern-microservices-api-gateway-synchronous/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":6},{"id":"Q715","t":"Why the N+1 problem is a general distributed pattern, not just a Hibernate issue","u":"/interview/microservices/communication/hibernate-distributed-pattern-service-once-caching-problem/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":7},{"id":"Q720","t":"Handling request aggregation when multiple services must be queried","u":"/interview/microservices/communication/api-gateway-handle-request-aggregation-multiple-services/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":4},{"id":"Q771","t":"What happens if a service crashes during an update using asynchronous communication","u":"/interview/microservices/communication/service-retry-transactional-outbox-circuit-breaker-saga/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":8},{"id":"Q773","t":"How do you migrate a live workflow from synchronous REST to Kafka without a flag-day cutover","u":"/interview/microservices/communication/rest-kafka-event-path-migrate-live-workflow-synchronous/","ch":"Microservices","tp":"Communication: Sync, Async, gRPC","qn":5},{"id":"Q615","t":"Core Microservices: API Gateway, Saga, idempotency, circuit breaker, distributed tracing","u":"/interview/microservices/api-gateway/microservices-api-gateway-service-circuit-breaker-load/","ch":"Microservices","tp":"API Gateway","qn":13},{"id":"Q716","t":"What an API Gateway is, its functions, and when to use it","u":"/interview/microservices/api-gateway/api-gateway-load-caching-logging-functions-routing/","ch":"Microservices","tp":"API Gateway","qn":3},{"id":"Q717","t":"The API Gateway pattern and its responsibilities","u":"/interview/microservices/api-gateway/api-gateway-pattern-responsibilities/","ch":"Microservices","tp":"API Gateway","qn":4},{"id":"Q719","t":"Dynamically routing requests to different backends at runtime in Spring Cloud Gateway","u":"/interview/microservices/api-gateway/spring-gateway-dynamically-route-requests-different-backends/","ch":"Microservices","tp":"API Gateway","qn":11},{"id":"Q721","t":"How an API Gateway handles caching and what problems arise","u":"/interview/microservices/api-gateway/api-gateway-caching-handle-problems-arise-stale-data/","ch":"Microservices","tp":"API Gateway","qn":5},{"id":"Q722","t":"How an API Gateway tracks request tracing across microservices","u":"/interview/microservices/api-gateway/api-gateway-microservices-track-request-tracing-across-trace/","ch":"Microservices","tp":"API Gateway","qn":6},{"id":"Q723","t":"How an API Gateway enforces zero-trust security principles","u":"/interview/microservices/api-gateway/api-gateway-jwt-dynamic-enforce-zero-trust-security/","ch":"Microservices","tp":"API Gateway","qn":7},{"id":"Q724","t":"How to prevent replay attacks in an API Gateway","u":"/interview/microservices/api-gateway/api-gateway-window-redis-prevent-replay-attacks-nonce-dedupe/","ch":"Microservices","tp":"API Gateway","qn":8},{"id":"Q725","t":"How to implement multi-tenancy in an API Gateway","u":"/interview/microservices/api-gateway/api-gateway-implement-multi-tenancy/","ch":"Microservices","tp":"API Gateway","qn":9},{"id":"Q727","t":"How to implement blue-green deployments in an API Gateway","u":"/interview/microservices/api-gateway/api-gateway-implement-blue-green-deployments-weighted/","ch":"Microservices","tp":"API Gateway","qn":14},{"id":"Q728","t":"Why an API Gateway becomes the CPU bottleneck and single point of failure, and the guiding rule to fix it","u":"/interview/microservices/api-gateway/api-gateway-system-load-jwt-logging-path-cache-become-cpu/","ch":"Microservices","tp":"API Gateway","qn":15},{"id":"Q729","t":"How to offload authentication so JWT verification stops saturating the gateway","u":"/interview/microservices/api-gateway/jwt-gateway-api-cache-offload-authentication-verification/","ch":"Microservices","tp":"API Gateway","qn":16},{"id":"Q730","t":"How to cut per-request overhead at the gateway","u":"/interview/microservices/api-gateway/gateway-http-tls-redis-logging-path-cut-per-request-overhead/","ch":"Microservices","tp":"API Gateway","qn":10},{"id":"Q790","t":"How do you propagate security tokens from an API Gateway to downstream services","u":"/interview/microservices/api-gateway/api-gateway-propagate-security-tokens-downstream-services/","ch":"Microservices","tp":"API Gateway","qn":12},{"id":"Q840","t":"What is the difference between a Load Balancer (L4 vs L7), a Reverse Proxy, and an API Gateway, and why are they complementary rather than alternatives?","u":"/interview/microservices/api-gateway/load-balancer-proxy-api-gateway-difference-l4-l7-reverse/","ch":"Microservices","tp":"API Gateway","qn":1},{"id":"Q841","t":"What is the difference between a forward proxy and a reverse proxy, and which one is Nginx or an API gateway acting as?","u":"/interview/microservices/api-gateway/proxy-caching-tls-load-api-gateway-difference-forward/","ch":"Microservices","tp":"API Gateway","qn":2},{"id":"Q731","t":"The difference between a Service Registry and Service Discovery","u":"/interview/microservices/service-discovery/service-difference-registry-discovery/","ch":"Microservices","tp":"Service Discovery","qn":1},{"id":"Q732","t":"Explain service discovery in depth","u":"/interview/microservices/service-discovery/service-load-kubernetes-ttl-proxy-discovery-depth-registry/","ch":"Microservices","tp":"Service Discovery","qn":2},{"id":"Q890","t":"How does a service registry like Netflix Eureka work, and how does Kubernetes-native discovery differ?","u":"/interview/microservices/service-discovery/service-eureka-registry-netflix-instance-registers-itself/","ch":"Microservices","tp":"Service Discovery","qn":3},{"id":"Q616","t":"Microservices advanced: outbox pattern, sharding, scaling to 1M users, resilience, retry amplification","u":"/interview/microservices/resilience/microservices-jwt-propagation-sharding-consistency-outbox/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":1},{"id":"Q734","t":"If two instances of a service both crash, how do you make the service fault tolerant","u":"/interview/microservices/resilience/service-kubernetes-instances-crash-fault-tolerant-multi-node/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":2},{"id":"Q737","t":"How do you achieve fault isolation","u":"/interview/microservices/resilience/isolation-exception-circuit-breaker-bulkhead-achieve-fault/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":7},{"id":"Q786","t":"What is the Circuit Breaker pattern, how does Resilience4j implement it, how does it differ from Retry, and what is the default aspect-order gotcha","u":"/interview/microservices/resilience/circuit-breaker-pattern-resilience4j-retry-implement-differ/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":4},{"id":"Q817","t":"Why abstract each notification provider behind a NotificationProvider interface, and how do you classify provider errors so retries don't become a retry storm","u":"/interview/microservices/resilience/abstract-interface-retry-timeout-notification-provider-fcm/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":6},{"id":"Q863","t":"Why can a fallback make a system LESS reliable, and why must fallback capacity be tested independently?","u":"/interview/microservices/resilience/system-load-redis-postgresql-path-fallback-less-reliable/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":5},{"id":"Q878","t":"Why does exponential backoff with jitter NOT rescue a bad retry policy, and why treat retries as a budget?","u":"/interview/microservices/resilience/retry-exponential-backoff-jitter-rescue-bad-policy-controls/","ch":"Microservices","tp":"Resilience: Circuit Breaker, Retry, Bulkhead","qn":3},{"id":"Q754","t":"What is two-phase commit (2PC/XA) and why Sagas are preferred","u":"/interview/microservices/saga-distributed-tx/saga-consistency-two-phase-commit-2pc-xa-prepare-voting/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":6},{"id":"Q757","t":"The dual-write problem and the Transactional Outbox pattern","u":"/interview/microservices/saga-distributed-tx/kafka-transactional-outbox-pattern-event-log-dual-write/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":2},{"id":"Q762","t":"Managing consistency with the Saga pattern when payment fails","u":"/interview/microservices/saga-distributed-tx/search-system-consistency-saga-pattern-transactional-order/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":1},{"id":"Q765","t":"How to implement rollback in a Saga using orchestration","u":"/interview/microservices/saga-distributed-tx/rollback-saga-pattern-implement-orchestration/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":7},{"id":"Q832","t":"What is the Outbox pattern, why does writing to the DB and publishing to Kafka in one method risk inconsistency, and how do the outbox table + CDC (Debezium) guarantee delivery?","u":"/interview/microservices/saga-distributed-tx/outbox-pattern-kafka-writing-db-publishing-risk/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":3},{"id":"Q833","t":"What happens if the outbox relay crashes BEFORE marking the row published, why must consumers be idempotent, and how do you stop the outbox table growing unboundedly?","u":"/interview/microservices/saga-distributed-tx/outbox-event-kafka-design-once-happens-relay-publisher-sends/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":4},{"id":"Q834","t":"Why NOT solve the dual-write problem with a distributed transaction across PostgreSQL and Kafka, and what is the difference between atomicity and recoverability?","u":"/interview/microservices/saga-distributed-tx/distributed-postgresql-kafka-consistency-solve-dual-write/","ch":"Microservices","tp":"Saga & Distributed Transactions","qn":5},{"id":"Q758","t":"Domain event versus integration event","u":"/interview/microservices/event-driven/event-spring-kafka-avro-producer-difference-domain-internal/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":4},{"id":"Q759","t":"Event Notification versus Event-Carried State Transfer","u":"/interview/microservices/event-driven/event-state-difference-notification-minimal-carrying-id-name/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":7},{"id":"Q763","t":"Choreography versus orchestration","u":"/interview/microservices/event-driven/difference-choreography-orchestration-versus/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":5},{"id":"Q764","t":"The pinball architecture / chained-choreography anti-pattern","u":"/interview/microservices/event-driven/state-saga-spring-pinball-architecture-chained-choreography/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":6},{"id":"Q766","t":"What is Event Sourcing, its advantages, disadvantages, and example?","u":"/interview/microservices/event-driven/event-sourcing-state-store-events-replay-reconstruct/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":8},{"id":"Q767","t":"Explain CQRS and when to use it","u":"/interview/microservices/event-driven/cqrs-command-consistency-query-responsibility-segregation/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":1},{"id":"Q768","t":"How do you implement CQRS in Spring Boot without a framework like Axon","u":"/interview/microservices/event-driven/cqrs-spring-service-immutable-state-command-load-repository/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":2},{"id":"Q769","t":"What are the CQRS trade-offs and when should you NOT use CQRS","u":"/interview/microservices/event-driven/cqrs-consistency-trade-offs-benefits-independent-scaling/","ch":"Microservices","tp":"Event-Driven Architecture & CQRS","qn":3},{"id":"Q822","t":"Write Redis-based distributed lock logic for a scheduled task","u":"/interview/microservices/caching/distributed-ttl-redis-based-lock-logic-scheduled-task/","ch":"Microservices","tp":"Caching","qn":6},{"id":"Q851","t":"When would you choose Redis Sentinel versus Redis Cluster?","u":"/interview/microservices/caching/redis-choose-sentinel-versus-cluster-lightweight-data/","ch":"Microservices","tp":"Caching","qn":1},{"id":"Q852","t":"Why is Redis so fast even though command execution is single-threaded?","u":"/interview/microservices/caching/redis-command-path-fast-though-execution-single-threaded/","ch":"Microservices","tp":"Caching","qn":2},{"id":"Q860","t":"What is the difference between a CDN and Redis, and what is a semantic cache for LLM apps?","u":"/interview/microservices/caching/redis-static-dynamic-cache-difference-cdn-brings-content/","ch":"Microservices","tp":"Caching","qn":3},{"id":"Q861","t":"What is cache penetration, and how do you defend against it?","u":"/interview/microservices/caching/cache-caching-ttl-penetration-repeated-requests-keys-exist/","ch":"Microservices","tp":"Caching","qn":4},{"id":"Q862","t":"What cache eviction policies exist, how do you choose, and why does a low hit rate make a cache a net negative?","u":"/interview/microservices/caching/cache-eviction-lru-lfu-ttl-policies-exist-fifo-time-based/","ch":"Microservices","tp":"Caching","qn":5},{"id":"Q738","t":"What is scaling, and the difference between vertical and horizontal scaling","u":"/interview/microservices/scaling/scaling-difference-vertical-scale-horizontal/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":19},{"id":"Q739","t":"How do you scale a microservices application","u":"/interview/microservices/scaling/microservices-load-api-gateway-circuit-breaker-scale/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":12},{"id":"Q742","t":"The difference between Kubernetes HPA, VPA, and Cluster Autoscaler, and when to use KEDA","u":"/interview/microservices/scaling/kubernetes-load-queue-difference-hpa-fewer-replicas-vpa/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":1},{"id":"Q743","t":"If you have N instances, how do you distribute requests equally","u":"/interview/microservices/scaling/load-balancer-kubernetes-service-instances-distribute/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":2},{"id":"Q744","t":"Explain the Load Balancer and the Rate Limiter","u":"/interview/microservices/scaling/load-balancer-rate-limiter-algorithms-tools/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":3},{"id":"Q745","t":"How do you implement per-user rate limiting in a distributed environment","u":"/interview/microservices/scaling/distributed-redis-gateway-implement-per-user-rate-limiting/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":5},{"id":"Q747","t":"How is a load balancer implemented in Azure","u":"/interview/microservices/scaling/load-balancer-gateway-service-implemented-azure-l4/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":4},{"id":"Q779","t":"How do you implement concurrency control for the \"last item / last ticket\" problem as a progression","u":"/interview/microservices/scaling/synchronized-concurrenthashmap-jvm-redis-distributed-ttl/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":17},{"id":"Q782","t":"How do you handle a hot row that many requests update at once","u":"/interview/microservices/scaling/once-sharding-redis-handle-hot-row-requests-update-shared/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":8},{"id":"Q799","t":"How would you scale a key-value store toward ~1M requests/sec","u":"/interview/microservices/scaling/replication-scenario-scale-key-value-store-toward-1m/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":13},{"id":"Q800","t":"How do you deploy microservices to containers (Dockerfile, docker-compose, Kubernetes, scaling)","u":"/interview/microservices/scaling/microservices-kubernetes-deploy-containers-dockerfile/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":15},{"id":"Q813","t":"Why is multi-level rate limiting more effective than a single limiter, and why a token bucket per downstream provider","u":"/interview/microservices/scaling/multi-level-rate-limiting-per-user-per-ip-per-provider/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":20},{"id":"Q814","t":"How would you design a social feed / timeline at scale","u":"/interview/microservices/scaling/design-post-list-merge-social-feed-timeline-scale-instagram/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":9},{"id":"Q823","t":"Implement a simple round-robin load balancer in Java using AtomicInteger","u":"/interview/microservices/scaling/load-balancer-implement-simple-round-robin-atomicinteger/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":10},{"id":"Q844","t":"How do you stop the load balancer itself from being a single point of failure?","u":"/interview/microservices/scaling/load-balancer-stop-itself-single-point-failure-redundant/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":18},{"id":"Q848","t":"How do you estimate how many instances or pods are needed for a target throughput?","u":"/interview/microservices/scaling/estimate-instances-pods-needed-target-throughput-1000-tps/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":7},{"id":"Q849","t":"How do you do a back-of-envelope capacity estimate in a system-design interview?","u":"/interview/microservices/scaling/cache-back-of-envelope-capacity-estimate-system-design-qps/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":6},{"id":"Q853","t":"How do you design a delayed job scheduler at scale?","u":"/interview/microservices/scaling/design-redis-delayed-job-scheduler-scale-poll-db-second/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":11},{"id":"Q865","t":"Why can Kubernetes autoscaling make an incident WORSE when the real bottleneck is downstream?","u":"/interview/microservices/scaling/kubernetes-postgresql-redis-api-autoscaling-incident-worse/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":16},{"id":"Q869","t":"PostgreSQL is approaching its write capacity: what would you do before sharding?","u":"/interview/microservices/scaling/postgresql-sharding-wal-index-design-scenario-approaching/","ch":"Microservices","tp":"Scaling, Load Balancing & Performance","qn":14},{"id":"Q748","t":"How do you trace a request across multiple microservices","u":"/interview/microservices/observability/microservices-distributed-logging-trace-request-across/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":1},{"id":"Q749","t":"Why technical trace IDs alone are not enough: durable business identifiers","u":"/interview/microservices/observability/technical-trace-ids-alone-insufficient-long-running-async/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":8},{"id":"Q750","t":"Why all services can be green while the product is broken: business metrics and synthetic journeys","u":"/interview/microservices/observability/service-look-healthy-green-health-checks-normal-cpu-low/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":3},{"id":"Q784","t":"How do you safely evolve a contract used by many services","u":"/interview/microservices/observability/window-optional-kafka-event-jpa-safely-evolve-contract/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":2},{"id":"Q785","t":"What is contract-first (spec-first) API development, and how does it differ from code-first","u":"/interview/microservices/observability/api-controller-catch-contract-first-spec-first-development/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":7},{"id":"Q843","t":"Why does a load balancer break things when a server stores local state, why doesn't round robin guarantee equal work, and why must health checks verify the instance can actually serve?","u":"/interview/microservices/observability/load-balancer-state-redis-putting-front-app-instances-break/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":5},{"id":"Q867","t":"How do you test a microservice's failure behavior as a failure contract?","u":"/interview/microservices/observability/cache-broker-test-microservice-failure-behavior-as-contract/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":9},{"id":"Q880","t":"Every dashboard looks healthy but customers report failures: how do you investigate?","u":"/interview/microservices/observability/service-path-system-http-scenario-healthy-according/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":4},{"id":"Q887","t":"Why can't you simply deploy the old binary after writing data in a new format, and what is expand-and-contract?","u":"/interview/microservices/observability/binary-rollback-scenario-deploy-version-writes-data-format/","ch":"Microservices","tp":"Observability: Logging, Tracing, Metrics","qn":6},{"id":"Q787","t":"How do you secure a microservices architecture","u":"/interview/microservices/security/microservices-api-gateway-tls-service-secure-architecture/","ch":"Microservices","tp":"Security in Microservices","qn":1},{"id":"Q788","t":"What security features have you implemented, and explain a JWT + OAuth2 implementation end-to-end","u":"/interview/microservices/security/jwt-security-features-implemented-oauth2-implementation/","ch":"Microservices","tp":"Security in Microservices","qn":3},{"id":"Q789","t":"What is JWT, what information does a JWT token contain, and can you store sensitive information in the payload","u":"/interview/microservices/security/jwt-information-token-contain-header-payload-signature-store/","ch":"Microservices","tp":"Security in Microservices","qn":4},{"id":"Q791","t":"How do you secure sensitive endpoints from brute-force attacks","u":"/interview/microservices/security/secure-sensitive-endpoints-brute-force-attacks-rate-limiting/","ch":"Microservices","tp":"Security in Microservices","qn":2},{"id":"Q704","t":"What makes a microservice truly independently deployable","u":"/interview/microservices/deployment/microservices-distributed-microservice-truly-independently/","ch":"Microservices","tp":"Deployment & Containers","qn":1},{"id":"Q726","t":"What a shadow deployment is and how to implement it","u":"/interview/microservices/deployment/shadow-deployment-implement/","ch":"Microservices","tp":"Deployment & Containers","qn":2},{"id":"Q753","t":"How data consistency is handled in distributed microservices","u":"/interview/microservices/data-management/consistency-distributed-microservices-saga-outbox-data/","ch":"Microservices","tp":"Data Management & Consistency","qn":6},{"id":"Q774","t":"What is idempotency, which HTTP methods should be idempotent, and why does it matter","u":"/interview/microservices/data-management/http-idempotency-methods-idempotent-matter/","ch":"Microservices","tp":"Data Management & Consistency","qn":8},{"id":"Q775","t":"What are the different ways to implement idempotency and when do you use each","u":"/interview/microservices/data-management/retry-state-distributed-different-implement-idempotency-keys/","ch":"Microservices","tp":"Data Management & Consistency","qn":7},{"id":"Q792","t":"How do microservices maintain sessions when jumping between services","u":"/interview/microservices/data-management/microservices-jwt-service-maintain-sessions-jumping-services/","ch":"Microservices","tp":"Data Management & Consistency","qn":9},{"id":"Q795","t":"What is database sharding, what are its types, and its advantages and disadvantages","u":"/interview/microservices/data-management/sharding-database-types-horizontal-vertical-geographic-hash/","ch":"Microservices","tp":"Data Management & Consistency","qn":1},{"id":"Q796","t":"How do you choose a shard key, and what goes wrong with a bad one","u":"/interview/microservices/data-management/system-choose-shard-key-goes-wrong-bad-uneven-create-hot/","ch":"Microservices","tp":"Data Management & Consistency","qn":2},{"id":"Q797","t":"How does sharding change queries and transactions","u":"/interview/microservices/data-management/sharding-acid-try-change-queries-transactions-single-shard/","ch":"Microservices","tp":"Data Management & Consistency","qn":3},{"id":"Q798","t":"Why does naive hash(key) % N sharding make rebalancing painful, and how does consistent hashing help","u":"/interview/microservices/data-management/sharding-naive-hash-key-rebalancing-painful-changing-remaps/","ch":"Microservices","tp":"Data Management & Consistency","qn":4},{"id":"Q818","t":"How would you migrate master data from a legacy system to a custom cloud-based solution","u":"/interview/microservices/data-management/system-api-design-migrate-master-data-legacy-custom/","ch":"Microservices","tp":"Data Management & Consistency","qn":5},{"id":"Q871","t":"When would you deliberately accept data loss, and why must you define the loss window explicitly?","u":"/interview/microservices/data-management/window-byte-deliberately-accept-data-loss-reconstructable/","ch":"Microservices","tp":"Data Management & Consistency","qn":10},{"id":"Q847","t":"How do you enforce architectural guardrails as automated tests rather than wiki rules?","u":"/interview/microservices/testing/path-broker-outbox-enforce-architectural-guardrails-as/","ch":"Microservices","tp":"Testing Microservices","qn":1},{"id":"Q718","t":"Handling a request when the target service is down","u":"/interview/microservices/scenarios-design/gateway-service-circuit-breaker-cache-retry-request-reaches/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":59},{"id":"Q733","t":"If one microservice is down, how do you handle it gracefully","u":"/interview/microservices/scenarios-design/circuit-breaker-retry-timeout-bulkhead-microservice-down/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":25},{"id":"Q735","t":"How do you keep the application available during a huge surge in traffic","u":"/interview/microservices/scenarios-design/caching-keep-application-available-huge-surge-traffic/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":66},{"id":"Q736","t":"How do you know a service is up and running","u":"/interview/microservices/scenarios-design/service-kubernetes-gateway-running-health-endpoints/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":67},{"id":"Q740","t":"How do you evolve an architecture from 1 user to 1M+ users","u":"/interview/microservices/scenarios-design/component-load-balancer-cache-queue-microservices-sharding/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":20},{"id":"Q741","t":"Why should you first clarify what \"1 million users\" means","u":"/interview/microservices/scenarios-design/consistency-clarify-million-users-means-registered/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":65},{"id":"Q746","t":"Compare the rate-limiting algorithms","u":"/interview/microservices/scenarios-design/window-log-redis-compare-rate-limiting-algorithms/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":6},{"id":"Q751","t":"How to design and choose databases for microservices","u":"/interview/microservices/scenarios-design/design-microservices-sql-nosql-redis-consistency-choose/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":30},{"id":"Q752","t":"Shared database versus database-per-service","u":"/interview/microservices/scenarios-design/difference-single-shared-database-database-per-service/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":31},{"id":"Q755","t":"The Two Generals Problem and how it maps to distributed systems","u":"/interview/microservices/scenarios-design/channel-map-distributed-atomic-design-consistency-generals/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":57},{"id":"Q756","t":"Why wall-clock timestamps fail for ordering, and how logical clocks fix it","u":"/interview/microservices/scenarios-design/distributed-vector-rely-wall-clock-timestamps-order-events/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":62},{"id":"Q760","t":"Should every microservice publish an event for every database change","u":"/interview/microservices/scenarios-design/event-stream-producer-microservice-publish-database-change/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":41},{"id":"Q761","t":"How one instance sees a change another instance made","u":"/interview/microservices/scenarios-design/jvm-distributed-cache-redis-kafka-event-state-instance-app1/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":42},{"id":"Q770","t":"Why did the industry move beyond synchronous REST for long-running workflows","u":"/interview/microservices/scenarios-design/rest-thread-http-industry-move-beyond-synchronous/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":49},{"id":"Q772","t":"Explain the execution flow of a parent task that spawns multiple child tasks and combines their results","u":"/interview/microservices/scenarios-design/execution-flow-parent-task-spawns-multiple-child-tasks/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":7},{"id":"Q777","t":"(Scenario) What happens if the application crashes AFTER a payment succeeds but BEFORE the response reaches the client","u":"/interview/microservices/scenarios-design/double-design-scenario-happens-application-crashes-payment/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":39},{"id":"Q778","t":"(Scenario) A product manager wants the UI to show \"payment confirmed\" BEFORE the transaction is durably committed","u":"/interview/microservices/scenarios-design/state-scenario-product-manager-wants-ui-payment-confirmed/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":40},{"id":"Q780","t":"How do you make a message/event consumer safe against at-least-once duplicate delivery","u":"/interview/microservices/scenarios-design/event-consumer-state-message-safe-against-at-least-once/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":28},{"id":"Q781","t":"Why does a naive `if (!alreadyProcessed(id)) { process(); markProcessed(id); }` dedup still double-process","u":"/interview/microservices/scenarios-design/atomic-event-consumer-record-naive-alreadyprocessed-id/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":29},{"id":"Q783","t":"What are the strategies for API versioning, what are the tradeoffs, and how do you change a widely used API without breaking existing consumers","u":"/interview/microservices/scenarios-design/api-versioning-strategies-tradeoffs-change-widely-without/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":50},{"id":"Q793","t":"What is a service mesh, what features does it provide, and when should you use it","u":"/interview/microservices/scenarios-design/service-mesh-data-plane-sidecars-control-features-provide/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":60},{"id":"Q803","t":"If the application suddenly becomes very slow, how do you debug it systematically","u":"/interview/microservices/scenarios-design/api-thread-jvm-application-suddenly-becomes-slow-debug/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":46},{"id":"Q804","t":"How would you debug sustained high CPU in a Java service, and what are the common causes","u":"/interview/microservices/scenarios-design/service-thread-regex-backtracking-gc-debug-sustained-high/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":47},{"id":"Q805","t":"Thousands of threads are suddenly created and CPU spikes: why is \"add more servers\" wrong, and how do you investigate","u":"/interview/microservices/scenarios-design/thread-executor-configuration-scenario-thousands-threads/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":48},{"id":"Q806","t":"How would you design a system like Uber","u":"/interview/microservices/scenarios-design/design-system-matching-uber-actors-services-db-real-time/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":12},{"id":"Q807","t":"How would you design a URL shortener","u":"/interview/microservices/scenarios-design/design-caching-url-shortener-short-code-generation-counter/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":15},{"id":"Q808","t":"How would you design an end-to-end payment / order system","u":"/interview/microservices/scenarios-design/design-system-kafka-saga-end-to-end-payment-order/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":3},{"id":"Q809","t":"A payment flows across several external banking partners and ONE partner goes down mid-transaction: how do you guarantee no money is lost and no double-debit","u":"/interview/microservices/scenarios-design/retry-queue-consumer-bulkhead-circuit-breaker-saga/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":4},{"id":"Q810","t":"How would you model a double-entry ledger in a relational database with DB-level correctness","u":"/interview/microservices/scenarios-design/event-immutable-model-double-entry-ledger-relational/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":5},{"id":"Q811","t":"How would you design a tamper-evident audit log","u":"/interview/microservices/scenarios-design/design-log-record-checkpoint-index-tamper-evident-audit/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":14},{"id":"Q812","t":"How would you design an OTP service that survives a login spike","u":"/interview/microservices/scenarios-design/design-service-queue-ttl-otp-survives-login-spike-50k-rps/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":17},{"id":"Q815","t":"How would you design a system to send 1 million (or 100M) push notifications without overwhelming your servers","u":"/interview/microservices/scenarios-design/design-system-queue-send-million-100m-push-notifications/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":13},{"id":"Q816","t":"In a large notification system, how do you stop a bulk marketing blast from starving time-critical messages","u":"/interview/microservices/scenarios-design/system-consumer-large-notification-stop-bulk-marketing-blast/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":18},{"id":"Q819","t":"Design a microservice to handle uploading large files (100MB+) under high concurrency","u":"/interview/microservices/scenarios-design/design-streaming-queue-microservice-handle-uploading-large/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":43},{"id":"Q820","t":"Why should uploaded files not be streamed through the application server, and how do presigned URLs, multipart upload, and MIME validation work","u":"/interview/microservices/scenarios-design/s3-api-file-uploaded-files-stored-streamed-application/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":44},{"id":"Q821","t":"Why does a Spring Boot MultipartFile upload fail past a few MB, what are the default limits, how do you raise them, and why is raising the limit the wrong fix for truly large uploads","u":"/interview/microservices/scenarios-design/spring-once-file-stream-boot-multipartfile-upload-fail/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":45},{"id":"Q824","t":"How would you design a real-time chat / messaging system like WhatsApp or Slack","u":"/interview/microservices/scenarios-design/design-system-queue-websocket-redis-socket-real-time-chat/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":9},{"id":"Q825","t":"How would you design a search service with an inverted index instead of LIKE queries","u":"/interview/microservices/scenarios-design/design-search-service-elasticsearch-index-pagination/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":23},{"id":"Q826","t":"How would you design an autocomplete / type-ahead suggestion service","u":"/interview/microservices/scenarios-design/design-service-trie-index-caching-autocomplete-type-ahead/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":24},{"id":"Q827","t":"How would you design a real-time collaborative document editor like Google Docs (OT vs CRDT)","u":"/interview/microservices/scenarios-design/design-merge-log-real-time-collaborative-document-editor/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":10},{"id":"Q828","t":"How would you design a recommendation system","u":"/interview/microservices/scenarios-design/design-system-event-recommendation-simple-trending-popular/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":11},{"id":"Q829","t":"How would you design a video streaming platform like YouTube or Netflix","u":"/interview/microservices/scenarios-design/design-streaming-queue-video-platform-youtube-netflix/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":16},{"id":"Q830","t":"Why model an order's status as an explicit state machine rather than a free-text status field","u":"/interview/microservices/scenarios-design/state-saga-pattern-model-order-status-as-explicit-machine/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":64},{"id":"Q837","t":"What is the Microkernel (Plugin) architecture, and where does it fit?","u":"/interview/microservices/scenarios-design/microkernel-plugin-architecture-stable-core-plugins-fit-ides/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":55},{"id":"Q838","t":"What is Space-Based architecture, and when is it justified?","u":"/interview/microservices/scenarios-design/load-space-based-architecture-in-memory-data-grid-remove-db/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":53},{"id":"Q839","t":"What is Peer-to-Peer architecture, and when is it the right fit?","u":"/interview/microservices/scenarios-design/file-peer-to-peer-architecture-right-fit-decentralization-as/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":51},{"id":"Q842","t":"What load-balancing algorithms exist, and when do you use each?","u":"/interview/microservices/scenarios-design/load-balancing-algorithms-exist-round-robin-least/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":58},{"id":"Q850","t":"How do you approach a broad \"Design X\" question in an interview?","u":"/interview/microservices/scenarios-design/design-redis-kafka-sharding-approach-broad-netflix-decompose/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":19},{"id":"Q855","t":"How does a system recover when a worker node fails?","u":"/interview/microservices/scenarios-design/system-retry-transient-pattern-checkpoint-recover-worker/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":1},{"id":"Q856","t":"What are the main caching patterns and when do you use each?","u":"/interview/microservices/scenarios-design/caching-cache-distributed-redis-once-main-patterns/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":2},{"id":"Q857","t":"What is refresh-ahead caching, and how does probabilistic early recompute help?","u":"/interview/microservices/scenarios-design/caching-ttl-load-refresh-ahead-proactively-recompute-value/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":52},{"id":"Q858","t":"Why is ConcurrentHashMap.computeIfAbsent a hot-path trap under high TPS?","u":"/interview/microservices/scenarios-design/concurrenthashmap-lambda-thread-computeifabsent-key/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":63},{"id":"Q859","t":"How does multi-level caching absorb a stampede burst?","u":"/interview/microservices/scenarios-design/caching-redis-consistency-ttl-multi-level-l1-local-in-memory/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":27},{"id":"Q864","t":"Why can an unbounded queue be more dangerous than rejecting requests?","u":"/interview/microservices/scenarios-design/queue-load-system-unbounded-dangerous-rejecting-requests/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":61},{"id":"Q866","t":"Why is cascading failure the most dangerous distributed pattern, and what architectural properties contain it?","u":"/interview/microservices/scenarios-design/distributed-pattern-retry-load-cascading-failure-dangerous/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":26},{"id":"Q872","t":"Your architecture worked well at 10× the original traffic: why might you still replace it?","u":"/interview/microservices/scenarios-design/component-scenario-architecture-worked-10-original-traffic/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":22},{"id":"Q874","t":"A dependency has 99.9% availability but your API needs 99.99%: is that possible, and how?","u":"/interview/microservices/scenarios-design/api-caching-replication-scenario-dependency-99-availability/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":21},{"id":"Q876","t":"Why can retries across multiple layers MULTIPLY rather than add, and why is this invisible until degradation?","u":"/interview/microservices/scenarios-design/retry-retries-across-multiple-layers-multiply-rather-add/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":32},{"id":"Q877","t":"Why is the word \"transient\" one of the most expensive words in backend engineering?","u":"/interview/microservices/scenarios-design/transient-timeout-system-exactly-condition-word-expensive/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":33},{"id":"Q879","t":"Why can removing retries from a payment service raise the error rate yet improve reliability?","u":"/interview/microservices/scenarios-design/service-system-rest-retry-scenario-principal-engineer/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":34},{"id":"Q881","t":"How do you migrate hundreds of millions of rows without taking the service offline?","u":"/interview/microservices/scenarios-design/service-functional-scenario-migrate-hundreds-millions-rows/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":35},{"id":"Q882","t":"How would you introduce a breaking event-schema change used by 15 consumers?","u":"/interview/microservices/scenarios-design/strategy-event-consumer-producer-once-scenario-introduce/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":36},{"id":"Q883","t":"What is the noisy-neighbor problem, and what are the isolation strategies?","u":"/interview/microservices/scenarios-design/thread-queue-service-isolation-noisy-neighbor-problem-large/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":56},{"id":"Q884","t":"How do you stop one large customer hurting everyone when infrastructure is shared?","u":"/interview/microservices/scenarios-design/system-api-kafka-partition-prevent-large-customer-hurting/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":8},{"id":"Q885","t":"What is the difference between availability and reliability, and why must SLIs measure correctness?","u":"/interview/microservices/scenarios-design/system-service-http-state-difference-availability-provide/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":54},{"id":"Q888","t":"How would you replace a legacy service without a big-bang migration?","u":"/interview/microservices/scenarios-design/service-pattern-design-state-path-replace-legacy-without/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":37},{"id":"Q889","t":"What evidence would make you change your architecture?","u":"/interview/microservices/scenarios-design/system-redis-microservices-principal-level-designed-evidence/","ch":"Microservices","tp":"Scenarios & Design Questions","qn":38},{"id":"Q794","t":"Explain Master-Slave architecture, its use cases, and what happens if the master or a slave dies","u":"/interview/microservices/advanced-patterns/master-slave-architecture-cases-happens-master-slave-dies/","ch":"Microservices","tp":"Advanced Patterns & Architecture","qn":1},{"id":"Q802","t":"Explain the Facade design pattern with use cases","u":"/interview/microservices/advanced-patterns/facade-design-pattern-interface-simplified-complex-subsystem/","ch":"Microservices","tp":"Advanced Patterns & Architecture","qn":2},{"id":"Q854","t":"Why separate the scheduler from the workers, and how do you handle failures?","u":"/interview/microservices/advanced-patterns/queue-timeout-final-state-separate-scheduler-decides/","ch":"Microservices","tp":"Advanced Patterns & Architecture","qn":5},{"id":"Q870","t":"A new architecture cuts average latency 40% but doubles operational complexity: would you approve it?","u":"/interview/microservices/advanced-patterns/scenario-architecture-cuts-average-latency-40-doubles/","ch":"Microservices","tp":"Advanced Patterns & Architecture","qn":3},{"id":"Q891","t":"What is the Raft consensus algorithm, and where is it used in practice?","u":"/interview/microservices/advanced-patterns/log-replication-kubernetes-service-kafka-raft-consensus/","ch":"Microservices","tp":"Advanced Patterns & Architecture","qn":4},{"id":"Q901","t":"The main use cases of Apache Kafka","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-streaming-log-microservices-replication-main-cases/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":10},{"id":"Q903","t":"Topic, partition, and offset in Kafka","u":"/interview/kafka-messaging/kafka-fundamentals/topic-partition-offset-kafka-difference/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":11},{"id":"Q904","t":"Why Kafka uses partitions","u":"/interview/kafka-messaging/kafka-fundamentals/partition-kafka-partitions-parallelism-scalability-ordering/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":12},{"id":"Q908","t":"Ensuring only one of three service instances consumes a Kafka message","u":"/interview/kafka-messaging/kafka-fundamentals/service-kafka-consumer-instances-run-another-sends-message/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":13},{"id":"Q937","t":"What are the trade-offs between the Kafka compression codecs?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-producer-broker-trade-offs-compression-codecs-type/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":8},{"id":"Q939","t":"How many partitions should a topic have, what are the real constraints, and why can you never decrease partition count?","u":"/interview/kafka-messaging/kafka-fundamentals/topic-partition-partitions-real-constraints-never-decrease/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":9},{"id":"Q941","t":"When would you deliberately choose NOT to use Kafka?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-deliberately-choose/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":1},{"id":"Q942","t":"What is tiered storage (KIP-405), and what problem does it solve?","u":"/interview/kafka-messaging/kafka-fundamentals/tiered-storage-kip-405-problem-solve/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":17},{"id":"Q943","t":"How do you secure a Kafka cluster in a regulated environment?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-tls-rest-secure-cluster-regulated-environment-mtls/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":14},{"id":"Q944","t":"What happens if a Kafka broker runs out of disk space?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-broker-happens-runs-disk-space/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":15},{"id":"Q952","t":"Increasing a topic's partition count from 6 to 12: what silently breaks (key-to-partition mapping)?","u":"/interview/kafka-messaging/kafka-fundamentals/topic-partition-increasing-count-12-silently-breaks/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":16},{"id":"Q963","t":"(Scenario) Multiple teams share one Kafka cluster and one team spikes traffic: how do you prevent the noisy-neighbor problem?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-isolation-topic-broker-consumer-scenario-multiple/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":7},{"id":"Q965","t":"Why can Kafka sustain very high throughput on commodity disks?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-cache-sustain-high-throughput-commodity-disks/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":18},{"id":"Q984","t":"What is Solace PubSub+, and how does its topic routing differ from Kafka's flat topics?","u":"/interview/kafka-messaging/kafka-fundamentals/broker-topic-kafka-stream-solace-pubsub-message-supports/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":2},{"id":"Q985","t":"Give an example of Solace's hierarchical routing: publishing to `ps/news/{type}/{country}/{city}` and subscribing with patterns like `ps/news/*/BR/>` or `ps/news/SPORT/>`: and why is this hard in Kafka?","u":"/interview/kafka-messaging/kafka-fundamentals/system-kafka-stream-solace-hierarchical-routing-news/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":3},{"id":"Q986","t":"What is the topic proliferation problem in Kafka, and how does Solace avoid it?","u":"/interview/kafka-messaging/kafka-fundamentals/topic-kafka-partition-pattern-proliferation-problem-as/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":4},{"id":"Q987","t":"When should you choose Kafka over Solace, and when should you choose Solace over Kafka?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-event-streaming-sourcing-log-dynamic-topic-choose/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":5},{"id":"Q989","t":"Can Kafka and Solace be used together, and why are they often complementary?","u":"/interview/kafka-messaging/kafka-fundamentals/kafka-system-record-event-dynamic-solace-together-yes/","ch":"Kafka & Messaging","tp":"Kafka Fundamentals: Topics, Partitions, Offsets","qn":6},{"id":"Q906","t":"Consumer groups and partition assignment within and across groups","u":"/interview/kafka-messaging/consumer-groups/consumer-partition-group-assignment-within-across-groups/","ch":"Kafka & Messaging","tp":"Consumer Groups & Rebalancing","qn":3},{"id":"Q907","t":"How Kafka balances load across consumers and handles join/failure (rebalancing)","u":"/interview/kafka-messaging/consumer-groups/kafka-load-join-balance-across-consumers-group-happens/","ch":"Kafka & Messaging","tp":"Consumer Groups & Rebalancing","qn":4},{"id":"Q921","t":"Eager versus cooperative-sticky rebalance protocols","u":"/interview/kafka-messaging/consumer-groups/difference-eager-cooperative-sticky-rebalance-protocols/","ch":"Kafka & Messaging","tp":"Consumer Groups & Rebalancing","qn":5},{"id":"Q951","t":"A rolling deployment triggers a rebalance for every pod restart: why does it hurt more than expected, and how do you fix it?","u":"/interview/kafka-messaging/consumer-groups/rolling-deployment-triggers-rebalance-pod-restart-hurt-fix/","ch":"Kafka & Messaging","tp":"Consumer Groups & Rebalancing","qn":1},{"id":"Q960","t":"(Scenario) A partition reassignment for scaling/rebalancing causes spikes in consumer lag and latency: explain the five causes and how to mitigate them.","u":"/interview/kafka-messaging/consumer-groups/kafka-partition-consumer-replication-cache-broker/","ch":"Kafka & Messaging","tp":"Consumer Groups & Rebalancing","qn":2},{"id":"Q909","t":"Leader and follower replicas and the in-sync replica set (ISR)","u":"/interview/kafka-messaging/replication/role-leader-follower-replicas-in-sync-replica-isr/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":12},{"id":"Q910","t":"The replication factor in Kafka and its use cases","u":"/interview/kafka-messaging/replication/replication-kafka-factor-cases/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":11},{"id":"Q911","t":"Fault tolerance in Kafka through the replication factor","u":"/interview/kafka-messaging/replication/replication-kafka-fault-tolerance-achieved-factor-leader/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":8},{"id":"Q918","t":"Schema Registry compatibility modes (BACKWARD, FORWARD, FULL, NONE) and why defaults matter","u":"/interview/kafka-messaging/replication/schema-registry-compatibility-modes-backward-forward-full/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":4},{"id":"Q931","t":"What is `min.insync.replicas` and why it matters alongside `acks=all`","u":"/interview/kafka-messaging/replication/min-insync-replicas-matter-alongside-acks-matters/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":9},{"id":"Q933","t":"The default message size in Kafka and the configs that control it","u":"/interview/kafka-messaging/replication/kafka-default-message-size-mb-configs-control-max-bytes/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":10},{"id":"Q935","t":"What happens if a message exceeds the default size (RecordTooLargeException), and how do you support larger messages?","u":"/interview/kafka-messaging/replication/happens-message-exceeds-default-size-recordtoolargeexception/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":7},{"id":"Q940","t":"How do you design multi-datacenter Kafka replication, and what is the tradeoff between active-active and active-passive?","u":"/interview/kafka-messaging/replication/design-kafka-replication-multi-datacenter-tradeoff/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":1},{"id":"Q954","t":"With min.insync.replicas=1, acks=all, replication factor 3: where is the actual durability risk?","u":"/interview/kafka-messaging/replication/replication-min-insync-replicas-acks-factor-actual/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":13},{"id":"Q964","t":"(Scenario) Partition leaders are moving frequently: what is the impact, and how do you stabilize it?","u":"/interview/kafka-messaging/replication/partition-broker-retry-consumer-load-scenario-leaders-moving/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":2},{"id":"Q967","t":"What is the Kafka controller broker, and how does leader election from the ISR keep a partition available when its leader broker fails?","u":"/interview/kafka-messaging/replication/kafka-controller-broker-partition-join-elected-managing/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":3},{"id":"Q971","t":"How do you consume JSON in Spring Kafka, what is the default deserializer, and how do you dynamically pause/resume a listener?","u":"/interview/kafka-messaging/replication/spring-kafka-consumer-consume-json-configure/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":5},{"id":"Q972","t":"How do you stop one bad payload from blocking the partition, and what does DefaultErrorHandler do?","u":"/interview/kafka-messaging/replication/partition-record-retry-topic-handle-deserialization-failures/","ch":"Kafka & Messaging","tp":"Replication & Fault Tolerance","qn":6},{"id":"Q913","t":"The three delivery semantics in Kafka (at-most-once, at-least-once, exactly-once)","u":"/interview/kafka-messaging/delivery-semantics/kafka-delivery-semantics-at-most-once-at-least-once/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":10},{"id":"Q922","t":"Idempotent producer versus transactional producer","u":"/interview/kafka-messaging/delivery-semantics/producer-transactional-difference-idempotent-versus/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":7},{"id":"Q923","t":"How idempotent producers help achieve exactly-once semantics, and why it matters","u":"/interview/kafka-messaging/delivery-semantics/idempotent-producers-help-achieve-exactly-once-semantics/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":8},{"id":"Q932","t":"Configuring producers and consumers for guaranteed delivery","u":"/interview/kafka-messaging/delivery-semantics/offset-configure-producers-consumers-guaranteed-delivery/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":6},{"id":"Q938","t":"Walk through what happens during exactly-once processing end-to-end.","u":"/interview/kafka-messaging/delivery-semantics/producer-walk-happens-exactly-once-processing-end-to-end/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":4},{"id":"Q945","t":"What happens if a consumer crashes after consuming but before committing the offset, and how do you ensure at-least-once?","u":"/interview/kafka-messaging/delivery-semantics/consumer-offset-happens-crashes-consuming-committing-ensure/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":5},{"id":"Q956","t":"Does the idempotent producer protect you from application-level duplicate publishes?","u":"/interview/kafka-messaging/delivery-semantics/producer-idempotent-protect-application-level-duplicate/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":2},{"id":"Q958","t":"You need exactly-once across a database write and a Kafka publish: why don't Kafka transactions cover this, and what is the fix (transactional outbox)?","u":"/interview/kafka-messaging/delivery-semantics/kafka-transactional-outbox-exactly-once-across-database/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":3},{"id":"Q970","t":"What are the Spring Kafka AckModes, when do you use manual acknowledgment, and why does commit-after-processing give at-least-once?","u":"/interview/kafka-messaging/delivery-semantics/spring-kafka-record-ackmode-commit-batch-whole-poll-default/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":9},{"id":"Q974","t":"How do you do Kafka transactions in Spring, and why does a DB write plus Kafka publish still need the transactional outbox?","u":"/interview/kafka-messaging/delivery-semantics/kafka-spring-producer-transactional-consumer-offset-outbox/","ch":"Kafka & Messaging","tp":"Delivery Semantics & Exactly-Once","qn":1},{"id":"Q915","t":"What happens if a producer sends a message but no consumers are subscribed","u":"/interview/kafka-messaging/producer-config/producer-queue-happens-sends-message-consumers-subscribed/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":8},{"id":"Q920","t":"Producer partitioning strategies (round-robin, hash-of-key, custom) and their effect on ordering and load","u":"/interview/kafka-messaging/producer-config/producer-partitioning-load-strategies-round-robin-key/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":4},{"id":"Q925","t":"(Scenario) A producer sends an undeserializable message: keeping the consumer resilient","u":"/interview/kafka-messaging/producer-config/producer-consumer-queue-kafka-scenario-sends-message/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":6},{"id":"Q926","t":"Tiered retries with retry topics, exponential backoff with jitter, and transient vs permanent classification","u":"/interview/kafka-messaging/producer-config/transient-retry-topic-consumer-implement-tiered-retries/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":7},{"id":"Q934","t":"What parameters must be configured for message flow from producer to broker to consumer?","u":"/interview/kafka-messaging/producer-config/producer-broker-consumer-parameters-configured-message-flow/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":10},{"id":"Q936","t":"How do you optimize Kafka for high throughput (batch.size, linger.ms, compression, acks, max.in.flight)?","u":"/interview/kafka-messaging/producer-config/kafka-optimize-high-throughput-batch-size-linger-ms/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":3},{"id":"Q953","t":"What happens to a \"zombie\" producer after a network partition heals (epoch fencing)?","u":"/interview/kafka-messaging/producer-config/producer-partition-happens-zombie-network-heals-epoch/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":5},{"id":"Q957","t":"Your consumer is structurally slower than your producer indefinitely: what happens, given Kafka has no built-in backpressure?","u":"/interview/kafka-messaging/producer-config/consumer-producer-kafka-structurally-slower-indefinitely/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":2},{"id":"Q968","t":"Batch processing vs stream processing: what is the difference, and when do you choose each?","u":"/interview/kafka-messaging/producer-config/stream-difference-batch-processing-bounded-data-processed/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":9},{"id":"Q978","t":"What is the difference between Kafka Connect and writing your own producer/consumer?","u":"/interview/kafka-messaging/producer-config/kafka-producer-consumer-jdbc-s3-elasticsearch-mongodb/","ch":"Kafka & Messaging","tp":"Producer: Config, Acks, Batching","qn":1},{"id":"Q905","t":"How Kafka guarantees ordering within a partition, and multiple consumers","u":"/interview/kafka-messaging/consumer-config/kafka-partition-consumer-guarantee-message-ordering-within/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":6},{"id":"Q929","t":"What consumer lag tells you and what it does not (per-partition vs aggregate)","u":"/interview/kafka-messaging/consumer-config/consumer-lag-per-partition-aggregate-tells/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":5},{"id":"Q946","t":"What do the key consumer configs do?","u":"/interview/kafka-messaging/consumer-config/consumer-offset-cap-key-configs-enable-auto-commit-manual/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":2},{"id":"Q947","t":"(Scenario) The consumer app is running with no errors, but messages sit in the topic unconsumed: how do you diagnose it?","u":"/interview/kafka-messaging/consumer-config/consumer-topic-kafka-offset-partition-exactly-scenario-app/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":3},{"id":"Q948","t":"What is the difference between session.timeout.ms, heartbeat.interval.ms, and max.poll.interval.ms for detecting a dead consumer?","u":"/interview/kafka-messaging/consumer-config/timeout-consumer-thread-broker-long-difference-session-ms/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":4},{"id":"Q950","t":"Write a Kafka consumer that routes failed messages to a dead-letter queue.","u":"/interview/kafka-messaging/consumer-config/kafka-consumer-queue-routes-failed-messages-dead-letter/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":7},{"id":"Q959","t":"(Scenario) A Kafka topic has a hot partition due to a skewed key: how do you fix it without downtime, and what is the consumer-side trade-off?","u":"/interview/kafka-messaging/consumer-config/kafka-topic-partition-merge-scenario-hot-due-skewed-key/","ch":"Kafka & Messaging","tp":"Consumer: Commits, Polling, Deserialization","qn":1},{"id":"Q949","t":"Write a Kafka Streams app that reads a topic, uppercases values, and writes to another topic.","u":"/interview/kafka-messaging/kafka-streams/kafka-topic-streams-app-reads-uppercases-values-writes/","ch":"Kafka & Messaging","tp":"Kafka Streams","qn":2},{"id":"Q980","t":"What is Debezium, and how does change data capture stream database changes into Kafka?","u":"/interview/kafka-messaging/kafka-streams/log-mysql-wal-postgresql-delete-kafka-event-sourcing-stream/","ch":"Kafka & Messaging","tp":"Kafka Streams","qn":1},{"id":"Q977","t":"What is Kafka Connect, and how do source and sink connectors move data in and out of Kafka without code?","u":"/interview/kafka-messaging/kafka-connect/kafka-jdbc-s3-connect-tool-move-data-source-connectors-sink/","ch":"Kafka & Messaging","tp":"Kafka Connect","qn":1},{"id":"Q979","t":"What is a Source Connector vs a Sink Connector?","u":"/interview/kafka-messaging/kafka-connect/system-file-api-kafka-s3-elasticsearch-source-connector-sink/","ch":"Kafka & Messaging","tp":"Kafka Connect","qn":2},{"id":"Q981","t":"What is the Kafka Connect architecture, and what is standalone vs distributed mode?","u":"/interview/kafka-messaging/kafka-connect/kafka-avro-distributed-connect-architecture-workers-run/","ch":"Kafka & Messaging","tp":"Kafka Connect","qn":3},{"id":"Q982","t":"How do you deploy and manage Kafka Connect, and how do you handle connector failures?","u":"/interview/kafka-messaging/kafka-connect/kafka-rest-api-delete-queue-topic-deploy-manage-connect/","ch":"Kafka & Messaging","tp":"Kafka Connect","qn":4},{"id":"Q969","t":"What does Spring Kafka add over the raw client, and how does the listener container `concurrency` map threads to partitions?","u":"/interview/kafka-messaging/spring-kafka/spring-kafka-producer-topic-completablefuture-map-consumer/","ch":"Kafka & Messaging","tp":"Spring Kafka Integration","qn":2},{"id":"Q975","t":"How do you test Spring Kafka: embedded broker integration tests and mocking KafkaTemplate in unit tests?","u":"/interview/kafka-messaging/spring-kafka/spring-kafka-broker-testcontainers-producer-consumer-test/","ch":"Kafka & Messaging","tp":"Spring Kafka Integration","qn":1},{"id":"Q916","t":"Why use a Schema Registry instead of just sending JSON","u":"/interview/kafka-messaging/schema-registry/schema-registry-instead-sending-json/","ch":"Kafka & Messaging","tp":"Schema Registry & Avro","qn":1},{"id":"Q917","t":"JSON vs Avro vs Protobuf for Kafka, and how the Schema Registry serializer works (magic byte + schema id)","u":"/interview/kafka-messaging/schema-registry/avro-kafka-record-byte-trade-offs-json-protobuf-messages/","ch":"Kafka & Messaging","tp":"Schema Registry & Avro","qn":2},{"id":"Q914","t":"Log retention versus log compaction in Kafka","u":"/interview/kafka-messaging/compaction-retention/log-kafka-difference-retention-compaction-versus/","ch":"Kafka & Messaging","tp":"Compaction & Retention","qn":5},{"id":"Q955","t":"A compacted topic still shows old records for a key you thought was deleted: why (tombstone retention)?","u":"/interview/kafka-messaging/compaction-retention/topic-compacted-shows-records-key-thought-deleted-tombstone/","ch":"Kafka & Messaging","tp":"Compaction & Retention","qn":1},{"id":"Q961","t":"Why does Kafka retention cleanup cause spikes in disk I/O and temporarily degrade broker performance, and why is it worse on cloud disks like EBS?","u":"/interview/kafka-messaging/compaction-retention/kafka-log-broker-cache-delete-retention-cleanup-deleting/","ch":"Kafka & Messaging","tp":"Compaction & Retention","qn":3},{"id":"Q962","t":"In a compacted topic, when and why does data \"disappear\" even though compaction keeps the latest value per key?","u":"/interview/kafka-messaging/compaction-retention/topic-null-delete-record-compacted-data-disappear-though/","ch":"Kafka & Messaging","tp":"Compaction & Retention","qn":2},{"id":"Q966","t":"How is a partition stored on disk (segment files, offset index), and how does retention/compaction interact with segments?","u":"/interview/kafka-messaging/compaction-retention/partition-offset-index-stored-disk-segment-files-retention/","ch":"Kafka & Messaging","tp":"Compaction & Retention","qn":4},{"id":"Q653","t":"Kafka: producer/consumer, partitions, consumer groups, exactly-once, DLT, Spring Kafka","u":"/interview/kafka-messaging/error-handling-dlt/kafka-consumer-producer-topic-spring-topics-partitions/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":3},{"id":"Q924","t":"Handling a poison-pill message that keeps failing (dead letter topic)","u":"/interview/kafka-messaging/error-handling-dlt/topic-handle-poison-pill-message-keeps-failing-dead-letter/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":2},{"id":"Q927","t":"Reprocessing dead letter queue messages safely (the redrive flow)","u":"/interview/kafka-messaging/error-handling-dlt/once-queue-topic-retry-ve-fixed-bug-sent-messages-dead/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":5},{"id":"Q928","t":"Is a dead letter queue enough? Treating a DLQ as an incident-response mechanism","u":"/interview/kafka-messaging/error-handling-dlt/queue-path-transient-configuration-dead-letter-enough-handle/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":6},{"id":"Q973","t":"How do you implement retries and a dead letter topic declaratively with @RetryableTopic?","u":"/interview/kafka-messaging/error-handling-dlt/retry-topic-transient-implement-retries-dlt-declaratively/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":4},{"id":"Q976","t":"(Coding) Write a Spring Kafka JSON producer, a manual-ack consumer with bounded retries and DLT, a batch listener, and listener pause/resume on downstream failure.","u":"/interview/kafka-messaging/error-handling-dlt/spring-kafka-producer-consumer-coding-publishes-json-events/","ch":"Kafka & Messaging","tp":"Error Handling & Dead Letter Topics","qn":1},{"id":"Q900","t":"Choosing between Kafka, AWS SQS, and RabbitMQ for asynchronous communication","u":"/interview/kafka-messaging/kafka-comparison/kafka-aws-rabbitmq-event-queue-decide-sqs-asynchronous/","ch":"Kafka & Messaging","tp":"Kafka vs RabbitMQ vs SQS vs Pulsar","qn":3},{"id":"Q902","t":"Apache Pulsar versus Kafka: architecture and when to prefer each","u":"/interview/kafka-messaging/kafka-comparison/kafka-design-topic-streaming-queue-retry-apache-pulsar/","ch":"Kafka & Messaging","tp":"Kafka vs RabbitMQ vs SQS vs Pulsar","qn":4},{"id":"Q919","t":"Choosing a partition key and what happens with a bad choice (hot partition)","u":"/interview/kafka-messaging/kafka-comparison/partition-choose-key-happens-badly-hot-choosing-bad-choice/","ch":"Kafka & Messaging","tp":"Kafka vs RabbitMQ vs SQS vs Pulsar","qn":5},{"id":"Q983","t":"What is the difference between Kafka and RabbitMQ, and when do you use each?","u":"/interview/kafka-messaging/kafka-comparison/kafka-distributed-log-rabbitmq-queue-event-streaming/","ch":"Kafka & Messaging","tp":"Kafka vs RabbitMQ vs SQS vs Pulsar","qn":1},{"id":"Q988","t":"What is Apache Pulsar, and when would you consider Pulsar over Kafka?","u":"/interview/kafka-messaging/kafka-comparison/distributed-system-log-queue-kafka-streaming-apache-pulsar/","ch":"Kafka & Messaging","tp":"Kafka vs RabbitMQ vs SQS vs Pulsar","qn":2},{"id":"Q930","t":"How Kafka handles backpressure and its effect on lag and throughput","u":"/interview/kafka-messaging/troubleshooting/kafka-consumer-offset-handle-backpressure-affect-lag/","ch":"Kafka & Messaging","tp":"Troubleshooting & Operations","qn":1},{"id":"Q912","t":"What replaced ZooKeeper in Kafka 4.0 (KRaft) and why it matters","u":"/interview/kafka-messaging/advanced-kafka/kafka-replaced-zookeeper-kraft-matter-matters/","ch":"Kafka & Messaging","tp":"Advanced Kafka: Security, Tuning, Patterns","qn":1},{"id":"Q1000","t":"`git merge` vs `git rebase`, and what `stash` and `cherry-pick` do","u":"/interview/devops-cicd-tooling/git/merge-difference-git-rebase-integrating-branch-commit/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":1},{"id":"Q1001","t":"`git reset` vs `git revert`, and what `git reflog` is","u":"/interview/devops-cicd-tooling/git/pointer-log-difference-git-reset-revert-undoing-changes/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":2},{"id":"Q1959","t":"Git branching strategy (GitFlow, trunk-based, feature branches) and why maintain separate production and development branches instead of a single branch with tags","u":"/interview/devops-cicd-tooling/git/strategy-git-branching-gitflow-trunk-based-feature-branches/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":5},{"id":"Q1961","t":"The difference between git merge, git rebase, and git cherry-pick, and when to use each","u":"/interview/devops-cicd-tooling/git/merge-difference-git-rebase-cherry-pick/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":6},{"id":"Q997","t":"Git branching across a development team: feature branches, PR flow, hotfix branches","u":"/interview/devops-cicd-tooling/git/manage-git-branching-across-development-team-feature-pr-flow/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":3},{"id":"Q999","t":"Git's four locations for code and the commands that move changes between them","u":"/interview/devops-cicd-tooling/git/repository-git-locations-working-directory-staging-area/","ch":"DevOps, CI/CD & Tooling","tp":"Git: Branching, Merge, Rebase","qn":4},{"id":"Q1002","t":"How to do code / PR reviews","u":"/interview/devops-cicd-tooling/code-reviews/exception-pr-reviews-requirement-quality-business-logic/","ch":"DevOps, CI/CD & Tooling","tp":"Code Reviews & Documentation","qn":2},{"id":"Q1003","t":"How to ensure the quality and maintainability of your code","u":"/interview/devops-cicd-tooling/code-reviews/design-ensure-quality-maintainability-clean-standards-unit/","ch":"DevOps, CI/CD & Tooling","tp":"Code Reviews & Documentation","qn":3},{"id":"Q1004","t":"Architecture Decision Records (ADR) and technical RFCs: what they are and why version-control them","u":"/interview/devops-cicd-tooling/code-reviews/record-architecture-decision-adr-technical-rfc-documents/","ch":"DevOps, CI/CD & Tooling","tp":"Code Reviews & Documentation","qn":5},{"id":"Q1005","t":"Operational documentation a production service needs: README, runbooks, troubleshooting guides, deployment docs, architecture diagrams","u":"/interview/devops-cicd-tooling/code-reviews/service-kafka-consumer-system-operational-documentation/","ch":"DevOps, CI/CD & Tooling","tp":"Code Reviews & Documentation","qn":1},{"id":"Q1023","t":"Why sizing ZGC in a container needs more headroom than G1: and why -Xmx at ~70-75% of the pod limit, not ~90%","u":"/interview/devops-cicd-tooling/code-reviews/metaspace-cache-thread-heap-gc-sizing-zgc-container-headroom/","ch":"DevOps, CI/CD & Tooling","tp":"Code Reviews & Documentation","qn":4},{"id":"Q672","t":"DevOps: Docker multi-stage, K8s deployment, CI/CD pipeline, Maven lifecycle","u":"/interview/devops-cicd-tooling/maven-gradle/docker-kubernetes-maven-k8s-gradle-banking-microservice/","ch":"DevOps, CI/CD & Tooling","tp":"Maven & Gradle","qn":1},{"id":"Q994","t":"Maven vs Gradle: the differences","u":"/interview/devops-cicd-tooling/maven-gradle/maven-gradle-differences/","ch":"DevOps, CI/CD & Tooling","tp":"Maven & Gradle","qn":2},{"id":"Q995","t":"Why we use Maven: dependency management, structure, lifecycle, BOM","u":"/interview/devops-cicd-tooling/maven-gradle/maven-dependency-management-standard-structure-build/","ch":"DevOps, CI/CD & Tooling","tp":"Maven & Gradle","qn":4},{"id":"Q996","t":"Maven lifecycle phases, `mvn install` vs `mvn deploy`, and `distributionManagement`","u":"/interview/devops-cicd-tooling/maven-gradle/maven-repository-phases-build-lifecycle-validate-compile/","ch":"DevOps, CI/CD & Tooling","tp":"Maven & Gradle","qn":3},{"id":"Q1012","t":"What Elasticsearch is, and how it searches internally: inverted index, analyzers, sharding, near-real-time","u":"/interview/devops-cicd-tooling/cicd-pipeline/elasticsearch-search-index-sharding-internally-inverted/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":20},{"id":"Q1013","t":"The default mapping type in Elasticsearch (`_doc`) and why multiple types were removed","u":"/interview/devops-cicd-tooling/cicd-pipeline/elasticsearch-default-mapping-type-doc-multiple-types/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":11},{"id":"Q1014","t":"The default string field type in Elasticsearch: `text` or `keyword`: and how dynamic mapping handles it","u":"/interview/devops-cicd-tooling/cicd-pipeline/string-elasticsearch-dynamic-default-field-type-text-keyword/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":12},{"id":"Q1015","t":"What Liquibase is and how it manages database schema version control: changeSets, changelogs, databasechangelog","u":"/interview/devops-cicd-tooling/cicd-pipeline/liquibase-manage-database-schema-version-control-changesets/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":22},{"id":"Q1016","t":"What AGILE and SDLC are, and how they differ","u":"/interview/devops-cicd-tooling/cicd-pipeline/agile-sdlc-differ/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":17},{"id":"Q1017","t":"Comparing modern GC algorithms: Serial, Parallel, G1, ZGC, Shenandoah: pause model, best-fit heap/workload, and defaults by Java version","u":"/interview/devops-cicd-tooling/cicd-pipeline/gc-heap-compare-modern-algorithms-serial-parallel-g1-zgc/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":13},{"id":"Q1018","t":"Why increasing the heap size can make performance WORSE, and why \"just raise `-Xmx`\" is often the wrong first response","u":"/interview/devops-cicd-tooling/cicd-pipeline/heap-increasing-size-performance-worse-longer-stop-the-world/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":14},{"id":"Q1019","t":"How G1GC works: equal-sized regions, dynamic role assignment, Young/Mixed/Concurrent-Marking/Full phases, IHOP, MaxGCPauseMillis: and what makes it \"Garbage First\"","u":"/interview/devops-cicd-tooling/cicd-pipeline/dynamic-g1gc-equal-sized-regions-role-assignment-young-mixed/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":5},{"id":"Q1020","t":"The G1 humongous object problem: object larger than 50% of region size: what issues it causes, and how to fix it","u":"/interview/devops-cicd-tooling/cicd-pipeline/gc-g1-humongous-object-problem-50-region-size-issues-cause/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":25},{"id":"Q1021","t":"How ZGC achieves sub-millisecond pauses: colored pointers, load barriers, concurrent relocation, self-healing references: and what Generational ZGC is","u":"/interview/devops-cicd-tooling/cicd-pipeline/load-zgc-achieve-sub-millisecond-pauses-colored-pointers/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":6},{"id":"Q1022","t":"Why ZGC can still show a huge periodic latency spike: the allocation stall: how ZUncommit worsens bursty workloads, and how to fix it","u":"/interview/devops-cicd-tooling/cicd-pipeline/heap-zgc-designed-sub-millisecond-pauses-produce-huge/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":9},{"id":"Q1024","t":"What Shenandoah GC is: Brooks forwarding pointers, concurrent compaction: and what Generational Shenandoah (Java 25, JEP 521) added","u":"/interview/devops-cicd-tooling/cicd-pipeline/gc-shenandoah-brooks-forwarding-pointers-concurrent/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":10},{"id":"Q1025","t":"What Epsilon GC is: the no-op collector: and when it is useful","u":"/interview/devops-cicd-tooling/cicd-pipeline/gc-epsilon-no-op-collector-useful-benchmarking-short-lived/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":21},{"id":"Q1029","t":"What DevSecOps and \"shift left\" are: and why moving security into the pipeline (vs a final gate) matters at high release cadence","u":"/interview/devops-cicd-tooling/cicd-pipeline/final-devsecops-shift-left-moving-security-pipeline-gate/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":19},{"id":"Q1030","t":"The difference between SAST, DAST, IAST, and SCA: and where each runs in the SDLC","u":"/interview/devops-cicd-tooling/cicd-pipeline/difference-sast-dast-iast-sca-run-sdlc-runs/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":24},{"id":"Q1031","t":"What an SBOM is (SPDX / CycloneDX): and how it is an incident-response capability, not a compliance checkbox","u":"/interview/devops-cicd-tooling/cicd-pipeline/sbom-spdx-cyclonedx-incident-response-capability-query/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":18},{"id":"Q1032","t":"How to secure the CI/CD pipeline itself: OIDC federation, ephemeral runners, pinned action SHAs, least-privilege deploy roles: and how to defend against supply-chain attacks","u":"/interview/devops-cicd-tooling/cicd-pipeline/oidc-secure-ci-cd-pipeline-itself-federation-instead/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":4},{"id":"Q1033","t":"Should a failing security scan block the build: how do you choose blocking criteria, remediation SLAs by severity, and an auditable exception process?","u":"/interview/devops-cicd-tooling/cicd-pipeline/exception-failing-security-scan-block-build-choose-blocking/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":8},{"id":"Q1034","t":"Explain the Shared Responsibility Model, and why most cloud breaches are on the customer side (misconfiguration, over-permissioned identities)","u":"/interview/devops-cicd-tooling/cicd-pipeline/shared-responsibility-model-cloud-breaches-customer-side/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":3},{"id":"Q1035","t":"What is the Well-Architected Framework (the pillars), and how do you use it in a design review?","u":"/interview/devops-cicd-tooling/cicd-pipeline/design-well-architected-framework-pillars-operational/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":26},{"id":"Q1036","t":"What are the disaster-recovery patterns and their RTO/RPO/cost trade-offs, and why must a DR plan be tested, not just documented?","u":"/interview/devops-cicd-tooling/cicd-pipeline/disaster-recovery-patterns-rto-rpo-cost-trade-offs-backup/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":16},{"id":"Q1037","t":"What are the 7 Rs of cloud migration, and how do you choose per application?","u":"/interview/devops-cicd-tooling/cicd-pipeline/rs-cloud-migration-retire-retain-rehost-relocate-repurchase/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":15},{"id":"Q1038","t":"AWS Systems Manager (SSM) versus Patch Manager: broad fleet management versus OS/application patching","u":"/interview/devops-cicd-tooling/cicd-pipeline/aws-command-patch-difference-systems-manager-ssm-broad-fleet/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":23},{"id":"Q1041","t":"Deploying to Kubernetes/EKS via a CI/CD pipeline: GitHub Actions OIDC, ECR push, kubectl/Helm deploy, rollout verification, and why OIDC beats long-lived keys","u":"/interview/devops-cicd-tooling/cicd-pipeline/kubernetes-eks-oidc-aws-deploy-via-ci-cd-pipeline-github/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":28},{"id":"Q1043","t":"(Scenario) Cross-account AWS Lambda in Account B using Amazon EFS owned by Account A: why it needs both network connectivity and authorization, and why SCPs or cross-region role assumption do NOT solve it","u":"/interview/devops-cicd-tooling/cicd-pipeline/aws-lambda-vpc-scenario-let-account-amazon-efs-owned-require/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":7},{"id":"Q1044","t":"When to use OkHttp MockWebServer versus WebTestClient: testing outbound HTTP calls versus testing your own reactive controllers","u":"/interview/devops-cicd-tooling/cicd-pipeline/http-path-timeout-retry-okhttp-mockwebserver-real-local/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":27},{"id":"Q1905","t":"CI/CD Pipeline Stages and the Difference Between Continuous Integration, Delivery and Deployment","u":"/interview/devops-cicd-tooling/cicd-pipeline/stages-ci-cd-pipeline-source-build-test-package-scan-deploy/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":30},{"id":"Q1908","t":"Avoiding a Separate Pipeline per Microservice: Shared Libraries, Templated Pipelines, and Per-Branch Environment Routing","u":"/interview/devops-cicd-tooling/cicd-pipeline/microservices-jenkins-avoid-writing-separate-pipeline/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":31},{"id":"Q1911","t":"Scenario: CI Succeeds but CD Fails: Debugging, Where to Check Logs, and Safe Rollback","u":"/interview/devops-cicd-tooling/cicd-pipeline/rollback-ci-stage-succeeds-cd-fails-debug-check-pipeline/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":41},{"id":"Q1912","t":"Concurrent Pushes and How Parallel and Matrix Builds Work","u":"/interview/devops-cicd-tooling/cicd-pipeline/matrix-developers-push-time-pipeline-handle-parallel-builds/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":42},{"id":"Q1913","t":"Securely Managing Secrets in a CI/CD Pipeline","u":"/interview/devops-cicd-tooling/cicd-pipeline/jwt-securely-manage-secrets-db-passwords-cloud-keys-ci-cd/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":43},{"id":"Q1914","t":"Roles of Common CI/CD Tools: SonarQube, Trivy/Grype, Nexus/Artifactory, and SAST vs DAST","u":"/interview/devops-cicd-tooling/cicd-pipeline/static-repository-roles-common-ci-cd-tools-play-pipeline/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":44},{"id":"Q1936","t":"(Scenario) An EKS Cluster Is Slow but CPU and Memory Look Normal","u":"/interview/devops-cicd-tooling/cicd-pipeline/eks-path-thread-kubernetes-scenario-cluster-slow-cpu-memory/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":38},{"id":"Q1937","t":"Why EKS Consumes VPC IP Addresses So Quickly, and How to Avoid IP Exhaustion","u":"/interview/devops-cicd-tooling/cicd-pipeline/eks-vpc-consume-ip-addresses-quickly-cni-assigns-real-ips/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":37},{"id":"Q1940","t":"Configuration Drift: What It Is, How to Detect It, and How to Reconcile It","u":"/interview/devops-cicd-tooling/cicd-pipeline/configuration-terraform-drift-detect-plan-reconcile/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":52},{"id":"Q1953","t":"SLI, SLO, and SLA and how they relate (indicator, internal objective, external contract)","u":"/interview/devops-cicd-tooling/cicd-pipeline/sli-slo-sla-relate-indicator-internal-objective-external/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":48},{"id":"Q1955","t":"What is toil, and how do you reduce it in a DevOps/SRE team","u":"/interview/devops-cicd-tooling/cicd-pipeline/toil-reduce-devops-sre-team/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":55},{"id":"Q1957","t":"p95 / p99 (and p99.9) latency percentiles and why you track percentiles instead of the average","u":"/interview/devops-cicd-tooling/cicd-pipeline/p95-p99-latency-percentiles-99-requests-complete-100-slower/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":47},{"id":"Q1958","t":"Performing a Root Cause Analysis (RCA) and writing a blameless post-mortem after a production incident","u":"/interview/devops-cicd-tooling/cicd-pipeline/perform-root-cause-analysis-rca-blameless-post-mortem/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":35},{"id":"Q1960","t":"Resolving merge conflicts and undoing a bad commit already pushed to a shared branch (revert vs reset + force-push)","u":"/interview/devops-cicd-tooling/cicd-pipeline/merge-resolve-conflicts-undo-bad-commit-already-pushed/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":29},{"id":"Q1962","t":"Debugging end-to-end when a customer cannot access the application though credentials are correct","u":"/interview/devops-cicd-tooling/cicd-pipeline/service-scenario-customer-cannot-access-application-though/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":40},{"id":"Q1963","t":"Immediate mitigation and longer-term fix for EC2 ALB health-check failures, RDS storage exhaustion, and failed production deployments","u":"/interview/devops-cicd-tooling/cicd-pipeline/ec2-rds-scenario-instances-fail-alb-health-checks-runs/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":45},{"id":"Q1964","t":"Identifying a deploy as the cause of a latency spike by comparing BEFORE vs AFTER, then restoring service safely","u":"/interview/devops-cicd-tooling/cicd-pipeline/api-distributed-gc-once-service-rollback-strategy-scenario/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":46},{"id":"Q1965","t":"Reducing AWS/cloud cost for idle resources without impacting performance","u":"/interview/devops-cicd-tooling/cicd-pipeline/aws-reduce-cloud-cost-idle-resources-without-impacting/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":36},{"id":"Q1967","t":"Iterating over AWS resources with Boto3 and what a production script must add beyond the happy path","u":"/interview/devops-cicd-tooling/cicd-pipeline/aws-ec2-path-pagination-logging-iam-iterate-resources/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":34},{"id":"Q1968","t":"Why you must handle pagination when listing AWS resources, and how Boto3 paginators avoid incomplete results","u":"/interview/devops-cicd-tooling/cicd-pipeline/pagination-aws-cap-handle-listing-resources-apis-results-per/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":56},{"id":"Q1969","t":"Filtering AWS resources server-side with Boto3 instead of pulling everything, and what automation it enables","u":"/interview/devops-cicd-tooling/cicd-pipeline/aws-filter-resources-server-side-boto3-filters-name-tag/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":33},{"id":"Q1973","t":"What a feature flag is and why it is useful","u":"/interview/devops-cicd-tooling/cicd-pipeline/rollback-feature-flag-turn-features-without-deploying-tools/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":32},{"id":"Q1974","t":"What an SLO is and what an SLI is","u":"/interview/devops-cicd-tooling/cicd-pipeline/service-slo-level-objective-target-reliability-99/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":51},{"id":"Q1975","t":"What an error budget is and how teams use it","u":"/interview/devops-cicd-tooling/cicd-pipeline/error-budget-amount-unreliability-allowed-freeze-features/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":50},{"id":"Q1976","t":"What incident management is and its five-step process","u":"/interview/devops-cicd-tooling/cicd-pipeline/incident-management-process-detecting-responding-resolving/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":53},{"id":"Q1977","t":"Critical production incident: what to check first, assess impact, prioritize restoring service, and why mitigate before root-cause","u":"/interview/devops-cicd-tooling/cicd-pipeline/service-rollback-scenario-critical-production-incident/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":39},{"id":"Q1978","t":"What a blameless postmortem is and why it is blameless","u":"/interview/devops-cicd-tooling/cicd-pipeline/blameless-postmortem-incident-team-writes-document-covering/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":49},{"id":"Q1979","t":"What on-call rotation is and what tools support it","u":"/interview/devops-cicd-tooling/cicd-pipeline/on-call-rotation-team-members-turns-responder-production/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":54},{"id":"Q687","t":"Database: SQL queries, indexes, joins, window functions, transactions, sharding, HikariCP","u":"/interview/devops-cicd-tooling/cicd-pipeline/service-sql-nosql-acid-window-sharding-relational-database/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":1},{"id":"Q998","t":"Git rebasing: what it is, advantages, when to use, and the risks of rewriting history","u":"/interview/devops-cicd-tooling/cicd-pipeline/rebasing-git-advantages-risks-rewriting-history/","ch":"DevOps, CI/CD & Tooling","tp":"CI/CD Pipeline","qn":2},{"id":"Q1906","t":"Separating CI and CD Pipelines in Jenkins and Integrating Jenkins with Kubernetes","u":"/interview/devops-cicd-tooling/jenkins/jenkins-kubernetes-separate-ci-cd-pipelines-triggers-stage/","ch":"DevOps, CI/CD & Tooling","tp":"Jenkins","qn":1},{"id":"Q1907","t":"Jenkins Scripted vs Declarative Pipeline and Groovy's Role in a Jenkinsfile","u":"/interview/devops-cicd-tooling/jenkins/jenkins-scripted-declarative-pipeline-groovy-role/","ch":"DevOps, CI/CD & Tooling","tp":"Jenkins","qn":2},{"id":"Q1007","t":"Kubernetes `RollingUpdate` vs `Recreate` deployment strategies: trade-offs and when to choose each","u":"/interview/devops-cicd-tooling/deployment-strategies/kubernetes-difference-rollingupdate-recreate-deployment/","ch":"DevOps, CI/CD & Tooling","tp":"Deployment Strategies","qn":1},{"id":"Q1008","t":"Comparing deployment strategies and their trade-offs: Recreate, Rolling, Blue-Green, Canary, A/B, Shadow","u":"/interview/devops-cicd-tooling/deployment-strategies/rollback-strategy-compare-main-deployment-strategies/","ch":"DevOps, CI/CD & Tooling","tp":"Deployment Strategies","qn":2},{"id":"Q1910","t":"Deployment Strategies: Rolling Update, Blue-Green, and Canary","u":"/interview/devops-cicd-tooling/deployment-strategies/rollback-deployment-strategies-differ-rolling-update/","ch":"DevOps, CI/CD & Tooling","tp":"Deployment Strategies","qn":5},{"id":"Q1925","t":"Rolling Updates, Fast Rollback, and Why Rollback May Not Fully Restore State","u":"/interview/devops-cicd-tooling/deployment-strategies/rollback-state-rolling-update-maxsurge-maxunavailable-roll/","ch":"DevOps, CI/CD & Tooling","tp":"Deployment Strategies","qn":3},{"id":"Q1972","t":"Blue-Green vs Canary vs Rolling deployment, and when to use each","u":"/interview/devops-cicd-tooling/deployment-strategies/once-blue-green-deployment-canary-rolling-identical/","ch":"DevOps, CI/CD & Tooling","tp":"Deployment Strategies","qn":4},{"id":"Q1040","t":"Writing a production Dockerfile for a Spring Boot app: multi-stage, layered JAR, slim JRE, non-root, MaxRAMPercentage, and why instruction order matters","u":"/interview/devops-cicd-tooling/docker/spring-jar-cache-jre-base-caching-production-dockerfile-boot/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":1},{"id":"Q1915","t":"Docker Image Versus Container and What Is Inside an Image","u":"/interview/devops-cicd-tooling/docker/docker-base-difference-image-container-inside-layers-app/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":9},{"id":"Q1916","t":"Virtual Machine Versus Container With Respect to the Hypervisor","u":"/interview/devops-cicd-tooling/docker/isolation-difference-virtual-machine-container-respect/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":10},{"id":"Q1917","t":"Multi-Stage Docker Build and How It Reduces Final Image Size","u":"/interview/devops-cicd-tooling/docker/docker-final-multi-stage-build-reduce-image-size-stage-full/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":3},{"id":"Q1918","t":"Optimizing a Docker Image's Size","u":"/interview/devops-cicd-tooling/docker/docker-base-final-optimize-image-size-slim-distroless/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":4},{"id":"Q1919","t":"COPY Versus ADD in a Dockerfile and Why COPY Is Usually Preferred","u":"/interview/devops-cicd-tooling/docker/difference-copy-add-dockerfile-usually-preferred-versus/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":5},{"id":"Q1920","t":"Scanning Docker Images for Vulnerabilities and Managing Secrets Inside Containers Securely","u":"/interview/devops-cicd-tooling/docker/docker-scan-images-vulnerabilities-deployment-trivy-grype/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":6},{"id":"Q1921","t":"Scenario: A Container Keeps Restarting in Production: Finding the Root Cause","u":"/interview/devops-cicd-tooling/docker/docker-container-keeps-restarting-production-root-cause-logs/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":7},{"id":"Q1930","t":"(Scenario) Diagnosing CrashLoopBackOff, ImagePullBackOff, Pending, and ContainerCreating","u":"/interview/devops-cicd-tooling/docker/scenario-pod-stuck-crashloopbackoff-imagepullbackoff-pending/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":8},{"id":"Q1950","t":"Centralizing logs across many services/containers (ELK/EFK, Loki) and tracing a single request end-to-end (correlation ID, OpenTelemetry, Jaeger/Zipkin)","u":"/interview/devops-cicd-tooling/docker/propagation-centralize-logs-across-services-containers-elk/","ch":"DevOps, CI/CD & Tooling","tp":"Docker: Images, Containers, Multi-Stage","qn":2},{"id":"Q1009","t":"Core Kubernetes objects: Pod, Deployment, Service, Ingress, ConfigMap, Secret: and why Pods are \"cattle, not pets\"","u":"/interview/devops-cicd-tooling/kubernetes-core/kubernetes-service-core-objects-pod-deployment-clusterip/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":1},{"id":"Q1010","t":"Liveness probe vs readiness probe, and wiring Spring Boot Actuator health groups to them","u":"/interview/devops-cicd-tooling/kubernetes-core/spring-difference-liveness-probe-readiness-wire-boot/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":3},{"id":"Q1027","t":"How the JVM behaves in containers and Kubernetes: UseContainerSupport, MaxRAMPercentage, request=limit, ExitOnOutOfMemoryError: and what went wrong before container awareness","u":"/interview/devops-cicd-tooling/kubernetes-core/jvm-kubernetes-behave-containers-usecontainersupport/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":2},{"id":"Q1045","t":"Why you must subscribe to a reactive chain in tests with StepVerifier, and what happens if you never subscribe","u":"/interview/devops-cicd-tooling/kubernetes-core/subscribe-reactive-chain-tests-stepverifier-assert/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":4},{"id":"Q1922","t":"Kubernetes Architecture: Control Plane, Worker Nodes, and How the Scheduler Places a Pod","u":"/interview/devops-cicd-tooling/kubernetes-core/kubernetes-api-controller-architecture-control-plane-server/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":9},{"id":"Q1923","t":"Pod, Deployment, ReplicaSet, StatefulSet, DaemonSet, and Job: The Differences","u":"/interview/devops-cicd-tooling/kubernetes-core/difference-pod-deployment-replicaset-statefulset-daemonset/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":14},{"id":"Q1924","t":"Readiness, Liveness, and Startup Probes in Kubernetes","u":"/interview/devops-cicd-tooling/kubernetes-core/service-kubernetes-readiness-liveness-startup-probes-happens/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":8},{"id":"Q1926","t":"Kubernetes Service Discovery, Networking, and Debugging DNS Resolution","u":"/interview/devops-cicd-tooling/kubernetes-core/kubernetes-service-discovery-networking-clusterip-nodeport/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":11},{"id":"Q1927","t":"HPA vs VPA vs Cluster Autoscaler vs KEDA, and Combining HPA with VPA","u":"/interview/devops-cicd-tooling/kubernetes-core/event-difference-hpa-replica-count-metrics-vpa-per-pod-cpu/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":15},{"id":"Q1928","t":"ConfigMap vs Secret, and Why Pods Do Not Auto-Reload Config Changes","u":"/interview/devops-cicd-tooling/kubernetes-core/configuration-manage-secrets-configmap-secret-don-pods-pick/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":10},{"id":"Q1931","t":"(Scenario) Pods Are Running but Receive No Traffic Through Ingress/Service","u":"/interview/devops-cicd-tooling/kubernetes-core/service-scenario-pods-running-receiving-traffic-via-ingress/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":13},{"id":"Q1932","t":"Why Pods Get OOMKilled Even When Monitoring Looks Normal, and Right-Sizing Requests/Limits","u":"/interview/devops-cicd-tooling/kubernetes-core/jvm-heap-causes-oomkilled-monitoring-looks-normal-container/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":5},{"id":"Q1933","t":"Kubernetes QoS Classes, OOM Eviction Order, and Why emptyDir Data Is Lost","u":"/interview/devops-cicd-tooling/kubernetes-core/kubernetes-eviction-qos-classes-guaranteed-requests-limits/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":6},{"id":"Q1934","t":"Enforcing Least Privilege at the Pod Level and Why Running as Root Breaches It","u":"/interview/devops-cicd-tooling/kubernetes-core/enforce-least-privilege-pod-level-securitycontext/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":7},{"id":"Q1935","t":"What Exit Code 137 Means, and Telling OOMKill from Liveness-Probe Kill from Graceful-Shutdown Timeout","u":"/interview/devops-cicd-tooling/kubernetes-core/jvm-timeout-container-exit-137-mean-128-signal-sigkill/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":12},{"id":"Q1951","t":"What metrics to monitor for an EC2 instance, a Kubernetes cluster, and a JVM app, and how to achieve a high-availability SLA with monitoring and alerting","u":"/interview/devops-cicd-tooling/kubernetes-core/ec2-kubernetes-jvm-metrics-monitor-instance-cluster-app/","ch":"DevOps, CI/CD & Tooling","tp":"Kubernetes: Core Concepts","qn":16},{"id":"Q1042","t":"What Helm adds over raw Kubernetes manifests: templating, values, upgrade --install, rollback, per-environment values: and when to reach for it","u":"/interview/devops-cicd-tooling/helm/kubernetes-rollback-helm-add-raw-manifests-templating-values/","ch":"DevOps, CI/CD & Tooling","tp":"Helm & Charts","qn":1},{"id":"Q1929","t":"Helm Charts, Versioning, and Templating Releases Across Environments","u":"/interview/devops-cicd-tooling/helm/versioning-template-kubernetes-helm-charts-chart-help/","ch":"DevOps, CI/CD & Tooling","tp":"Helm & Charts","qn":2},{"id":"Q1039","t":"CloudFormation stuck in UPDATE_ROLLBACK_FAILED: causes and recovery","u":"/interview/devops-cicd-tooling/terraform-iac/stack-rollback-causes-cloudformation-stuck-update-failed/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":4},{"id":"Q1938","t":"Terraform, the State File, and Managing Remote State with Locking","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-state-file-s3-matter-manage-remote-dynamodb-lock/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":13},{"id":"Q1939","t":"Terraform Modules and Workspaces, and Structuring Reusable Modules for Multiple Environments","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-modules-workspaces-structure-reusable-multiple/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":12},{"id":"Q1941","t":"(Scenario) Terraform State Deleted or an Apply Fails Midway: How to Recover","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-state-file-versioning-scenario-accidentally/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":6},{"id":"Q1942","t":"Terraform taint/-replace vs import, and Referencing One Module's Resources from Another","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-state-difference-taint-replace-import-reference/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":7},{"id":"Q1943","t":"Bringing existing/legacy AWS resources under Terraform management (write config → import → plan → iterate → commit), and why import alone does not produce clean config","u":"/interview/devops-cicd-tooling/terraform-iac/aws-terraform-matching-state-bring-existing-manually-created/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":8},{"id":"Q1944","t":"Safely upgrading a long-neglected Terraform module, and why a `-/+` \"must be replaced\" line deserves special scrutiny","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-long-module-hasn-updated-time-upgrade-safely/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":9},{"id":"Q1945","t":"Ensuring a Terraform change does NOT unexpectedly recreate resources","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-immutable-ensure-change-unexpectedly-recreate/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":10},{"id":"Q1946","t":"Managing Terraform module versioning and backward compatibility for many-team modules, and what counts as a breaking change","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-versioning-state-manage-module-backward/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":11},{"id":"Q990","t":"Terraform: plan/apply workflow and why we use Infrastructure as Code","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-plan-apply-workflow-infrastructure-as/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":5},{"id":"Q991","t":"Terraform: what `terraform init` does and running Terraform safely across teams","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-state-s3-isolation-happens-init-provider-plugins/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":1},{"id":"Q992","t":"Terraform vs CloudFormation: differences and how to choose for all-AWS","u":"/interview/devops-cicd-tooling/terraform-iac/terraform-state-cloudformation-differ-multi-cloud-provider/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":2},{"id":"Q993","t":"AWS CloudFormation: core concepts and how SAM relates","u":"/interview/devops-cicd-tooling/terraform-iac/aws-core-concepts-cloudformation-templates-yaml-json/","ch":"DevOps, CI/CD & Tooling","tp":"Terraform & IaC","qn":3},{"id":"Q1011","t":"Kibana configuration and how the ELK stack enables centralized logging and request tracing with correlation IDs","u":"/interview/devops-cicd-tooling/monitoring-logging/stack-logging-configuration-kibana-configured-project-elk/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":1},{"id":"Q1026","t":"The essential JVM flags every senior should know: heap sizing, GC selection, G1 tuning, Metaspace cap, HeapDumpOnOutOfMemoryError, GC logging, PrintFlagsFinal","u":"/interview/devops-cicd-tooling/monitoring-logging/jvm-heap-gc-metaspace-cap-logging-essential-flags-senior/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":2},{"id":"Q1028","t":"What JVM monitoring tools you use in production: jstat, jcmd, jmap, Eclipse MAT, VisualVM, async-profiler, Micrometer+Prometheus+Grafana, APM: and which metrics you alert on","u":"/interview/devops-cicd-tooling/monitoring-logging/jvm-gc-heap-monitoring-tools-production-jstat-jcmd-jmap/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":3},{"id":"Q1947","t":"The three pillars of observability (metrics, logs, traces) and how they complement each other","u":"/interview/devops-cicd-tooling/monitoring-logging/distributed-system-pillars-observability-metrics-logs-traces/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":6},{"id":"Q1948","t":"How Prometheus works (pull/scrape, time-series DB, PromQL), Grafana integration, and setting actionable alerts","u":"/interview/devops-cicd-tooling/monitoring-logging/prometheus-pull-scrape-model-time-series-db-promql-integrate/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":4},{"id":"Q1949","t":"Cardinality explosion in Prometheus metrics: what it is, the incident it causes, and how to avoid it","u":"/interview/devops-cicd-tooling/monitoring-logging/path-cardinality-explosion-prometheus-metrics-separate-time/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":7},{"id":"Q1952","t":"eBPF-based observability and when to reach for it beyond APM","u":"/interview/devops-cicd-tooling/monitoring-logging/jvm-ebpf-based-observability-reach-beyond-apm-metrics-traces/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":8},{"id":"Q1956","t":"The Golden Signals of monitoring (latency, traffic, errors, saturation)","u":"/interview/devops-cicd-tooling/monitoring-logging/golden-signals-monitoring-latency-traffic-errors-saturation/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":5},{"id":"Q1966","t":"Shell script that checks CPU, memory, and disk utilization and alerts if any exceeds a threshold","u":"/interview/devops-cicd-tooling/monitoring-logging/shell-script-checks-cpu-memory-disk-utilization-alerts/","ch":"DevOps, CI/CD & Tooling","tp":"Monitoring & Logging","qn":9},{"id":"Q1006","t":"Versioning format for deployments (Semantic Versioning) and how the release/deployment process is managed","u":"/interview/devops-cicd-tooling/versioning-release/versioning-format-deployments-semantic-release-deployment/","ch":"DevOps, CI/CD & Tooling","tp":"Versioning & Release","qn":1},{"id":"Q1954","t":"Error budget: how it is derived from an SLO and how it governs release pace versus reliability work","u":"/interview/devops-cicd-tooling/versioning-release/error-budget-derived-slo-govern-pace-releases-reliability/","ch":"DevOps, CI/CD & Tooling","tp":"Versioning & Release","qn":2},{"id":"Q1909","t":"GitOps (ArgoCD/Flux) Versus Push-Based Jenkins Deploys","u":"/interview/devops-cicd-tooling/gitops/controller-jenkins-rollback-gitops-argocd-flux-git-as-single/","ch":"DevOps, CI/CD & Tooling","tp":"GitOps: ArgoCD, Flux","qn":3},{"id":"Q1970","t":"What GitOps is and why it is better than manual kubectl apply","u":"/interview/devops-cicd-tooling/gitops/gitops-git-as-single-source-truth-infrastructure-application/","ch":"DevOps, CI/CD & Tooling","tp":"GitOps: ArgoCD, Flux","qn":1},{"id":"Q1971","t":"What ArgoCD is and how pull-based GitOps differs from push-based CI/CD","u":"/interview/devops-cicd-tooling/gitops/kubernetes-state-jenkins-argocd-kubernetes-native-gitops/","ch":"DevOps, CI/CD & Tooling","tp":"GitOps: ArgoCD, Flux","qn":2},{"id":"Q1074","t":"Why LIKE '%term%' is slow, full-text search, and when to reach for Elasticsearch","u":"/interview/database-sql/sql-basics/wildcard-search-index-elasticsearch-col-term-slow-leading/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":8},{"id":"Q1092","t":"What is the difference between a surrogate key, a natural key, a candidate key, and an alternate key, and why do production schemas usually prefer a surrogate key?","u":"/interview/database-sql/sql-basics/difference-surrogate-key-artificial-meaningless/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":3},{"id":"Q1098","t":"What are the differences between UNION, UNION ALL, and INTERSECT?","u":"/interview/database-sql/sql-basics/union-differences-intersect/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":7},{"id":"Q1117","t":"Differences Between DROP, TRUNCATE, and DELETE","u":"/interview/database-sql/sql-basics/delete-differences-drop-truncate/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":6},{"id":"Q1130","t":"Ensuring Safe Concurrent Updates in Real-Time Systems","u":"/interview/database-sql/sql-basics/atomic-mvcc-redis-ensure-safe-concurrent-updates-real-time/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":4},{"id":"Q1131","t":"Locking Reads (SELECT ... FOR UPDATE / FOR SHARE) and Why Not Everywhere","u":"/interview/database-sql/sql-basics/rollback-locking-select-update-share-innodb-hold-row-locks/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":5},{"id":"Q1164","t":"UPSERT: Insert-or-Update Atomically","u":"/interview/database-sql/sql-basics/atomic-postgresql-mysql-merge-race-condition-upsert/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":1},{"id":"Q1165","t":"MERGE Versus INSERT ... ON CONFLICT, and the Auto-Increment Gotcha","u":"/interview/database-sql/sql-basics/merge-delete-insert-conflict-supports-matched-not-matched/","ch":"Database & SQL","tp":"SQL Basics: SELECT, WHERE, ORDER BY","qn":2},{"id":"Q1099","t":"What is the purpose of JOIN vs UNION?","u":"/interview/database-sql/joins/join-union-purpose/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":7},{"id":"Q1100","t":"Explain all the types of SQL joins.","u":"/interview/database-sql/joins/sql-types-joins/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":8},{"id":"Q1101","t":"NATURAL JOIN, CROSS JOIN, and GROUP BY ROLLUP","u":"/interview/database-sql/joins/join-natural-auto-joins-same-named-columns-risky-discouraged/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":9},{"id":"Q1104","t":"COUNT(*) vs COUNT(column) vs COUNT(DISTINCT) and the LEFT JOIN COUNT Trap","u":"/interview/database-sql/joins/join-null-difference-count-counts-rows-including-nulls/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":2},{"id":"Q1107","t":"Why EXISTS Beats INNER JOIN for Semi-Joins","u":"/interview/database-sql/joins/join-matching-once-check-related-row-exists-semi-join-better/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":12},{"id":"Q1112","t":"The Anti-Join and the LEFT JOIN WHERE-Condition Trap","u":"/interview/database-sql/joins/matching-join-null-condition-rows-table-row-another/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":10},{"id":"Q1138","t":"Count Employees per Department: JOIN with GROUP BY","u":"/interview/database-sql/joins/join-department-employees-tables-query-number-count-per/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":3},{"id":"Q1148","t":"Classic SQL Query Patterns: Self-Join, Nth-Highest, Pivot, Gaps, Streaks, Running Totals","u":"/interview/database-sql/joins/salary-window-sql-queries-employees-earning-manager/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":11},{"id":"Q1155","t":"Why SQL JOINs Become Prohibitively Expensive at Very Large Scale","u":"/interview/database-sql/joins/sql-index-design-joins-become-prohibitively-expensive-large/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":1},{"id":"Q1157","t":"Application-Layer JOIN Versus Database JOIN","u":"/interview/database-sql/joins/join-redis-postgresql-application-layer-fetch-piece-primary/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":6},{"id":"Q1173","t":"Rewrite a correlated subquery as a JOIN for performance","u":"/interview/database-sql/joins/join-salary-rewrite-correlated-subquery-as-performance/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":4},{"id":"Q1174","t":"What is a LATERAL join / CROSS APPLY / OUTER APPLY and why is it useful?","u":"/interview/database-sql/joins/join-postgresql-sql-window-lateral-cross-apply-outer-server/","ch":"Database & SQL","tp":"Joins: INNER, LEFT, RIGHT, FULL, CROSS","qn":5},{"id":"Q1084","t":"How do you write a custom method or query in MongoDB (shell, aggregation framework, Spring Data custom repository)?","u":"/interview/database-sql/aggregation/mongodb-spring-repository-custom-query-shell-aggregation/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":1},{"id":"Q1096","t":"What is the difference between the WHERE and HAVING clauses?","u":"/interview/database-sql/aggregation/difference-having-clauses/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":10},{"id":"Q1102","t":"PIVOT and Portable Conditional Aggregation","u":"/interview/database-sql/aggregation/salary-pivot-operation-turn-row-values-columns-average-per/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":9},{"id":"Q1103","t":"Aggregation Functions and COUNT(*) vs COUNT(column)","u":"/interview/database-sql/aggregation/aggregation-functions-difference-count-column/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":8},{"id":"Q1113","t":"Conditional Aggregation with SUM(CASE WHEN ...)","u":"/interview/database-sql/aggregation/mysql-conditional-aggregation-sum-case-bool-expr-customers/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":5},{"id":"Q1137","t":"Monthly Revenue Report: GROUP BY Year and Month","u":"/interview/database-sql/aggregation/orders-id-order-date-total-amount-table-query-calculate/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":2},{"id":"Q1139","t":"Total Money Spent by Each Customer: SUM with GROUP BY","u":"/interview/database-sql/aggregation/query-total-amount-money-spent-customer-sum-group/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":3},{"id":"Q1140","t":"Find Duplicate Records: GROUP BY with HAVING COUNT > 1","u":"/interview/database-sql/aggregation/query-duplicate-records-table-group-having-count/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":4},{"id":"Q1146","t":"Customers With BOTH State A and State B: Conditional Aggregation","u":"/interview/database-sql/aggregation/state-query-customers-users-completed-cancelled-order/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":6},{"id":"Q1147","t":"Predict the Output / Spot the Bug: NULL, Aliases, HAVING, and SQL Gotchas","u":"/interview/database-sql/aggregation/null-join-sql-predict-spot-bug-order-subquery-group-without/","ch":"Database & SQL","tp":"Aggregation: GROUP BY, HAVING, COUNT, SUM","qn":7},{"id":"Q1078","t":"Read/write splitting at the application level with AbstractRoutingDataSource","u":"/interview/database-sql/subqueries-cte/transactional-replication-implement-splitting-application/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":5},{"id":"Q1105","t":"Subqueries: Single-Row, Multi-Row, and Correlated","u":"/interview/database-sql/subqueries-cte/subquery-return-multiple-rows-single-row-multi-row/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":1},{"id":"Q1109","t":"CTEs (WITH) and Recursive CTEs","u":"/interview/database-sql/subqueries-cte/cte-improve-readability-nested-subqueries-recursive-traverse/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":7},{"id":"Q1162","t":"Temporary Tables Versus CTEs","u":"/interview/database-sql/subqueries-cte/temporary-tables-create-table-session-scoped-auto-dropped/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":6},{"id":"Q1163","t":"Why a CTE Can Perform Worse: Materialization Fences","u":"/interview/database-sql/subqueries-cte/postgresql-cte-sometimes-perform-worse-pre-12-materialized/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":2},{"id":"Q1171","t":"Correlated Subqueries Versus Non-Correlated Subqueries","u":"/interview/database-sql/subqueries-cte/once-correlated-subquery-references-column-outer-query/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":3},{"id":"Q1172","t":"The Subquery Types: Scalar, Row, Table, and Correlated","u":"/interview/database-sql/subqueries-cte/subquery-types-scalar-returns-value-usable-select-row-table/","ch":"Database & SQL","tp":"Subqueries & CTEs","qn":4},{"id":"Q1077","t":"Replication lag and the read-your-own-writes problem","u":"/interview/database-sql/window-functions/replication-window-consistency-lag-replicas-cause/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":3},{"id":"Q1097","t":"What is the difference between RANK, DENSE_RANK, and ROW_NUMBER?","u":"/interview/database-sql/window-functions/difference-rank-dense-row-number/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":8},{"id":"Q1108","t":"SQL Window Functions (OVER, PARTITION BY, LAG/LEAD, Running Totals)","u":"/interview/database-sql/window-functions/sql-window-partition-functions-order-lag-lead-compare/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":7},{"id":"Q1114","t":"Greatest-N-Per-Group with ROW_NUMBER/RANK/DENSE_RANK","u":"/interview/database-sql/window-functions/pattern-partition-exactly-greatest-n-per-group-latest-order/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":2},{"id":"Q1116","t":"Rank-Then-Filter: \"Customers Whose Latest Order Was Cancelled\"","u":"/interview/database-sql/window-functions/pattern-customers-latest-order-cancelled-rank-filter-compute/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":1},{"id":"Q1142","t":"Top 5 Employees Earning Above the Average Salary: LIMIT and RANK Versions","u":"/interview/database-sql/window-functions/salary-query-top-employees-greater-average-limit-rank/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":4},{"id":"Q1144","t":"Latest and Most Expensive Order per Customer, and Top-3 per Group: ROW_NUMBER","u":"/interview/database-sql/window-functions/partition-query-return-latest-order-full-row-per-customer/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":5},{"id":"Q1145","t":"Customers Who Ordered on at Least Two Consecutive Days: LAG and DATEDIFF","u":"/interview/database-sql/window-functions/query-customers-ordered-least-consecutive-days-reduce/","ch":"Database & SQL","tp":"Window Functions: ROW_NUMBER, RANK, LEAD, LAG","qn":6},{"id":"Q1050","t":"What is an index in SQL, the types (primary, unique, non-unique, composite, clustered vs non-clustered), and how to create one with `CREATE INDEX`","u":"/interview/database-sql/indexing/index-sql-types-primary-unique-non-unique-composite/","ch":"Database & SQL","tp":"Indexing","qn":5},{"id":"Q1051","t":"How indexing works internally: B-tree for range queries, hash index for exact match, clustered vs non-clustered","u":"/interview/database-sql/indexing/index-indexing-internally-b-tree-range-queries-hash-exact/","ch":"Database & SQL","tp":"Indexing","qn":6},{"id":"Q1052","t":"When does a database actually use an index: WHERE, JOIN, ORDER BY, GROUP BY","u":"/interview/database-sql/indexing/index-join-database-order-group/","ch":"Database & SQL","tp":"Indexing","qn":7},{"id":"Q1053","t":"When might a database ignore an index: functions on columns, leading wildcard, small tables, low selectivity, large result sets","u":"/interview/database-sql/indexing/index-wildcard-database-ignore-functions-columns-leading/","ch":"Database & SQL","tp":"Indexing","qn":8},{"id":"Q1054","t":"What is a sargable predicate, why wrapping an indexed column in a function defeats a range scan, and how to rewrite it","u":"/interview/database-sql/indexing/predicate-index-sargable-search-argument-able-wrapping/","ch":"Database & SQL","tp":"Indexing","qn":9},{"id":"Q1055","t":"What is the difference between a unique index and a clustered index","u":"/interview/database-sql/indexing/index-difference-unique-clustered/","ch":"Database & SQL","tp":"Indexing","qn":10},{"id":"Q1056","t":"Why are searches with primary keys faster: indexing, unique constraint, B-tree, clustered index, no extra sorting","u":"/interview/database-sql/indexing/index-searches-primary-keys-faster-indexing-unique/","ch":"Database & SQL","tp":"Indexing","qn":11},{"id":"Q1057","t":"What is the difference between a primary key and an index","u":"/interview/database-sql/indexing/index-difference-primary-key-constraint-uniqueness-not-null/","ch":"Database & SQL","tp":"Indexing","qn":12},{"id":"Q1058","t":"How does a composite index work and what is the left-prefix rule: why put equality columns before range columns","u":"/interview/database-sql/indexing/index-composite-multi-column-left-prefix-rule-serves-alone/","ch":"Database & SQL","tp":"Indexing","qn":13},{"id":"Q1059","t":"What is a covering index, and how does it enable an index-only scan","u":"/interview/database-sql/indexing/index-heap-covering-enable-index-only-scan-needed-columns/","ch":"Database & SQL","tp":"Indexing","qn":14},{"id":"Q1060","t":"What is a partial index, and when is it worth it","u":"/interview/database-sql/indexing/index-matching-condition-partial-indexing-rows-deleted-false/","ch":"Database & SQL","tp":"Indexing","qn":15},{"id":"Q1061","t":"Why can random UUIDv4 primary keys cause index fragmentation and slower inserts, and how do time-ordered IDs fix this","u":"/interview/database-sql/indexing/index-random-uuidv4-primary-keys-cause-fragmentation-slower/","ch":"Database & SQL","tp":"Indexing","qn":16},{"id":"Q1062","t":"When should you CHOOSE a UUID key vs AVOID it","u":"/interview/database-sql/indexing/distributed-sharding-index-choose-uuid-key-avoid/","ch":"Database & SQL","tp":"Indexing","qn":17},{"id":"Q1063","t":"What is the UUIDv7 structure, how does it give time ordering and index locality, and how does it compare to auto-increment, Snowflake, and UUIDv4","u":"/interview/database-sql/indexing/index-uuidv7-structure-48-bit-unix-millisecond-timestamp/","ch":"Database & SQL","tp":"Indexing","qn":18},{"id":"Q1154","t":"CREATE INDEX CONCURRENTLY and Versioned Migrations Over hibernate.ddl-auto","u":"/interview/database-sql/indexing/index-hibernate-build-create-concurrently-busy-table-manage/","ch":"Database & SQL","tp":"Indexing","qn":4},{"id":"Q1177","t":"Common SQL date/time functions and sargable date filtering","u":"/interview/database-sql/indexing/sql-postgresql-char-common-date-time-functions-now-current/","ch":"Database & SQL","tp":"Indexing","qn":1},{"id":"Q1178","t":"CAST / CONVERT, implicit type conversion, and index defeat","u":"/interview/database-sql/indexing/int-index-cast-expr-as-type-convert-implicit-conversion-db/","ch":"Database & SQL","tp":"Indexing","qn":2},{"id":"Q1181","t":"How to index and efficiently query JSON fields","u":"/interview/database-sql/indexing/index-path-json-fields-create-idx-tbl-gin-data-jsonb-ops/","ch":"Database & SQL","tp":"Indexing","qn":3},{"id":"Q1085","t":"What is ACID and what is BASE, and when do you use each model?","u":"/interview/database-sql/transactions-acid/acid-base-state-consistency-available-soft-eventual-model/","ch":"Database & SQL","tp":"Transactions & ACID","qn":4},{"id":"Q1151","t":"ACID Properties and Transaction Isolation Levels","u":"/interview/database-sql/transactions-acid/acid-consistency-isolation-properties-atomicity-durability/","ch":"Database & SQL","tp":"Transactions & ACID","qn":1},{"id":"Q1158","t":"SQL Transactions, COMMIT/ROLLBACK, and Autocommit Mode","u":"/interview/database-sql/transactions-acid/sql-rollback-mysql-postgresql-transaction-begin-dml-commit/","ch":"Database & SQL","tp":"Transactions & ACID","qn":2},{"id":"Q1159","t":"SQL Savepoints: Partial Rollback Within a Transaction","u":"/interview/database-sql/transactions-acid/savepoint-rollback-rest-retry-record-sql-sp1-undo-while/","ch":"Database & SQL","tp":"Transactions & ACID","qn":3},{"id":"Q1091","t":"What is the difference between a primary key and a unique key?","u":"/interview/database-sql/normalization-schema/difference-primary-key-unique/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":7},{"id":"Q1093","t":"Can a table have more than one primary key?","u":"/interview/database-sql/normalization-schema/table-primary-key-composite/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":3},{"id":"Q1094","t":"What is a foreign key, and what do ON DELETE and ON UPDATE clauses do?","u":"/interview/database-sql/normalization-schema/delete-foreign-key-update-clauses/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":6},{"id":"Q1120","t":"Differences Between 2NF and 3NF","u":"/interview/database-sql/normalization-schema/differences-2nf-3nf/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":4},{"id":"Q1121","t":"Normal Forms (1NF→2NF→3NF→BCNF) and Denormalization","u":"/interview/database-sql/normalization-schema/atomic-consistency-normal-forms-1nf-values-repeating-groups/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":5},{"id":"Q1156","t":"Denormalization as a Read-Optimization Strategy","u":"/interview/database-sql/normalization-schema/strategy-denormalization-as-read-optimization-store-data/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":2},{"id":"Q1180","t":"Common JSON functions and JSON vs normalized columns","u":"/interview/database-sql/normalization-schema/array-structured-common-json-functions-as-text-jsonb-agg/","ch":"Database & SQL","tp":"Normalization & Schema Design","qn":1},{"id":"Q1082","t":"How to decide between SQL and NoSQL, and the differences","u":"/interview/database-sql/sql-vs-nosql/sql-nosql-decide-database-differences/","ch":"Database & SQL","tp":"SQL vs NoSQL","qn":1},{"id":"Q1083","t":"Advantages of MongoDB over MySQL, and where each fits","u":"/interview/database-sql/sql-vs-nosql/mongodb-mysql-advantages-cases-fit-fits/","ch":"Database & SQL","tp":"SQL vs NoSQL","qn":2},{"id":"Q1069","t":"One slow query drags the whole app down: connection pool exhaustion","u":"/interview/database-sql/connection-pooling/scenario-database-query-fast-becomes-slow-starts-slowing/","ch":"Database & SQL","tp":"Connection Pooling","qn":6},{"id":"Q1086","t":"What is database connection pooling, why is it used, and how is it implemented (HikariCP, Apache DBCP)?","u":"/interview/database-sql/connection-pooling/database-connection-pooling-implemented-hikaricp-apache-dbcp/","ch":"Database & SQL","tp":"Connection Pooling","qn":1},{"id":"Q1087","t":"How would you build a database connection pool from scratch, and how does HikariCP improve on it?","u":"/interview/database-sql/connection-pooling/build-database-connection-pool-scratch-bounded-blockingqueue/","ch":"Database & SQL","tp":"Connection Pooling","qn":2},{"id":"Q1088","t":"Why is a DB connection pool bounded by the database's max_connections rather than by app load?","u":"/interview/database-sql/connection-pooling/load-db-connection-pool-bounded-database-max-connections/","ch":"Database & SQL","tp":"Connection Pooling","qn":3},{"id":"Q1089","t":"Why does an app report \"connection pool exhausted\" while the database sits mostly idle?","u":"/interview/database-sql/connection-pooling/long-timeout-application-report-connection-pool-exhausted/","ch":"Database & SQL","tp":"Connection Pooling","qn":4},{"id":"Q1090","t":"What does an external connection pooler like PgBouncer add on top of the application-side pool?","u":"/interview/database-sql/connection-pooling/external-connection-pooler-pgbouncer-add-top/","ch":"Database & SQL","tp":"Connection Pooling","qn":5},{"id":"Q1066","t":"How will you optimize a slow query","u":"/interview/database-sql/query-optimization/partitioning-caching-optimize-slow-query-indexing-rewrite/","ch":"Database & SQL","tp":"Query Optimization & EXPLAIN","qn":2},{"id":"Q1067","t":"Optimizing a very slow query on a 2 million row table: end to end","u":"/interview/database-sql/query-optimization/table-million-records-query-slow-optimize-performance/","ch":"Database & SQL","tp":"Query Optimization & EXPLAIN","qn":3},{"id":"Q1095","t":"Explain One-to-One, One-to-Many, Many-to-One, and Many-to-Many relationships in DB design.","u":"/interview/database-sql/query-optimization/design-one-to-one-one-to-many-many-to-one-many-to-many/","ch":"Database & SQL","tp":"Query Optimization & EXPLAIN","qn":1},{"id":"Q1160","t":"EXPLAIN vs EXPLAIN ANALYZE: Reading the Query Plan","u":"/interview/database-sql/query-optimization/postgresql-mysql-join-index-query-plan-optimizer-chose/","ch":"Database & SQL","tp":"Query Optimization & EXPLAIN","qn":4},{"id":"Q1161","t":"Reading a Query Plan for Common Performance Issues","u":"/interview/database-sql/query-optimization/index-predicate-join-sort-plan-common-issues-seq-scan/","ch":"Database & SQL","tp":"Query Optimization & EXPLAIN","qn":5},{"id":"Q1076","t":"The correct order of database scaling steps, and why sharding is last","u":"/interview/database-sql/sharding-partitioning/sharding-cache-cqrs-correct-order-database-scaling-steps/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":1},{"id":"Q1079","t":"What is database partitioning, and what are the types","u":"/interview/database-sql/sharding-partitioning/partitioning-sharding-database-types-horizontal-vertical/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":5},{"id":"Q1080","t":"Why partitioning does not automatically make queries faster: partition pruning and choosing a scheme","u":"/interview/database-sql/sharding-partitioning/partitioning-partition-list-pattern-automatically-queries/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":6},{"id":"Q1081","t":"How partitioning helps data lifecycle management at scale","u":"/interview/database-sql/sharding-partitioning/partitioning-help-data-lifecycle-management-scale-monthly/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":7},{"id":"Q1167","t":"Generating Globally-Unique IDs Across Shards","u":"/interview/database-sql/sharding-partitioning/generate-globally-unique-ids-across-shards-db-sequence-per/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":2},{"id":"Q1188","t":"Common sharding strategies and choosing a shard key","u":"/interview/database-sql/sharding-partitioning/sharding-common-strategies-hash-based-consistent-hashing/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":3},{"id":"Q1189","t":"Challenges of sharding","u":"/interview/database-sql/sharding-partitioning/sharding-saga-challenges-cross-shard-queries-joins/","ch":"Database & SQL","tp":"Sharding & Partitioning","qn":4},{"id":"Q1073","t":"Write-Ahead Logging (WAL) and how it shapes a ledger backup strategy","u":"/interview/database-sql/database-internals/logging-wal-log-replication-strategy-base-write-ahead/","ch":"Database & SQL","tp":"Database Internals: B-tree, MVCC, WAL","qn":1},{"id":"Q1122","t":"Purpose of Using Views in SQL","u":"/interview/database-sql/stored-procedures/sql-abstraction-purpose-views-simplify-queries-reusability/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":6},{"id":"Q1123","t":"Plain View vs Materialized View: and When to Use Each","u":"/interview/database-sql/stored-procedures/difference-plain-view-stored-query-computed-access-always/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":5},{"id":"Q1125","t":"Stored Procedures: Benefits and Types (Input/Output Parameters)","u":"/interview/database-sql/stored-procedures/stored-procedure-benefits-types-params-procedures-parameters/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":3},{"id":"Q1126","t":"(Scenario) Stored Procedure: Two IN Params, Fetch-Into-Variable, Update, Return Status","u":"/interview/database-sql/stored-procedures/sql-transactional-scenario-stored-procedure-accepts/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":2},{"id":"Q1127","t":"Triggers (BEFORE/AFTER/INSTEAD OF): Use Cases, Advantages, Disadvantages","u":"/interview/database-sql/stored-procedures/trigger-instead-cases-advantages-disadvantages-triggers/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":4},{"id":"Q1176","t":"Common SQL string functions and cross-database syntax differences","u":"/interview/database-sql/stored-procedures/sql-string-char-mysql-postgresql-common-functions-concat/","ch":"Database & SQL","tp":"Stored Procedures, Views & Triggers","qn":1},{"id":"Q1153","t":"Zero-Downtime Schema Change on a Large Table: Expand-and-Contract","u":"/interview/database-sql/migrations/pattern-null-long-change-schema-large-production-table/","ch":"Database & SQL","tp":"Migrations & Schema Changes","qn":1},{"id":"Q1064","t":"What are the UUIDv7 caveats","u":"/interview/database-sql/practical-sql/distributed-binary-char-uuidv7-caveats-sequence-global/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":23},{"id":"Q1065","t":"How do you measure database performance","u":"/interview/database-sql/practical-sql/cache-measure-database-performance-query-time-throughput/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":11},{"id":"Q1068","t":"A query that was 50ms suddenly takes 10 seconds: troubleshoot from evidence","u":"/interview/database-sql/practical-sql/index-scenario-query-normally-50-ms-suddenly-10-seconds/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":12},{"id":"Q1070","t":"Database CPU hits 100% during peak traffic: how do you respond","u":"/interview/database-sql/practical-sql/scenario-database-cpu-hits-100-peak-traffic-respond-identify/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":13},{"id":"Q1071","t":"Why LIMIT/OFFSET pagination gets slower on deep pages, and keyset pagination","u":"/interview/database-sql/practical-sql/offset-pagination-log-limit-slower-deep-pages-db-scans/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":34},{"id":"Q1072","t":"OLTP versus OLAP, and why not to run analytics on your OLTP database","u":"/interview/database-sql/practical-sql/postgresql-difference-oltp-row-oriented-stores-fast/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":3},{"id":"Q1075","t":"How would you design a scalable database, and what challenges do you foresee","u":"/interview/database-sql/practical-sql/design-scalable-consistency-database-challenges-shard/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":2},{"id":"Q1106","t":"The EXISTS Operator, EXISTS vs IN, and NOT EXISTS","u":"/interview/database-sql/practical-sql/exists-operator/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":7},{"id":"Q1110","t":"The NOT IN + NULL Trap and IN vs EXISTS Performance","u":"/interview/database-sql/practical-sql/null-col-subquery-return-rows-contains-because-unknown/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":19},{"id":"Q1111","t":"Logical Execution Order of SQL Clauses","u":"/interview/database-sql/practical-sql/sql-join-offset-logical-execution-order-clauses-group-having/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":20},{"id":"Q1115","t":"Deterministic Tie-Breakers in Latest-Row-Per-Group Queries","u":"/interview/database-sql/practical-sql/latest-row-per-group-query-include-deterministic-tie-breaker/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":18},{"id":"Q1118","t":"VARCHAR Maximum Limit and BYTE vs CHAR Length Semantics","u":"/interview/database-sql/practical-sql/byte-char-max-limit-varchar-difference-length-semantics/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":30},{"id":"Q1119","t":"PostgreSQL Equivalent of Oracle's CLOB Data Type (TEXT)","u":"/interview/database-sql/practical-sql/postgresql-equivalent-oracle-clob-data-type-text/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":32},{"id":"Q1124","t":"Dimensional Modeling (Star vs Snowflake), OLTP vs Analytics, Logical vs Physical Model","u":"/interview/database-sql/practical-sql/star-abstract-partitioning-dimensional-modeling-analytics/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":28},{"id":"Q1128","t":"Cursors: What They Are, When to Use Them, and Why They Are a Last Resort","u":"/interview/database-sql/practical-sql/cursor-row-by-row-processing-set-based-query-cannot-express/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":25},{"id":"Q1129","t":"SQL Injection: Consequences and Prevention","u":"/interview/database-sql/practical-sql/sql-injection-consequences-prevent-prepared-statements/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":29},{"id":"Q1132","t":"Database Lock Types (Shared, Exclusive, Intent) and Lock Escalation","u":"/interview/database-sql/practical-sql/database-lock-types-shared-allowed-concurrently-exclusive/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":16},{"id":"Q1133","t":"Deadlocks: What Happens, How InnoDB Handles Them, and Why You Must Retry","u":"/interview/database-sql/practical-sql/exactly-deadlock-retry-happens-transactions-locks-row-waits/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":17},{"id":"Q1134","t":"Handling Time Zones for Queries Meant to Run at a Specific Time","u":"/interview/database-sql/practical-sql/handle-time-zones-queries-meant-run-specific-store-utc/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":10},{"id":"Q1135","t":"Setting a Default Time Zone for the Entire Application","u":"/interview/database-sql/practical-sql/spring-docker-default-time-zone-entire-application-timezone/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":4},{"id":"Q1136","t":"Preferred HTTP Method for Passing Sensitive Data (Aadhaar/PAN)","u":"/interview/database-sql/practical-sql/http-post-prefer-passing-sensitive-data-aadhaar-pan-body-url/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":33},{"id":"Q1141","t":"Max Salary per City, Total Salary per Department, and Second-Highest Salary","u":"/interview/database-sql/practical-sql/salary-employee-id-name-city-department-table-max-per-total/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":9},{"id":"Q1143","t":"Duplicate Customer Emails and Why App-Level Checks Need a DB UNIQUE Constraint","u":"/interview/database-sql/practical-sql/query-duplicate-customer-emails-group-email-having-count/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":21},{"id":"Q1152","t":"PACELC Theorem: Extending CAP to the Healthy-System Case","u":"/interview/database-sql/practical-sql/cap-partition-consistency-system-postgresql-replication/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":31},{"id":"Q1166","t":"Database Sequences Versus Identity/Auto-Increment Columns","u":"/interview/database-sql/practical-sql/optional-caching-database-sequence-create-nextval-differ/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":26},{"id":"Q1168","t":"The SQL Constraint Types","u":"/interview/database-sql/practical-sql/sql-null-constraint-types-primary-key-unique-default-check/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":5},{"id":"Q1169","t":"The CHECK Constraint: DB-Level Domain Rules","u":"/interview/database-sql/practical-sql/salary-sql-race-check-constraint-status-active-inactive-db/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":6},{"id":"Q1170","t":"Adding NOT NULL to a Column That Already Contains NULLs","u":"/interview/database-sql/practical-sql/null-happens-add-constraint-column-already-contains-nulls/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":24},{"id":"Q1175","t":"Example: top-3 highest-paid per department using LATERAL","u":"/interview/database-sql/practical-sql/salary-department-top-3-highest-paid-employees-lateral/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":8},{"id":"Q1179","t":"How modern databases handle JSON (json vs jsonb, MySQL JSON)","u":"/interview/database-sql/practical-sql/postgresql-binary-mysql-modern-databases-handle-json-jsonb/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":1},{"id":"Q1185","t":"Types of database backups: logical vs physical vs incremental","u":"/interview/database-sql/practical-sql/types-database-backups-logical-pg-dump-mysqldump-portable/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":22},{"id":"Q1186","t":"Point-in-Time Recovery (PITR)","u":"/interview/database-sql/practical-sql/base-wal-point-in-time-recovery-pitr-restore-backup-replay/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":14},{"id":"Q1187","t":"Designing a production backup strategy","u":"/interview/database-sql/practical-sql/design-strategy-wal-production-backup-frequency-daily-full/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":15},{"id":"Q1190","t":"Consistent hashing and virtual nodes","u":"/interview/database-sql/practical-sql/consistent-hashing-minimize-data-movement-adding-removing/","ch":"Database & SQL","tp":"Practical SQL Queries","qn":27},{"id":"Q1149","t":"CAP Theorem: Why the Real Choice is CP vs AP and How It Shapes Microservices","u":"/interview/database-sql/advanced-database/cap-consistency-partition-microservices-design-theorem/","ch":"Database & SQL","tp":"Advanced: Replication, Consistency, CAP","qn":1},{"id":"Q1150","t":"Why Consistency Decisions Should Start From the Business Invariant","u":"/interview/database-sql/advanced-database/consistency-pick-availability-oversimplification-decision/","ch":"Database & SQL","tp":"Advanced: Replication, Consistency, CAP","qn":5},{"id":"Q1182","t":"Synchronous vs asynchronous replication","u":"/interview/database-sql/advanced-database/replication-consistency-difference-synchronous-primary-waits/","ch":"Database & SQL","tp":"Advanced: Replication, Consistency, CAP","qn":4},{"id":"Q1183","t":"Physical/streaming vs logical replication","u":"/interview/database-sql/advanced-database/streaming-replication-wal-binary-difference-physical/","ch":"Database & SQL","tp":"Advanced: Replication, Consistency, CAP","qn":3},{"id":"Q1184","t":"Common replication topologies and when to use each","u":"/interview/database-sql/advanced-database/replication-common-topologies-single-primary-replicas/","ch":"Database & SQL","tp":"Advanced: Replication, Consistency, CAP","qn":2},{"id":"Q1200","t":"What does REST stand for, its core constraints, and how a RESTful API differs from RPC-style HTTP","u":"/interview/rest-api/rest-fundamentals/rest-state-system-interface-optional-hateoas-api-http-stand/","ch":"REST API & Web","tp":"REST Fundamentals","qn":1},{"id":"Q1201","t":"What are the roles of the HTTP methods in RESTful APIs (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)","u":"/interview/rest-api/rest-fundamentals/http-post-patch-delete-roles-methods-restful-apis-head/","ch":"REST API & Web","tp":"REST Fundamentals","qn":2},{"id":"Q1202","t":"What are idempotent methods, and which HTTP methods are idempotent (and why)","u":"/interview/rest-api/http-methods/http-idempotent-methods/","ch":"REST API & Web","tp":"HTTP Methods","qn":1},{"id":"Q1203","t":"What is the difference between PUT and PATCH","u":"/interview/rest-api/http-methods/patch-difference/","ch":"REST API & Web","tp":"HTTP Methods","qn":4},{"id":"Q1204","t":"Explain the PATCH method and JSON Patch (RFC 6902)","u":"/interview/rest-api/http-methods/patch-json-rfc-6902/","ch":"REST API & Web","tp":"HTTP Methods","qn":2},{"id":"Q1205","t":"What should a GET call return if no entity is found (404 vs 200 with an empty array vs 204)","u":"/interview/rest-api/http-methods/array-call-return-entity-found-404-200-empty-204/","ch":"REST API & Web","tp":"HTTP Methods","qn":5},{"id":"Q706","t":"REST API: error handling, pagination, versioning, idempotency, content negotiation","u":"/interview/rest-api/http-methods/rest-api-structured-pagination-offset-versioning-path-http/","ch":"REST API & Web","tp":"HTTP Methods","qn":3},{"id":"Q1206","t":"What are the common HTTP status codes and their meanings","u":"/interview/rest-api/status-codes/http-common-status-codes-meanings/","ch":"REST API & Web","tp":"HTTP Status Codes","qn":3},{"id":"Q1207","t":"Explain the HTTP status code classes (1xx–5xx) and tricky cases","u":"/interview/rest-api/status-codes/http-post-status-classes-1xx-5xx-tricky-cases-422-400-204/","ch":"REST API & Web","tp":"HTTP Status Codes","qn":2},{"id":"Q1208","t":"What is HTTP 403, and when is it used vs 401 (403 = authenticated but forbidden; 401 = not authenticated)","u":"/interview/rest-api/status-codes/http-403-401-authenticated-forbidden/","ch":"REST API & Web","tp":"HTTP Status Codes","qn":4},{"id":"Q1209","t":"How do you design REST error responses properly, and why is returning 200 OK with {\"success\": false} an anti-pattern","u":"/interview/rest-api/status-codes/design-rest-retry-http-stack-try-catch-error-responses/","ch":"REST API & Web","tp":"HTTP Status Codes","qn":1},{"id":"Q1210","t":"What is the RFC 9457 \"Problem Details\" standard for HTTP errors","u":"/interview/rest-api/error-handling/http-spring-rfc-9457-problem-details-standard-errors/","ch":"REST API & Web","tp":"Error Handling & Problem Details","qn":1},{"id":"Q1211","t":"What is an ETag and how do conditional requests work","u":"/interview/rest-api/caching-etag/etag-http-conditional-requests-server-returns-content-hash/","ch":"REST API & Web","tp":"Caching & ETags","qn":1},{"id":"Q1218","t":"Explain HATEOAS and its role in REST APIs, with Spring HATEOAS","u":"/interview/rest-api/pagination/hateoas-rest-spring-role-apis-hypermedia-links-guiding/","ch":"REST API & Web","tp":"Pagination, Filtering & HATEOAS","qn":4},{"id":"Q1226","t":"How do you design pagination in a REST API and why does offset pagination break at deep pages","u":"/interview/rest-api/pagination/design-pagination-rest-api-offset-query-parameter-based-page/","ch":"REST API & Web","tp":"Pagination, Filtering & HATEOAS","qn":1},{"id":"Q1227","t":"How do you design filtering and sorting in a REST API and why whitelist fields","u":"/interview/rest-api/pagination/design-rest-api-sort-sql-filtering-sorting-status-active/","ch":"REST API & Web","tp":"Pagination, Filtering & HATEOAS","qn":2},{"id":"Q1229","t":"What is HATEOAS in practice and why do most real-world REST APIs skip it","u":"/interview/rest-api/pagination/hateoas-rest-practice-real-world-apis-skip-complexity/","ch":"REST API & Web","tp":"Pagination, Filtering & HATEOAS","qn":3},{"id":"Q1215","t":"Why should request and response use separate DTOs, and where should entity↔DTO conversion live","u":"/interview/rest-api/versioning/service-controller-request-response-separate-dtos/","ch":"REST API & Web","tp":"API Versioning & Content Negotiation","qn":1},{"id":"Q1212","t":"What are DTOs and why are they used (decoupling, security, data shaping, performance, API evolution)","u":"/interview/rest-api/api-design/api-dtos-decoupling-security-data-shaping-performance/","ch":"REST API & Web","tp":"API Design Best Practices","qn":2},{"id":"Q1213","t":"What is the difference between an Entity, a DTO, and a POJO, and when do you use each","u":"/interview/rest-api/api-design/api-difference-entity-jpa-managed-maps-table-never-exposed/","ch":"REST API & Web","tp":"API Design Best Practices","qn":3},{"id":"Q1214","t":"Why should you NOT expose a JPA entity directly in a REST API","u":"/interview/rest-api/api-design/jpa-rest-api-versioning-expose-entity-directly-leaks-fields/","ch":"REST API & Web","tp":"API Design Best Practices","qn":4},{"id":"Q1216","t":"How does MapStruct help with entity↔DTO mapping compared to manual mapping or ModelMapper","u":"/interview/rest-api/api-design/mapstruct-help-entity-dto-mapping-compared-manual/","ch":"REST API & Web","tp":"API Design Best Practices","qn":5},{"id":"Q1217","t":"How does Jackson @JsonView let a single DTO/entity serialize different field subsets per endpoint","u":"/interview/rest-api/api-design/controller-jackson-jsonview-let-single-dto-entity-serialize/","ch":"REST API & Web","tp":"API Design Best Practices","qn":6},{"id":"Q1219","t":"How do you secure REST APIs","u":"/interview/rest-api/api-design/rest-jwt-logging-secure-apis-https-oauth2-validation-rate/","ch":"REST API & Web","tp":"API Design Best Practices","qn":16},{"id":"Q1220","t":"What is an HTTP Parameter Pollution (HPP) attack and how do you remediate it","u":"/interview/rest-api/api-design/http-gateway-parameter-pollution-hpp-attack-supplying/","ch":"REST API & Web","tp":"API Design Best Practices","qn":19},{"id":"Q1221","t":"How do you make an API audit-proof so every mutation including failed attempts is traceable","u":"/interview/rest-api/api-design/api-immutable-log-audit-proof-mutation-including-failed/","ch":"REST API & Web","tp":"API Design Best Practices","qn":17},{"id":"Q1222","t":"How do you convert JSON to XML and vice versa","u":"/interview/rest-api/api-design/convert-json-xml-vice-versa-org-jackson-xmlmapper/","ch":"REST API & Web","tp":"API Design Best Practices","qn":12},{"id":"Q1223","t":"How do you compare two JSON strings logically rather than as raw strings","u":"/interview/rest-api/api-design/map-compare-json-strings-logically-parse-jsonnode/","ch":"REST API & Web","tp":"API Design Best Practices","qn":13},{"id":"Q1224","t":"What is the difference between cookies and sessions, and when do you use each","u":"/interview/rest-api/api-design/state-difference-cookies-small-kb-data-stored-client-side/","ch":"REST API & Web","tp":"API Design Best Practices","qn":20},{"id":"Q1225","t":"What is the difference between an API and an SDK","u":"/interview/rest-api/api-design/api-interface-service-difference-contract-exposes-sdk-client/","ch":"REST API & Web","tp":"API Design Best Practices","qn":7},{"id":"Q1228","t":"What are the common REST API design mistakes and what does a well-designed API look like","u":"/interview/rest-api/api-design/rest-api-design-versioning-pagination-list-common-mistakes/","ch":"REST API & Web","tp":"API Design Best Practices","qn":8},{"id":"Q1230","t":"What is GraphQL and when should you use GraphQL vs REST","u":"/interview/rest-api/api-design/exactly-rest-graphql-query-language-client-asks-fields-needs/","ch":"REST API & Web","tp":"API Design Best Practices","qn":9},{"id":"Q1231","t":"What is gRPC and when should you use gRPC vs REST","u":"/interview/rest-api/api-design/grpc-binary-http-streaming-rest-high-performance-rpc/","ch":"REST API & Web","tp":"API Design Best Practices","qn":10},{"id":"Q1232","t":"What are the four gRPC communication patterns","u":"/interview/rest-api/api-design/grpc-streaming-stream-communication-patterns-unary-request/","ch":"REST API & Web","tp":"API Design Best Practices","qn":11},{"id":"Q1233","t":"What is the difference between REST vs gRPC vs GraphQL","u":"/interview/rest-api/api-design/rest-http-grpc-binary-difference-text-json-human-readable/","ch":"REST API & Web","tp":"API Design Best Practices","qn":21},{"id":"Q1234","t":"What is the difference between Short Polling, Long Polling, SSE, and WebSocket","u":"/interview/rest-api/api-design/long-http-sse-stream-websocket-difference-short-polling/","ch":"REST API & Web","tp":"API Design Best Practices","qn":14},{"id":"Q1235","t":"When should you use WebSocket vs SSE","u":"/interview/rest-api/api-design/websocket-sse-chat-gaming-collaborative-editing-two-way-live/","ch":"REST API & Web","tp":"API Design Best Practices","qn":15},{"id":"Q1236","t":"What is the WebSocket handshake","u":"/interview/rest-api/api-design/websocket-http-handshake-starts-as-request-upgrade-header/","ch":"REST API & Web","tp":"API Design Best Practices","qn":22},{"id":"Q716","t":"Design Patterns: SOLID, Strategy, Builder, Observer, Circuit Breaker, DTO","u":"/interview/rest-api/api-design/design-service-strategy-pattern-builder-observer-circuit/","ch":"REST API & Web","tp":"API Design Best Practices","qn":18},{"id":"Q729","t":"Advanced Java: sealed classes, records, pattern matching, modules, reflection","u":"/interview/rest-api/api-design/sealed-pattern-matching-reflection-advanced-classes-records/","ch":"REST API & Web","tp":"API Design Best Practices","qn":1},{"id":"Q1242","t":"Explain the five SOLID principles with a violation and fix for each","u":"/interview/design-patterns-lld/solid/interface-throw-abstraction-solid-principles-concrete/","ch":"Design Patterns & LLD","tp":"SOLID Principles","qn":2},{"id":"Q1253","t":"What is the Strategy pattern and how does it enforce the Open/Closed Principle","u":"/interview/design-patterns-lld/solid/strategy-pattern-appear-standard-library-enforce-open-closed/","ch":"Design Patterns & LLD","tp":"SOLID Principles","qn":3},{"id":"Q1261","t":"Each SOLID principle with violations and fixes, the SRP–DIP clash, and SOLID over-engineering","u":"/interview/design-patterns-lld/solid/solid-principle-violations-fixes-srp-dip-clash-refactoring/","ch":"Design Patterns & LLD","tp":"SOLID Principles","qn":1},{"id":"Q1272","t":"Why \"don't over-engineer\" is a core LLD skill, and answering \"how would you extend this?\" with the Open/Closed Principle","u":"/interview/design-patterns-lld/solid/don-over-engineer-core-lld-skill-avoid-forcing-patterns-god/","ch":"Design Patterns & LLD","tp":"SOLID Principles","qn":4},{"id":"Q2551","t":"Which SOLID principles matter most in LLD?","u":"/interview/design-patterns-lld/solid/solid-principles-matter-lld-single-responsibility-job-open/","ch":"Design Patterns & LLD","tp":"SOLID Principles","qn":5},{"id":"Q1262","t":"The DRY (\"Don't Repeat Yourself\") principle, how to follow it, and applying it carefully in microservices","u":"/interview/design-patterns-lld/principles/microservices-dry-don-repeat-yourself-principle-follow/","ch":"Design Patterns & LLD","tp":"DRY, KISS, YAGNI & Other Principles","qn":1},{"id":"Q1263","t":"KISS and YAGNI principles, balancing them against DRY, and real YAGNI violations","u":"/interview/design-patterns-lld/principles/abstraction-service-broker-rest-kiss-keep-simple-stupid/","ch":"Design Patterns & LLD","tp":"DRY, KISS, YAGNI & Other Principles","qn":2},{"id":"Q1264","t":"How to create an immutable class in Java (final class, private final fields, no setters, defensive copies)","u":"/interview/design-patterns-lld/principles/immutable-final-create-private-fields-setters-defensive/","ch":"Design Patterns & LLD","tp":"DRY, KISS, YAGNI & Other Principles","qn":4},{"id":"Q1265","t":"Time complexity and space complexity, with common Big-O examples","u":"/interview/design-patterns-lld/principles/time-complexity-space-common-big-o-examples/","ch":"Design Patterns & LLD","tp":"DRY, KISS, YAGNI & Other Principles","qn":3},{"id":"Q1243","t":"Explain Factory Method, Abstract Factory, Builder, Prototype, and when each is used","u":"/interview/design-patterns-lld/creational/factory-abstract-builder-prototype/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":2},{"id":"Q1244","t":"Explain the Singleton pattern and the thread-safe ways to implement it","u":"/interview/design-patterns-lld/creational/singleton-pattern-synchronized-volatile-enum-thread-safe/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":1},{"id":"Q1245","t":"Explain the Factory design pattern with benefits and use cases","u":"/interview/design-patterns-lld/creational/factory-design-pattern-interface-product-concrete-products/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":6},{"id":"Q1246","t":"What is the difference between the Factory and Abstract Factory patterns","u":"/interview/design-patterns-lld/creational/factory-abstract-difference-patterns/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":7},{"id":"Q1247","t":"Explain the Builder design pattern and how method chaining works","u":"/interview/design-patterns-lld/creational/builder-design-pattern-solves-telescoping-constructor/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":4},{"id":"Q1248","t":"What is the Prototype design pattern, its use cases, and example","u":"/interview/design-patterns-lld/creational/prototype-design-pattern-clone-existing-objects-cases/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":5},{"id":"Q1249","t":"What is the Singleton pattern and how to write a thread-safe lazy implementation","u":"/interview/design-patterns-lld/creational/singleton-pattern-synchronized-volatile-enum-thread-safe-2/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":8},{"id":"Q1250","t":"How do you stop cloning from breaking a Singleton","u":"/interview/design-patterns-lld/creational/singleton-clone-throw-stop-cloning-breaking-override/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":9},{"id":"Q1266","t":"Prototype pattern: the shallow-clone trap, and why a copy constructor beats Cloneable (Bloch's criticism)","u":"/interview/design-patterns-lld/creational/prototype-pattern-cloneable-shallow-clone-trap-copy/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":3},{"id":"Q2564","t":"Design using the Singleton pattern","u":"/interview/design-patterns-lld/creational/singleton-design-pattern-logger-config-manager-database/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":12},{"id":"Q2565","t":"Design using the Factory Method pattern","u":"/interview/design-patterns-lld/creational/factory-design-pattern-create-different-vehicle-types/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":11},{"id":"Q2570","t":"Design using the Builder pattern","u":"/interview/design-patterns-lld/creational/builder-configuration-design-pattern-construct-complex/","ch":"Design Patterns & LLD","tp":"Creational: Singleton, Factory, Builder, Prototype","qn":10},{"id":"Q1251","t":"Explain the structural patterns Adapter, Decorator, Composite, Proxy, Facade, Bridge, and Flyweight","u":"/interview/design-patterns-lld/structural/adapter-decorator-proxy-facade-structural-patterns-composite/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":2},{"id":"Q1267","t":"How Java I/O streams exemplify the Decorator pattern and avoid subclass explosion","u":"/interview/design-patterns-lld/structural/decorator-pattern-datainputstream-wrapping/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":3},{"id":"Q1268","t":"Proxy pattern types (Virtual, Protection, Caching, Dynamic, Remote) and how Spring AOP uses dynamic proxies","u":"/interview/design-patterns-lld/structural/proxy-pattern-caching-dynamic-jdk-spring-types-virtual-lazy/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":1},{"id":"Q1269","t":"Facade pattern vs Adapter pattern: a simple interface over a subsystem vs making incompatible interfaces match","u":"/interview/design-patterns-lld/structural/facade-pattern-interface-adapter-difference-simple-complex/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":4},{"id":"Q2569","t":"Design using the Decorator pattern","u":"/interview/design-patterns-lld/structural/decorator-base-design-pattern-add-toppings-pizza-features/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":6},{"id":"Q2571","t":"Design using the Adapter pattern","u":"/interview/design-patterns-lld/structural/adapter-gateway-system-interface-design-pattern-integrate/","ch":"Design Patterns & LLD","tp":"Structural: Adapter, Decorator, Proxy, Facade","qn":5},{"id":"Q1252","t":"Explain the behavioral patterns Observer, Command, Iterator, State, Template Method, Visitor, Mediator, and Memento","u":"/interview/design-patterns-lld/behavioral/behavioral-observer-command-iterator-state-template-patterns/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":1},{"id":"Q1254","t":"Scenario: add OTP, CAPTCHA, and password login without a new endpoint using Strategy","u":"/interview/design-patterns-lld/behavioral/api-design-strategy-pattern-interface-factory-spring-map/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":5},{"id":"Q1255","t":"What is the Observer pattern, and what is its memory-leak risk","u":"/interview/design-patterns-lld/behavioral/observer-pattern-memory-leak-risk/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":7},{"id":"Q1256","t":"What is the Command pattern and how does it enable undo, queueing, logging, and macros","u":"/interview/design-patterns-lld/behavioral/command-pattern-interface-logging-encapsulate-action-as/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":6},{"id":"Q1257","t":"Chain of Responsibility pattern: passing a request along a chain of handlers (approval-escalation example)","u":"/interview/design-patterns-lld/behavioral/design-pattern-chain-responsibility-request-passed-along/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":2},{"id":"Q1258","t":"Circuit Breaker pattern: Closed, Open, Half-Open states, tuning, pitfalls, and when it is harmful","u":"/interview/design-patterns-lld/behavioral/circuit-breaker-pattern-kafka-states-closed-open-half-open/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":3},{"id":"Q1271","t":"Modeling state and behavior cleanly: guarded enum transitions vs the State pattern, inheritance vs composition, and thin services","u":"/interview/design-patterns-lld/behavioral/state-pattern-inheritance-service-enum-lld-model-behavior/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":4},{"id":"Q2566","t":"Design using the Strategy pattern","u":"/interview/design-patterns-lld/behavioral/strategy-design-pattern-different-pricing-strategies-sorting/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":12},{"id":"Q2567","t":"Design using the Observer pattern","u":"/interview/design-patterns-lld/behavioral/observer-design-pattern-notify-observers-order-status/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":10},{"id":"Q2568","t":"Design using the State pattern","u":"/interview/design-patterns-lld/behavioral/state-design-pattern-vending-machine-states-order-status/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":11},{"id":"Q2572","t":"Design using the Command pattern","u":"/interview/design-patterns-lld/behavioral/command-queue-design-pattern-undo-redo-operations-commands/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":9},{"id":"Q2573","t":"Design using the Chain of Responsibility pattern","u":"/interview/design-patterns-lld/behavioral/design-pattern-chain-responsibility-request-validation/","ch":"Design Patterns & LLD","tp":"Behavioral: Strategy, Observer, Command, State, Template","qn":8},{"id":"Q1259","t":"Saga pattern: local transactions, compensations, choreography vs orchestration, and long-running consistency","u":"/interview/design-patterns-lld/circuit-saga/saga-pattern-consistency-depth-local-transactions/","ch":"Design Patterns & LLD","tp":"Circuit Breaker & Saga","qn":1},{"id":"Q1241","t":"Where does Spring and the JDK already use GoF design patterns","u":"/interview/design-patterns-lld/patterns-in-spring/spring-jdk-design-factory-singleton-bean-proxy-transactional/","ch":"Design Patterns & LLD","tp":"Patterns in Spring & JDK","qn":1},{"id":"Q1260","t":"Inversion of Control (IoC), how Spring implements it, DI vs Dependency Lookup, and the three DI types","u":"/interview/design-patterns-lld/patterns-in-spring/spring-inversion-control-ioc-implements-dependency-injection/","ch":"Design Patterns & LLD","tp":"Patterns in Spring & JDK","qn":2},{"id":"Q1270","t":"How to approach a low-level design question (identify actors, extract entities, assign responsibilities, apply patterns)","u":"/interview/design-patterns-lld/lld-approach/design-system-approach-low-level-parking-lot-car-rental/","ch":"Design Patterns & LLD","tp":"LLD Approach & Modeling","qn":1},{"id":"Q2550","t":"What are the steps to approach a Low-Level Design problem?","u":"/interview/design-patterns-lld/lld-approach/design-steps-clarify-requirements-cases-identify-main/","ch":"Design Patterns & LLD","tp":"LLD Approach & Modeling","qn":2},{"id":"Q2552","t":"Design a Parking Lot","u":"/interview/design-patterns-lld/lld-problems/design-system-parking-lot-vehicle-types-car-bike-truck/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":11},{"id":"Q2553","t":"Design an Elevator System","u":"/interview/design-patterns-lld/lld-problems/design-system-elevator-multiple-elevators-request-handling/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":12},{"id":"Q2554","t":"Design a Library Management System","u":"/interview/design-patterns-lld/lld-problems/design-system-search-library-management-book-member/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":5},{"id":"Q2555","t":"Design a Chess Game","u":"/interview/design-patterns-lld/lld-problems/design-chess-game-board-piece-king-queen-rook-bishop-knight/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":1},{"id":"Q2556","t":"Design a Vending Machine","u":"/interview/design-patterns-lld/lld-problems/design-state-vending-machine-product-slot-coin-cash-handling/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":8},{"id":"Q2557","t":"Design a Hotel Booking System","u":"/interview/design-patterns-lld/lld-problems/design-system-search-hotel-booking-room-types-reservation/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":4},{"id":"Q2558","t":"Design a Food Delivery App (like Swiggy/Zomato)","u":"/interview/design-patterns-lld/lld-problems/design-state-food-delivery-app-swiggy-zomato-user-restaurant/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":3},{"id":"Q2559","t":"Design a Movie Ticket Booking System (like BookMyShow)","u":"/interview/design-patterns-lld/lld-problems/design-system-movie-ticket-booking-bookmyshow-cinema-screen/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":7},{"id":"Q2560","t":"Design an ATM Machine","u":"/interview/design-patterns-lld/lld-problems/design-atm-machine-card-account-transaction-types-withdraw/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":9},{"id":"Q2561","t":"Design a File System","u":"/interview/design-patterns-lld/lld-problems/design-file-system-path-search-delete-directory-contains/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":2},{"id":"Q2562","t":"Design a Logging Framework","u":"/interview/design-patterns-lld/lld-problems/design-logging-file-singleton-thread-framework-logger/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":6},{"id":"Q2563","t":"Design an Online Shopping Cart","u":"/interview/design-patterns-lld/lld-problems/design-online-shopping-cart-user-product-cartitem-coupon/","ch":"Design Patterns & LLD","tp":"LLD Problems: Parking Lot, Elevator, Chess, etc.","qn":10},{"id":"Q1240","t":"What are design patterns, and what are the three GoF categories","u":"/interview/design-patterns-lld/overview/design-behavioral-patterns-gof-categories-creational/","ch":"Design Patterns & LLD","tp":"Design Patterns Overview","qn":1},{"id":"Q1280","t":"Anonymous classes: what they are, when to use them, their restrictions, and how they compare to lambdas","u":"/interview/advanced-java/anonymous-classes/static-base-anonymous-restrictions-constructor-members/","ch":"Advanced Java","tp":"Anonymous Classes","qn":1},{"id":"Q1281","t":"Can an anonymous class extend a class and implement an interface simultaneously?","u":"/interview/advanced-java/anonymous-classes/interface-anonymous-extend-implement-simultaneously/","ch":"Advanced Java","tp":"Anonymous Classes","qn":2},{"id":"Q1282","t":"What does `this` refer to inside an anonymous class, and how do you reference the enclosing instance?","u":"/interview/advanced-java/anonymous-classes/refer-inside-anonymous-reference-enclosing-instance/","ch":"Advanced Java","tp":"Anonymous Classes","qn":3},{"id":"Q1283","t":"Can an anonymous class access effectively-final local variables, and why the restriction?","u":"/interview/advanced-java/anonymous-classes/anonymous-access-effectively-final-local-variables/","ch":"Advanced Java","tp":"Anonymous Classes","qn":4},{"id":"Q1284","t":"Hidden classes (JEP 371): what they are, why introduced, how created with `defineHiddenClass`, and how they replace `Unsafe.defineAnonymousClass()`","u":"/interview/advanced-java/anonymous-classes/hidden-classes-jep-371-introduced-created-definehiddenclass/","ch":"Advanced Java","tp":"Anonymous Classes","qn":5},{"id":"Q1298","t":"Can a sealed class/interface be local or anonymous: why not?","u":"/interview/advanced-java/anonymous-classes/sealed-interface-local-anonymous/","ch":"Advanced Java","tp":"Anonymous Classes","qn":6},{"id":"Q1285","t":"`ClassOption.WEAK` vs `STRONG` for hidden-class GC, and what `NESTMATE` enables","u":"/interview/advanced-java/hidden-classes/collection-gc-classoption-weak-strong-affect-hidden-class/","ch":"Advanced Java","tp":"Hidden Classes","qn":1},{"id":"Q1286","t":"Hidden classes vs dynamically generated `Proxy` classes, and their behaviour under JPMS module restrictions","u":"/interview/advanced-java/hidden-classes/proxy-hidden-classes-compare-dynamically-generated-behave/","ch":"Advanced Java","tp":"Hidden Classes","qn":2},{"id":"Q1287","t":"Sealed classes/interfaces: what they are, the `permits` rules, and what permitted subclasses must be","u":"/interview/advanced-java/sealed-classes/sealed-interface-final-permits-rules-permitted-subclasses/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":11},{"id":"Q1288","t":"Can a sealed class permit a subclass in a different package (module vs non-module rules)?","u":"/interview/advanced-java/sealed-classes/sealed-permit-subclass-different-package-module-non-module/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":12},{"id":"Q1290","t":"Can a sealed class be abstract, and what is the impact on inheritance?","u":"/interview/advanced-java/sealed-classes/sealed-abstract-inheritance-impact/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":2},{"id":"Q1292","t":"Can a sealed class permit itself?","u":"/interview/advanced-java/sealed-classes/sealed-permit-itself/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":3},{"id":"Q1293","t":"What happens if a permitted subclass has no `final`/`sealed`/`non-sealed` modifier?","u":"/interview/advanced-java/sealed-classes/final-sealed-happens-permitted-subclass-non-sealed-modifier/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":4},{"id":"Q1294","t":"Can you serialize/deserialize a sealed hierarchy with Jackson/Gson, and what are the caveats?","u":"/interview/advanced-java/sealed-classes/sealed-serialize-deserialize-hierarchy-jackson-gson-caveats/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":5},{"id":"Q1295","t":"How do sealed classes help implement algebraic data types (ADTs)?","u":"/interview/advanced-java/sealed-classes/sealed-classes-help-implement-algebraic-data-types-adts/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":6},{"id":"Q1296","t":"If a sealed interface has a `non-sealed` implementor, can an unlisted class extend it?","u":"/interview/advanced-java/sealed-classes/sealed-interface-non-sealed-implementor-unlisted-extend/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":7},{"id":"Q1297","t":"Can you discover all subclasses of a sealed class at runtime (`getPermittedSubclasses()`)?","u":"/interview/advanced-java/sealed-classes/sealed-discover-subclasses-runtime-getpermittedsubclasses/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":8},{"id":"Q1299","t":"How are sealed classes and records complementary in Java's pattern-matching vision?","u":"/interview/advanced-java/sealed-classes/sealed-classes-records-complementary-pattern-matching-vision/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":9},{"id":"Q1300","t":"Can you break the sealed contract via reflection or bytecode manipulation?","u":"/interview/advanced-java/sealed-classes/sealed-reflection-bytecode-break-contract-via-manipulation/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":10},{"id":"Q1329","t":"What are Record Patterns and pattern matching for switch (Java 21), and how do they enable exhaustive, type-safe deconstruction of sealed hierarchies?","u":"/interview/advanced-java/sealed-classes/record-pattern-matching-sealed-patterns-switch-21-enable/","ch":"Advanced Java","tp":"Sealed Classes & Interfaces","qn":1},{"id":"Q1334","t":"What is the Java Platform Module System (JPMS), and what do the module-info.java directives do?","u":"/interview/advanced-java/modules/system-platform-module-jpms-directives-module-info-requires/","ch":"Advanced Java","tp":"Java Modules (JPMS)","qn":1},{"id":"Q1347","t":"Why does reflection hurt performance yet remain essential, and how is it constrained under JPMS?","u":"/interview/advanced-java/modules/reflection-encapsulation-hurt-performance-bypasses-jit/","ch":"Advanced Java","tp":"Java Modules (JPMS)","qn":2},{"id":"Q1302","t":"What is Java Vert.x (reactive, event-driven, non-blocking), its features, advantages, and disadvantages?","u":"/interview/advanced-java/reactive-vertx/vert-reactive-event-driven-non-blocking-features-advantages/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":6},{"id":"Q1303","t":"Can you run batch jobs in Vert.x (setPeriodic, worker verticles/executeBlocking, Quartz cron)?","u":"/interview/advanced-java/reactive-vertx/run-batch-jobs-vert-setperiodic-worker-verticles/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":7},{"id":"Q1304","t":"What is RSocket (reactive binary protocol), its four interaction models, features, advantages/disadvantages, and comparison vs WebSockets/gRPC?","u":"/interview/advanced-java/reactive-vertx/binary-channel-grpc-rsocket-reactive-protocol-interaction/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":8},{"id":"Q1305","t":"How do you implement RSocket error handling, and what happens on client/server disconnect (onErrorResume, retryWhen, keep-alive, resumption)?","u":"/interview/advanced-java/reactive-vertx/implement-rsocket-error-handling-happens-client-server/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":3},{"id":"Q1306","t":"Explain backpressure in RSocket and how it differs from HTTP/2 (request(n) demand-based flow control at the application level).","u":"/interview/advanced-java/reactive-vertx/http-backpressure-rsocket-differs-request-demand-based-flow/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":2},{"id":"Q1307","t":"How do you scale an RSocket service in Kubernetes (sticky/consistent-hash LB, client-side LB, HPA on connections, resumable sessions, keep-alive tuning)?","u":"/interview/advanced-java/reactive-vertx/service-kubernetes-scale-rsocket-sticky-consistent-hash-lb/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":4},{"id":"Q1308","t":"How does RSocket handle retries on failure (client retries, resumable sessions, circuit breakers)?","u":"/interview/advanced-java/reactive-vertx/circuit-rsocket-handle-retries-failure-client-resumable/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":5},{"id":"Q1309","t":"Can RSocket work in a serverless environment (stateless, cold starts, timeouts; API Gateway WebSocket proxy, always-on server + serverless clients)?","u":"/interview/advanced-java/reactive-vertx/api-gateway-websocket-proxy-rsocket-serverless-environment/","ch":"Advanced Java","tp":"Reactive: Vert.x & RSocket","qn":1},{"id":"Q1289","t":"Is listing all permitted subclasses optional if they're in the same file?","u":"/interview/advanced-java/advanced-topics/optional-file-listing-permitted-subclasses-re/","ch":"Advanced Java","tp":"Advanced Topics","qn":25},{"id":"Q1291","t":"How does sealing improve `instanceof` checks and exhaustive `switch` pattern matching?","u":"/interview/advanced-java/advanced-topics/pattern-matching-sealing-improve-instanceof-checks/","ch":"Advanced Java","tp":"Advanced Topics","qn":22},{"id":"Q1301","t":"How does sealing interact with generics and wildcards?","u":"/interview/advanced-java/advanced-topics/generics-sealing-interact-wildcards/","ch":"Advanced Java","tp":"Advanced Topics","qn":23},{"id":"Q1310","t":"What is gRPC (HTTP/2 + Protocol Buffers RPC), its advantages/disadvantages, use cases, and comparison with REST?","u":"/interview/advanced-java/advanced-topics/grpc-http-rest-protocol-buffers-rpc-advantages-disadvantages/","ch":"Advanced Java","tp":"Advanced Topics","qn":36},{"id":"Q1311","t":"Why does gRPC rely on HTTP/2 instead of HTTP/1.1, and what breaks with HTTP/1.1 (no multiplexing/streaming/binary)?","u":"/interview/advanced-java/advanced-topics/grpc-http-streaming-binary-rely-instead-breaks-multiplexing/","ch":"Advanced Java","tp":"Advanced Topics","qn":41},{"id":"Q1312","t":"How does gRPC handle network failures differently from REST (deadlines, retries, circuit breaking), and how do you improve reliability?","u":"/interview/advanced-java/advanced-topics/grpc-rest-circuit-handle-network-failures-differently/","ch":"Advanced Java","tp":"Advanced Topics","qn":20},{"id":"Q1313","t":"How do you add distributed tracing to a gRPC microservice (client/server interceptors injecting/extracting trace context, Jaeger/Zipkin/OpenTelemetry)?","u":"/interview/advanced-java/advanced-topics/distributed-grpc-add-tracing-microservice-client-server/","ch":"Advanced Java","tp":"Advanced Topics","qn":16},{"id":"Q1314","t":"Can gRPC be used in a serverless environment (AWS Lambda), and what are the limitations (cold starts, no connection pooling, no streaming, API Gateway only supports gRPC-Web)?","u":"/interview/advanced-java/advanced-topics/grpc-aws-lambda-streaming-api-gateway-serverless-environment/","ch":"Advanced Java","tp":"Advanced Topics","qn":13},{"id":"Q1315","t":"How do you version gRPC without breaking existing clients (don't change field numbers, use optional fields, add new fields/methods/services, avoid removing/retyping)?","u":"/interview/advanced-java/advanced-topics/grpc-optional-version-without-breaking-existing-clients-don/","ch":"Advanced Java","tp":"Advanced Topics","qn":19},{"id":"Q1316","t":"How do you add gRPC-web browser support (Envoy proxy translating HTTP/1.1 ↔ HTTP/2)?","u":"/interview/advanced-java/advanced-topics/proxy-http-add-grpc-web-browser-support-envoy-translating/","ch":"Advanced Java","tp":"Advanced Topics","qn":17},{"id":"Q1317","t":"How do you configure mTLS, a JWT auth interceptor, deadlines, compression, and keep-alive for gRPC in Spring Boot?","u":"/interview/advanced-java/advanced-topics/jwt-grpc-spring-configure-mtls-auth-interceptor-deadlines/","ch":"Advanced Java","tp":"Advanced Topics","qn":18},{"id":"Q1318","t":"Implement a gRPC logging interceptor, a rate-limiter interceptor, and a bidirectional streaming service (live stock prices).","u":"/interview/advanced-java/advanced-topics/grpc-logging-streaming-service-implement-interceptor/","ch":"Advanced Java","tp":"Advanced Topics","qn":3},{"id":"Q1319","t":"What is a .proto file and how does gRPC code generation work, and why is contract-first stronger than OpenAPI/Swagger?","u":"/interview/advanced-java/advanced-topics/file-grpc-base-proto-generation-define-services-rpc-methods/","ch":"Advanced Java","tp":"Advanced Topics","qn":4},{"id":"Q1320","t":"What are gRPC status codes, how do they map to HTTP codes, and how do you return rich error details?","u":"/interview/advanced-java/advanced-topics/grpc-http-map-rest-status-codes-as-ok-cancelled-invalid/","ch":"Advanced Java","tp":"Advanced Topics","qn":32},{"id":"Q1321","t":"How do you implement a gRPC service in Spring Boot, and how do service discovery and health checking integrate?","u":"/interview/advanced-java/advanced-topics/grpc-service-spring-maven-gradle-file-kubernetes-eureka/","ch":"Advanced Java","tp":"Advanced Topics","qn":28},{"id":"Q1322","t":"How does gRPC load balancing work, why does an L4 load balancer fail, and what are the fixes?","u":"/interview/advanced-java/advanced-topics/grpc-load-balancer-http-aws-service-channel-balancing/","ch":"Advanced Java","tp":"Advanced Topics","qn":29},{"id":"Q1323","t":"Design an LFU cache with O(1) get/put, and extend it with time-based frequency decay and TTL.","u":"/interview/advanced-java/advanced-topics/design-lfu-cache-ttl-extend-time-based-frequency-decay/","ch":"Advanced Java","tp":"Advanced Topics","qn":14},{"id":"Q1324","t":"What are the different OutOfMemoryError types, and what does each indicate?","u":"/interview/advanced-java/advanced-topics/heap-gc-metaspace-buffer-thread-different-outofmemoryerror/","ch":"Advanced Java","tp":"Advanced Topics","qn":5},{"id":"Q1325","t":"What causes memory leaks in Java despite GC, and how do you diagnose one end-to-end?","u":"/interview/advanced-java/advanced-topics/gc-static-collections-log-heap-causes-memory-leaks-despite/","ch":"Advanced Java","tp":"Advanced Topics","qn":6},{"id":"Q1326","t":"A service's RSS grows but heap dumps and GC logs look clean: how do you investigate an off-heap leak?","u":"/interview/advanced-java/advanced-topics/service-heap-gc-map-metaspace-classloader-scenario-rss/","ch":"Advanced Java","tp":"Advanced Topics","qn":7},{"id":"Q1327","t":"What is type erasure in generics, what does it make impossible, and what is the PECS rule?","u":"/interview/advanced-java/advanced-topics/erasure-generics-list-string-pecs-producer-consumer-type/","ch":"Advanced Java","tp":"Advanced Topics","qn":39},{"id":"Q1328","t":"What are Records (Java 16), what does the compiler generate, can you add validation, and what are their constraints?","u":"/interview/advanced-java/advanced-topics/final-records-16-compiler-generate-add-validation-compact/","ch":"Advanced Java","tp":"Advanced Topics","qn":12},{"id":"Q1330","t":"What are Sequenced Collections (Java 21), and what gap did they fill?","u":"/interview/advanced-java/advanced-topics/collections-sequenced-21-sequencedcollection-sequencedset/","ch":"Advanced Java","tp":"Advanced Topics","qn":33},{"id":"Q1331","t":"How does virtual-thread pinning happen, and why replace synchronized with ReentrantLock in virtual-thread-heavy code?","u":"/interview/advanced-java/advanced-topics/synchronized-thread-virtual-thread-pinning-happen-blocking/","ch":"Advanced Java","tp":"Advanced Topics","qn":30},{"id":"Q1332","t":"What are Scoped Values (JEP 506, Java 25), and how are they a safer/faster alternative to ThreadLocal for virtual-thread workloads?","u":"/interview/advanced-java/advanced-topics/scoped-values-jep-506-25-safer-faster-alternative/","ch":"Advanced Java","tp":"Advanced Topics","qn":31},{"id":"Q1333","t":"What is Structured Concurrency / StructuredTaskScope, and how does it eliminate orphaned tasks and simplify cancellation?","u":"/interview/advanced-java/advanced-topics/structured-concurrency-structuredtaskscope-shutdownonfailure/","ch":"Advanced Java","tp":"Advanced Topics","qn":38},{"id":"Q1335","t":"What did Java 10 var add, and what are its limitations?","u":"/interview/advanced-java/advanced-topics/null-10-var-add-local-variable-type-inference-limitations/","ch":"Advanced Java","tp":"Advanced Topics","qn":34},{"id":"Q1336","t":"When should you use var versus an explicit type?","u":"/interview/advanced-java/advanced-topics/generics-stream-hashmap-string-int-long-double-lambda-var/","ch":"Advanced Java","tp":"Advanced Topics","qn":40},{"id":"Q1337","t":"What is off-heap memory, when do you use it, and what are the risks?","u":"/interview/advanced-java/advanced-topics/api-off-heap-memory-bytebuffer-allocatedirect-foreign-arena/","ch":"Advanced Java","tp":"Advanced Topics","qn":8},{"id":"Q1338","t":"What are memory-mapped files, how do they work, and when are they useful?","u":"/interview/advanced-java/advanced-topics/map-file-memory-mapped-files-filechannel-mappedbytebuffer/","ch":"Advanced Java","tp":"Advanced Topics","qn":9},{"id":"Q1339","t":"What are the ways to read a very large text file in Java, and their trade-offs?","u":"/interview/advanced-java/advanced-topics/file-path-streaming-stream-string-byte-api-load-list-large/","ch":"Advanced Java","tp":"Advanced Topics","qn":10},{"id":"Q1340","t":"What are the major OpenJDK projects and what does each change?","u":"/interview/advanced-java/advanced-topics/structured-api-vector-sealed-pattern-matching-major-openjdk/","ch":"Advanced Java","tp":"Advanced Topics","qn":11},{"id":"Q1341","t":"What is Project Skara and why does it matter for contributors?","u":"/interview/advanced-java/advanced-topics/jdk-project-skara-openjdk-migrated-source-mercurial-git/","ch":"Advanced Java","tp":"Advanced Topics","qn":37},{"id":"Q1342","t":"How do the major OpenJDK projects work together as a coherent platform evolution?","u":"/interview/advanced-java/advanced-topics/generics-collections-vector-api-sealed-pattern-matching/","ch":"Advanced Java","tp":"Advanced Topics","qn":15},{"id":"Q1343","t":"What is GraalVM Native Image, how does it change the memory/startup model, and when do you use it?","u":"/interview/advanced-java/advanced-topics/gc-reflection-jvm-graalvm-native-image-change-memory-startup/","ch":"Advanced Java","tp":"Advanced Topics","qn":26},{"id":"Q1344","t":"How does the Foreign Memory API's Arena provide explicit lifetime management vs DirectByteBuffer?","u":"/interview/advanced-java/advanced-topics/api-foreign-memory-arena-provide-explicit-bounds-checked/","ch":"Advanced Java","tp":"Advanced Topics","qn":27},{"id":"Q1345","t":"How does Java classloading work, and can two classes with the same name coexist in one JVM?","u":"/interview/advanced-java/advanced-topics/jvm-classloading-bootstrap-platform-application-loaders/","ch":"Advanced Java","tp":"Advanced Topics","qn":21},{"id":"Q1346","t":"How does ServiceLoader (the Java SPI mechanism) discover implementations?","u":"/interview/advanced-java/advanced-topics/classloader-serviceloader-spi-mechanism-discover/","ch":"Advanced Java","tp":"Advanced Topics","qn":24},{"id":"Q1348","t":"How are lambda expressions implemented at the bytecode level?","u":"/interview/advanced-java/advanced-topics/lambda-bytecode-expressions-implemented-level-invokedynamic/","ch":"Advanced Java","tp":"Advanced Topics","qn":1},{"id":"Q1349","t":"What are Method Handles, how do you obtain them, and how do they differ from reflection?","u":"/interview/advanced-java/advanced-topics/jvm-reflection-once-lambda-dynamic-handles-lang-invoke/","ch":"Advanced Java","tp":"Advanced Topics","qn":2},{"id":"Q1350","t":"What is a Java Agent, how does it instrument bytecode at load time, and what tools are built on it?","u":"/interview/advanced-java/advanced-topics/bytecode-load-agent-lang-instrument-javaagent-flag-premain/","ch":"Advanced Java","tp":"Advanced Topics","qn":35},{"id":"Q1365","t":"Find the average of all elements in an array","u":"/interview/dsa-coding/beginner/array-average-elements-sum-length/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":1},{"id":"Q1367","t":"Print even and odd numbers separately from an array","u":"/interview/dsa-coding/beginner/array-odd-numbers-separately-check-num/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":2},{"id":"Q1383","t":"Write a Recursive Function to Calculate Factorial of N","u":"/interview/dsa-coding/beginner/factorial-base-recursive-calculate-fact-n-1/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":6},{"id":"Q1403","t":"Check if a Number is Prime","u":"/interview/dsa-coding/beginner/prime-check-number-factors-itself-loop-sqrt/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":3},{"id":"Q1406","t":"Print All Prime Numbers up to N (Sieve of Eratosthenes)","u":"/interview/dsa-coding/beginner/prime-numbers-sieve-eratosthenes-mark-multiples-as-not-prime/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":5},{"id":"Q1411","t":"Print a Right-Angled Triangle Pattern of Stars Using Nested Loops","u":"/interview/dsa-coding/beginner/pattern-right-angled-triangle-stars-nested-loops/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":4},{"id":"Q1484","t":"Add Two Numbers Represented by Linked Lists","u":"/interview/dsa-coding/beginner/list-non-empty-linked-lists-representing-non-negative/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":12},{"id":"Q1678","t":"Start of LinkedList Cycle (Finding the Loop Entry Node)","u":"/interview/dsa-coding/beginner/list-null-linkedlist-head-linked-contains-cycle-return-node/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":11},{"id":"Q1701","t":"Maximum Absolute Sum of Any Subarray","u":"/interview/dsa-coding/beginner/array-kadane-integers-maximum-absolute-value-sum-contiguous/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":10},{"id":"Q1729","t":"Level Averages in a Binary Tree (Average Value per Level)","u":"/interview/dsa-coding/beginner/binary-tree-list-root-return-containing-average-value-nodes/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":13},{"id":"Q1739","t":"Sum of Path Numbers (Each Root-to-Leaf Path Is a Multi-Digit Number)","u":"/interview/dsa-coding/beginner/binary-tree-path-node-holds-single-digit-root-to-leaf/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":14},{"id":"Q1743","t":"Path with Maximum Sum (Maximum Sum of Any Path Between Two Nodes)","u":"/interview/dsa-coding/beginner/binary-tree-path-maximum-sum-sequence-connected-nodes-pass/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":15},{"id":"Q1784","t":"Sum of Elements Between K1 and K2 Smallest (Sum Strictly Between Two Order Statistics)","u":"/interview/dsa-coding/beginner/array-values-k1-k2-sum-elements-strictly-greater-k1-th/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":9},{"id":"Q1804","t":"Number Factors (Count Ways to Express N as a Sum of 1, 3, and 4)","u":"/interview/dsa-coding/beginner/fibonacci-pattern-number-count-distinct-express-as-ordered/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":7},{"id":"Q1838","t":"House Robber (Maximum Sum of Non-Adjacent Elements)","u":"/interview/dsa-coding/beginner/array-dynamic-programming-non-negative-values-pick-subset/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":8},{"id":"Q2625","t":"Factorial: print N! as the product of all integers from 1 to N","u":"/interview/dsa-coding/beginner/factorial-single-non-negative-integer-calculate-product/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":16},{"id":"Q2626","t":"Add Two Numbers: read A and B, print their sum","u":"/interview/dsa-coding/beginner/reads-numbers-computes-sum-prints-result-11-add/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":17},{"id":"Q2627","t":"Average: read three numbers and print their average","u":"/interview/dsa-coding/beginner/numbers-calculate-average-value-sum-10-20-30/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":18},{"id":"Q2628","t":"Even or Odd: check and print whether N is even or odd","u":"/interview/dsa-coding/beginner/number-check-whether-odd-decision-yes/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":19},{"id":"Q2629","t":"Largest of Two Numbers: find and print the larger of A and B","u":"/interview/dsa-coding/beginner/numbers-larger-decision-yes-handle-equality-as-needed-12/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":20},{"id":"Q2630","t":"Largest of Three Numbers: find and print the largest of A, B, and C","u":"/interview/dsa-coding/beginner/numbers-largest-decision-yes-18-11/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":21},{"id":"Q2631","t":"Check Number: print 1 if positive, -1 if negative, 0 if zero","u":"/interview/dsa-coding/beginner/equals-single-number-positive-negative-decision-yes-check/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":22},{"id":"Q2632","t":"Leap Year: check whether a year is a leap year","u":"/interview/dsa-coding/beginner/year-check-whether-leap-decision-100-400-yes-2000/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":23},{"id":"Q2633","t":"Form Triangle: print Yes if three lengths can form a valid triangle","u":"/interview/dsa-coding/beginner/numbers-representing-lengths-lines-yes-form-valid-triangle/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":24},{"id":"Q2634","t":"Understanding Loop (Product): compute N! using a loop","u":"/interview/dsa-coding/beginner/factorial-single-non-negative-integer-loop-calculate-product/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":25},{"id":"Q2635","t":"Print Even Numbers: print all even integers between 1 and N","u":"/interview/dsa-coding/beginner/single-positive-integer-integers-inclusive-initialize-loop/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":26},{"id":"Q2637","t":"Check Prime: check whether N is prime and print Yes or No","u":"/interview/dsa-coding/beginner/prime-number-assume-check-whether-yes-otherwise-initialize/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":27},{"id":"Q2638","t":"Sum of 10 Numbers: read 10 numbers and print their total","u":"/interview/dsa-coding/beginner/10-numbers-total-sum-initialize-loop-while-doing-55/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":28},{"id":"Q2639","t":"Sum of First 10 Numbers: print the sum of 1 to 10","u":"/interview/dsa-coding/beginner/calculate-sum-10-natural-numbers-initialize-loop-while-doing/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":29},{"id":"Q2640","t":"Sum of Even Numbers between 20 and 40: print their total","u":"/interview/dsa-coding/beginner/calculate-sum-numbers-20-40-inclusive-initialize-loop-while/","ch":"Coding Problems: DSA","tp":"Beginner: I/O, Arithmetic, Loops","qn":30},{"id":"Q1360","t":"Find the largest element in an array","u":"/interview/dsa-coding/arrays/array-largest-element-keep-variable-max-update-something/","ch":"Coding Problems: DSA","tp":"Arrays","qn":4},{"id":"Q1361","t":"Find the smallest element in an array","u":"/interview/dsa-coding/arrays/array-smallest-element-keep-variable-min-update-something/","ch":"Coding Problems: DSA","tp":"Arrays","qn":5},{"id":"Q1362","t":"Count how many times a given number appears in an array","u":"/interview/dsa-coding/arrays/array-count-times-number-appears-loop-counter/","ch":"Coding Problems: DSA","tp":"Arrays","qn":6},{"id":"Q1363","t":"Check if a given number exists in an array","u":"/interview/dsa-coding/arrays/array-search-check-number-exists-linear-loop-compare-element/","ch":"Coding Problems: DSA","tp":"Arrays","qn":7},{"id":"Q1364","t":"Reverse an array","u":"/interview/dsa-coding/arrays/array-reverse-swap-second-second-last-pointers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":8},{"id":"Q1366","t":"Copy one array into another array","u":"/interview/dsa-coding/arrays/array-copy-another/","ch":"Coding Problems: DSA","tp":"Arrays","qn":9},{"id":"Q1369","t":"Reverse a string","u":"/interview/dsa-coding/arrays/string-char-array-stringbuilder-reverse-convert-swap-ends/","ch":"Coding Problems: DSA","tp":"Arrays","qn":1},{"id":"Q1375","t":"What is the difference between array and linked list","u":"/interview/dsa-coding/arrays/array-list-index-delete-difference-linked-fast-access-slow/","ch":"Coding Problems: DSA","tp":"Arrays","qn":22},{"id":"Q1379","t":"Implement a stack using an array","u":"/interview/dsa-coding/arrays/stack-array-implement-push-add-top-pop-remove-peek-look/","ch":"Coding Problems: DSA","tp":"Arrays","qn":38},{"id":"Q1381","t":"Implement a Queue using an Array","u":"/interview/dsa-coding/arrays/queue-array-implement-enqueue-add-back-dequeue-remove-front/","ch":"Coding Problems: DSA","tp":"Arrays","qn":33},{"id":"Q1387","t":"Count the Frequency of Each Element in an Array Using HashMap","u":"/interview/dsa-coding/arrays/array-hashmap-map-count-frequency-element-loop-increment/","ch":"Coding Problems: DSA","tp":"Arrays","qn":88},{"id":"Q1388","t":"Find Duplicate Elements in an Array Using HashSet","u":"/interview/dsa-coding/arrays/array-duplicate-elements-hashset-add-element-returns-false/","ch":"Coding Problems: DSA","tp":"Arrays","qn":89},{"id":"Q1413","t":"Find the Largest and Smallest Element in an Array","u":"/interview/dsa-coding/arrays/array-largest-smallest-element-single-pass/","ch":"Coding Problems: DSA","tp":"Arrays","qn":14},{"id":"Q1414","t":"Find the Second-Largest Element Without Sorting","u":"/interview/dsa-coding/arrays/second-largest-element-without-sorting-track-top-pass/","ch":"Coding Problems: DSA","tp":"Arrays","qn":15},{"id":"Q1415","t":"Reverse an Array In-Place","u":"/interview/dsa-coding/arrays/array-reverse-in-place-two-pointer-swap-ends/","ch":"Coding Problems: DSA","tp":"Arrays","qn":10},{"id":"Q1416","t":"Check if an Array Is Sorted","u":"/interview/dsa-coding/arrays/array-check-sorted-compare-adjacent-elements/","ch":"Coding Problems: DSA","tp":"Arrays","qn":11},{"id":"Q1417","t":"Remove Duplicates from a Sorted Array In-Place","u":"/interview/dsa-coding/arrays/array-remove-duplicates-sorted-in-place-slow-insert-position/","ch":"Coding Problems: DSA","tp":"Arrays","qn":12},{"id":"Q1419","t":"Rotate an Array by K Positions","u":"/interview/dsa-coding/arrays/array-rest-rotate-positions-reverse-whole/","ch":"Coding Problems: DSA","tp":"Arrays","qn":35},{"id":"Q1426","t":"Product of Array Except Self: Prefix x Suffix, No Division","u":"/interview/dsa-coding/arrays/array-product-except-self-prefix-suffix-division/","ch":"Coding Problems: DSA","tp":"Arrays","qn":32},{"id":"Q1430","t":"Maximum Subarray / Kadane's Algorithm: Running Sum, Reset When Negative","u":"/interview/dsa-coding/arrays/kadane-maximum-subarray-algorithm-running-sum-reset-negative/","ch":"Coding Problems: DSA","tp":"Arrays","qn":23},{"id":"Q1431","t":"Maximum Product Subarray: Track Running Max AND Min","u":"/interview/dsa-coding/arrays/maximum-product-subarray-track-running-max-min-negatives/","ch":"Coding Problems: DSA","tp":"Arrays","qn":24},{"id":"Q1432","t":"Find Minimum in Rotated Sorted Array: Binary Search on Inflection","u":"/interview/dsa-coding/arrays/array-binary-search-minimum-rotated-sorted-inflection/","ch":"Coding Problems: DSA","tp":"Arrays","qn":25},{"id":"Q1433","t":"Search in Rotated Sorted Array: Binary Search Checking Which Half Is Sorted","u":"/interview/dsa-coding/arrays/search-array-binary-rotated-sorted-checking-half/","ch":"Coding Problems: DSA","tp":"Arrays","qn":26},{"id":"Q1434","t":"Merge Two Sorted Arrays In-Place: Fill From the Back","u":"/interview/dsa-coding/arrays/merge-sorted-arrays-in-place-fill-back/","ch":"Coding Problems: DSA","tp":"Arrays","qn":27},{"id":"Q1435","t":"Find All Duplicates in an Array: Index-Marking or Frequency Map","u":"/interview/dsa-coding/arrays/array-map-duplicates-index-marking-frequency/","ch":"Coding Problems: DSA","tp":"Arrays","qn":28},{"id":"Q1437","t":"Median of Two Sorted Arrays: Binary Search Partition, O(log min(m,n))","u":"/interview/dsa-coding/arrays/binary-search-partition-log-median-sorted-arrays-min/","ch":"Coding Problems: DSA","tp":"Arrays","qn":29},{"id":"Q1439","t":"Reverse a String Without StringBuilder: Two-Pointer Swap on Char Array","u":"/interview/dsa-coding/arrays/string-stringbuilder-char-array-reverse-without-two-pointer/","ch":"Coding Problems: DSA","tp":"Arrays","qn":39},{"id":"Q1455","t":"Two Sum on a Sorted Array: Left and Right Pointers, O(1) Space","u":"/interview/dsa-coding/arrays/array-pointer-sum-sorted-left-right-space-pointers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":30},{"id":"Q1456","t":"Remove Duplicates from Sorted Array: Slow/Fast Pointer In Place","u":"/interview/dsa-coding/arrays/array-pointer-remove-duplicates-sorted-slow-fast-place/","ch":"Coding Problems: DSA","tp":"Arrays","qn":31},{"id":"Q1464","t":"Maximum Sum Subarray of Size K: Fixed-Size Window, Add Right, Subtract Left","u":"/interview/dsa-coding/arrays/window-maximum-sum-subarray-size-fixed-size-add-right/","ch":"Coding Problems: DSA","tp":"Arrays","qn":36},{"id":"Q1465","t":"Minimum Size Subarray Sum >= Target: Variable Window, Shrink When Satisfied","u":"/interview/dsa-coding/arrays/window-condition-minimum-size-subarray-sum-target-variable/","ch":"Coding Problems: DSA","tp":"Arrays","qn":37},{"id":"Q1473","t":"Find the Middle Element of a Linked List: Slow/Fast Pointer","u":"/interview/dsa-coding/arrays/list-pointer-middle-element-linked-slow-fast/","ch":"Coding Problems: DSA","tp":"Arrays","qn":99},{"id":"Q1478","t":"Reverse a Linked List: Iterative (prev/curr/next) and Recursive","u":"/interview/dsa-coding/arrays/list-reverse-linked-iterative-prev-curr-recursive/","ch":"Coding Problems: DSA","tp":"Arrays","qn":100},{"id":"Q1482","t":"Palindrome Linked List: Reverse Second Half, Compare, Then Restore","u":"/interview/dsa-coding/arrays/list-palindrome-head-singly-linked-determine-whether-reads/","ch":"Coding Problems: DSA","tp":"Arrays","qn":101},{"id":"Q1483","t":"Reorder List (L0 to Ln to L1 to Ln-1): Find Middle, Reverse, Merge","u":"/interview/dsa-coding/arrays/list-merge-singly-linked-l0-l1-ln-reorder-ln-1-l2-ln-2/","ch":"Coding Problems: DSA","tp":"Arrays","qn":102},{"id":"Q1485","t":"Copy List With Random Pointer: Interleave Clones or HashMap","u":"/interview/dsa-coding/arrays/list-pointer-null-hashmap-linked-node-additional-random/","ch":"Coding Problems: DSA","tp":"Arrays","qn":103},{"id":"Q1487","t":"Classic Binary Search: Find a Target in a Sorted Array in O(log n)","u":"/interview/dsa-coding/arrays/array-index-binary-search-log-sorted-integers-target-value/","ch":"Coding Problems: DSA","tp":"Arrays","qn":84},{"id":"Q1490","t":"Find Minimum in Rotated Sorted Array: Binary Search on the Inflection Point","u":"/interview/dsa-coding/arrays/array-binary-search-sorted-ascending-distinct-integers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":85},{"id":"Q1491","t":"Search in Rotated Sorted Array — Decide Which Half Is Sorted","u":"/interview/dsa-coding/arrays/array-index-search-sorted-ascending-distinct-integers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":86},{"id":"Q1492","t":"Find a Peak Element: Binary Search on the Slope","u":"/interview/dsa-coding/arrays/array-index-binary-search-peak-element-strictly-greater/","ch":"Coding Problems: DSA","tp":"Arrays","qn":87},{"id":"Q1495","t":"Median of Two Sorted Arrays: Binary Search Partition","u":"/interview/dsa-coding/arrays/log-binary-search-partition-sorted-arrays-median-combined/","ch":"Coding Problems: DSA","tp":"Arrays","qn":105},{"id":"Q1498","t":"Range Sum Query Immutable: Build a Prefix Array","u":"/interview/dsa-coding/arrays/design-immutable-array-integer-answers-multiple-queries-sum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":40},{"id":"Q1499","t":"Subarray Sum Equals K: Prefix Sum Plus a HashMap Counting currentSum Minus K","u":"/interview/dsa-coding/arrays/array-exactly-equals-hashmap-integer-count-total-number/","ch":"Coding Problems: DSA","tp":"Arrays","qn":41},{"id":"Q1500","t":"Contiguous Array (Equal Zeros and Ones): Convert Zero to Minus One, Prefix Sum Plus HashMap","u":"/interview/dsa-coding/arrays/binary-array-hashmap-zeros-ones-length-longest-contiguous/","ch":"Coding Problems: DSA","tp":"Arrays","qn":42},{"id":"Q1501","t":"Product of Array Except Self: Prefix Product Times Suffix Product","u":"/interview/dsa-coding/arrays/array-integer-return-position-holds-product-elements-without/","ch":"Coding Problems: DSA","tp":"Arrays","qn":43},{"id":"Q1503","t":"Top K Frequent Elements: HashMap Frequency Plus Min-Heap or Bucket Sort","u":"/interview/dsa-coding/arrays/array-log-hashmap-sort-integer-return-frequent-elements/","ch":"Coding Problems: DSA","tp":"Arrays","qn":44},{"id":"Q1508","t":"Next Greater Element I: decreasing monotonic stack + HashMap","u":"/interview/dsa-coding/arrays/stack-hashmap-arrays-nums1-subset-nums2-element-greater/","ch":"Coding Problems: DSA","tp":"Arrays","qn":95},{"id":"Q1518","t":"Kth Smallest Element in BST: inorder traversal, stop at kth","u":"/interview/dsa-coding/arrays/binary-search-tree-bst-root-integer-return-kth-smallest/","ch":"Coding Problems: DSA","tp":"Arrays","qn":106},{"id":"Q1533","t":"Kth Largest Element in an Array: min-heap of size K or QuickSelect","u":"/interview/dsa-coding/arrays/array-unsorted-integers-value-return-kth-largest-element/","ch":"Coding Problems: DSA","tp":"Arrays","qn":107},{"id":"Q1534","t":"Top K Frequent Elements: HashMap frequency + min-heap or bucket sort","u":"/interview/dsa-coding/arrays/array-hashmap-sort-elements-value-return-frequent-order-top/","ch":"Coding Problems: DSA","tp":"Arrays","qn":108},{"id":"Q1551","t":"Kahn's Algorithm (BFS topological sort): in-degree array + zero-degree queue","u":"/interview/dsa-coding/arrays/topological-graph-bfs-sort-array-queue-implement-sorting/","ch":"Coding Problems: DSA","tp":"Arrays","qn":2},{"id":"Q1552","t":"DFS-based Topological Sort: post-order reverse","u":"/interview/dsa-coding/arrays/topological-graph-search-dfs-sort-implement-sorting-directed/","ch":"Coding Problems: DSA","tp":"Arrays","qn":3},{"id":"Q1561","t":"Subsets: include or exclude each element","u":"/interview/dsa-coding/arrays/array-backtracking-distinct-integers-return-possible-subsets/","ch":"Coding Problems: DSA","tp":"Arrays","qn":17},{"id":"Q1563","t":"Permutations: backtracking with a used[] array","u":"/interview/dsa-coding/arrays/array-backtracking-distinct-integers-return-possible/","ch":"Coding Problems: DSA","tp":"Arrays","qn":18},{"id":"Q1577","t":"Maximum Subarray (Kadane's Algorithm): running sum reset at negatives","u":"/interview/dsa-coding/arrays/kadane-contiguous-subarray-largest-sum-return-algorithm/","ch":"Coding Problems: DSA","tp":"Arrays","qn":91},{"id":"Q1593","t":"Maximum Product Subarray: track max and min together","u":"/interview/dsa-coding/arrays/array-integer-contiguous-subarray-largest-product-return/","ch":"Coding Problems: DSA","tp":"Arrays","qn":96},{"id":"Q1606","t":"Evaluate Reverse Polish Notation Using a Stack","u":"/interview/dsa-coding/arrays/stack-arithmetic-expression-reverse-polish-notation-postfix/","ch":"Coding Problems: DSA","tp":"Arrays","qn":19},{"id":"Q1609","t":"Find the Kth Largest Element Using a Min-Heap","u":"/interview/dsa-coding/arrays/array-queue-heap-numbers-value-kth-largest-element/","ch":"Coding Problems: DSA","tp":"Arrays","qn":13},{"id":"Q1611","t":"Find the Top K Frequent Elements","u":"/interview/dsa-coding/arrays/array-map-heap-elements-return-appear-frequently-hash-count/","ch":"Coding Problems: DSA","tp":"Arrays","qn":97},{"id":"Q1628","t":"Reverse Nodes in a Linked List in Groups of k","u":"/interview/dsa-coding/arrays/list-singly-linked-reverse-nodes-time-return-modified/","ch":"Coding Problems: DSA","tp":"Arrays","qn":16},{"id":"Q1636","t":"RandomizedSet: array plus HashMap for O(1) insert, remove, getRandom","u":"/interview/dsa-coding/arrays/array-hashmap-randomizedset-insert-remove-getrandom-plus/","ch":"Coding Problems: DSA","tp":"Arrays","qn":34},{"id":"Q1665","t":"Pair with Target Sum (Two Pointers on a Sorted Array)","u":"/interview/dsa-coding/arrays/array-exactly-sorted-numbers-target-sum-pair-elements-values/","ch":"Coding Problems: DSA","tp":"Arrays","qn":70},{"id":"Q1668","t":"Squaring a Sorted Array (Two Pointers from the Ends)","u":"/interview/dsa-coding/arrays/array-sorted-non-decreasing-order-contain-negative-numbers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":71},{"id":"Q1672","t":"Subarrays with Product Less than a Target (Sliding Window)","u":"/interview/dsa-coding/arrays/array-sliding-window-positive-numbers-target-count/","ch":"Coding Problems: DSA","tp":"Arrays","qn":72},{"id":"Q1676","t":"Minimum Window Sort (Shortest Unsorted Continuous Subarray)","u":"/interview/dsa-coding/arrays/array-window-sort-length-shortest-contiguous-subarray-sorted/","ch":"Coding Problems: DSA","tp":"Arrays","qn":20},{"id":"Q1680","t":"Find the Duplicate Number (Cycle Detection on Array Indices)","u":"/interview/dsa-coding/arrays/array-exactly-plus-integers-integer-inclusive-number/","ch":"Coding Problems: DSA","tp":"Arrays","qn":21},{"id":"Q1682","t":"Palindrome LinkedList (Find Middle, Reverse Half, Compare)","u":"/interview/dsa-coding/arrays/list-palindrome-linkedlist-head-singly-linked-determine/","ch":"Coding Problems: DSA","tp":"Arrays","qn":98},{"id":"Q1684","t":"Cycle in a Circular Array (Directional Fast-Slow Pointers)","u":"/interview/dsa-coding/arrays/array-circular-non-zero-integers-value-tells-steps-jump/","ch":"Coding Problems: DSA","tp":"Arrays","qn":92},{"id":"Q1685","t":"Maximum Sum Subarray of Size K (Fixed-Size Sliding Window)","u":"/interview/dsa-coding/arrays/array-window-exactly-sliding-positive-numbers-size-maximum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":93},{"id":"Q1686","t":"Smallest Subarray with a Given Sum (Variable-Size Sliding Window)","u":"/interview/dsa-coding/arrays/array-sliding-window-positive-numbers-target-sum-length/","ch":"Coding Problems: DSA","tp":"Arrays","qn":94},{"id":"Q1688","t":"Fruits into Baskets (Longest Subarray with At Most Two Distinct Values)","u":"/interview/dsa-coding/arrays/tree-equals-baskets-want-collect-fruits-row-trees-basket/","ch":"Coding Problems: DSA","tp":"Arrays","qn":109},{"id":"Q1691","t":"Longest Subarray with Ones after Replacement (Max Consecutive Ones III)","u":"/interview/dsa-coding/arrays/binary-array-sliding-window-pattern-ones-zeros-integer/","ch":"Coding Problems: DSA","tp":"Arrays","qn":54},{"id":"Q1692","t":"Minimum Size Subarray Sum (Shortest Subarray with Sum At Least Target)","u":"/interview/dsa-coding/arrays/array-sliding-window-pattern-positive-integers-target-value/","ch":"Coding Problems: DSA","tp":"Arrays","qn":55},{"id":"Q1697","t":"Maximum Subarray Sum (Kadane's Algorithm)","u":"/interview/dsa-coding/arrays/array-kadane-integers-include-negative-numbers-maximum-sum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":56},{"id":"Q1698","t":"Minimum Subarray Sum (Smallest Sum Contiguous Subarray, Kadane's Minimum Variant)","u":"/interview/dsa-coding/arrays/array-kadane-integers-include-positives-negatives-minimum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":57},{"id":"Q1699","t":"Maximum Product Subarray","u":"/interview/dsa-coding/arrays/array-kadane-integers-include-negatives-zeros-maximum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":58},{"id":"Q1700","t":"Maximum Subarray Sum with One Deletion","u":"/interview/dsa-coding/arrays/array-delete-dynamic-programming-integers-include-negatives/","ch":"Coding Problems: DSA","tp":"Arrays","qn":59},{"id":"Q1702","t":"Maximum Sum Circular Subarray","u":"/interview/dsa-coding/arrays/array-kadane-circular-integers-wraps-around-beginning/","ch":"Coding Problems: DSA","tp":"Arrays","qn":60},{"id":"Q1703","t":"Subarray Sum Equals K (Prefix Sum with a Hash Map)","u":"/interview/dsa-coding/arrays/array-exactly-pattern-equals-map-integers-include-negatives/","ch":"Coding Problems: DSA","tp":"Arrays","qn":61},{"id":"Q1704","t":"Find Pivot Index (Balance Point of an Array)","u":"/interview/dsa-coding/arrays/array-index-equals-pattern-integers-leftmost-pivot-sum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":62},{"id":"Q1705","t":"Subarray Sums Divisible by K (Prefix Remainder Counting)","u":"/interview/dsa-coding/arrays/array-pattern-integers-include-negatives-positive-integer/","ch":"Coding Problems: DSA","tp":"Arrays","qn":63},{"id":"Q1706","t":"Contiguous Array (Longest Subarray with Equal Zeros and Ones)","u":"/interview/dsa-coding/arrays/binary-array-pattern-zeros-ones-length-longest-contiguous/","ch":"Coding Problems: DSA","tp":"Arrays","qn":64},{"id":"Q1707","t":"Challenge: Shortest Subarray with Sum at Least K (Prefix Sums with a Monotonic Deque)","u":"/interview/dsa-coding/arrays/array-deque-integers-include-negatives-target-length/","ch":"Coding Problems: DSA","tp":"Arrays","qn":65},{"id":"Q1721","t":"Reverse a LinkedList (In-place Pointer Reversal)","u":"/interview/dsa-coding/arrays/list-linkedlist-pointer-head-singly-linked-reverse-place/","ch":"Coding Problems: DSA","tp":"Arrays","qn":66},{"id":"Q1722","t":"Reverse a Sub-list (Reverse Nodes Between Positions p and q)","u":"/interview/dsa-coding/arrays/list-head-singly-linked-positions-1-based-reverse-nodes/","ch":"Coding Problems: DSA","tp":"Arrays","qn":67},{"id":"Q1723","t":"Reverse every K-element Sub-list (Reverse Nodes in Groups of K)","u":"/interview/dsa-coding/arrays/list-final-head-singly-linked-positive-integer-reverse/","ch":"Coding Problems: DSA","tp":"Arrays","qn":68},{"id":"Q1724","t":"Reverse alternating K-element Sub-list (Reverse Every Other Group of K)","u":"/interview/dsa-coding/arrays/list-final-head-singly-linked-positive-integer-reverse-2/","ch":"Coding Problems: DSA","tp":"Arrays","qn":69},{"id":"Q1727","t":"Reverse Level Order Traversal (Bottom-up Level Order)","u":"/interview/dsa-coding/arrays/binary-tree-root-return-node-values-level-bottom-left-right/","ch":"Coding Problems: DSA","tp":"Arrays","qn":104},{"id":"Q1749","t":"Subsets With Duplicates (Generate Unique Subsets When Elements Repeat)","u":"/interview/dsa-coding/arrays/numbers-contain-duplicates-generate-possible-unique-subsets/","ch":"Coding Problems: DSA","tp":"Arrays","qn":90},{"id":"Q1761","t":"Order-agnostic Binary Search (Search a Sorted Array When the Order Is Unknown)","u":"/interview/dsa-coding/arrays/array-sort-index-binary-search-sorted-numbers-direction/","ch":"Coding Problems: DSA","tp":"Arrays","qn":73},{"id":"Q1762","t":"Ceiling of a Number (Smallest Element Greater Than or Equal to the Key)","u":"/interview/dsa-coding/arrays/array-binary-search-numbers-sorted-ascending-order-ceiling/","ch":"Coding Problems: DSA","tp":"Arrays","qn":74},{"id":"Q1764","t":"Number Range (First and Last Position of a Key in a Sorted Array)","u":"/interview/dsa-coding/arrays/array-index-binary-numbers-sorted-ascending-order-range/","ch":"Coding Problems: DSA","tp":"Arrays","qn":75},{"id":"Q1765","t":"Search in a Sorted Infinite Array (Find a Key Without Knowing the Length)","u":"/interview/dsa-coding/arrays/array-index-window-search-infinite-sorted-length-unknown/","ch":"Coding Problems: DSA","tp":"Arrays","qn":76},{"id":"Q1766","t":"Minimum Difference Element (Closest Element to a Key in a Sorted Array)","u":"/interview/dsa-coding/arrays/array-binary-search-window-numbers-sorted-ascending-order/","ch":"Coding Problems: DSA","tp":"Arrays","qn":77},{"id":"Q1767","t":"Bitonic Array Maximum (Find the Peak of an Array That Rises Then Falls)","u":"/interview/dsa-coding/arrays/array-binary-search-bitonic-strictly-increases-single/","ch":"Coding Problems: DSA","tp":"Arrays","qn":78},{"id":"Q1768","t":"Search Bitonic Array (Find a Key in a Rise-Then-Fall Array)","u":"/interview/dsa-coding/arrays/array-index-search-bitonic-strictly-increasing-decreasing/","ch":"Coding Problems: DSA","tp":"Arrays","qn":79},{"id":"Q1769","t":"Search in Rotated Array (Find a Key in a Sorted Array Rotated at an Unknown Pivot)","u":"/interview/dsa-coding/arrays/array-index-log-search-ascending-sorted-rotated-unknown/","ch":"Coding Problems: DSA","tp":"Arrays","qn":80},{"id":"Q1770","t":"Rotation Count (How Many Times a Sorted Array Was Rotated)","u":"/interview/dsa-coding/arrays/array-equals-index-binary-search-ascending-sorted-rotated/","ch":"Coding Problems: DSA","tp":"Arrays","qn":81},{"id":"Q1771","t":"Single Number (Find the One Element That Appears Once)","u":"/interview/dsa-coding/arrays/array-exactly-once-number-appears-twice-except-single/","ch":"Coding Problems: DSA","tp":"Arrays","qn":82},{"id":"Q1772","t":"Two Single Numbers (Find the Two Elements That Each Appear Once)","u":"/interview/dsa-coding/arrays/array-once-number-appears-twice-except-numbers-appear-single/","ch":"Coding Problems: DSA","tp":"Arrays","qn":83},{"id":"Q1782","t":"K Closest Numbers (Find the K Elements Nearest a Target in a Sorted Array)","u":"/interview/dsa-coding/arrays/array-binary-search-window-sorted-target-value-count-numbers/","ch":"Coding Problems: DSA","tp":"Arrays","qn":48},{"id":"Q1783","t":"Maximum Distinct Elements (Maximize Distinct Values After K Removals)","u":"/interview/dsa-coding/arrays/array-numbers-value-remove-elements-maximize-number-distinct/","ch":"Coding Problems: DSA","tp":"Arrays","qn":49},{"id":"Q1787","t":"Smallest Number Range Covering K Lists (Find the Tightest Range Including One Element from Each List)","u":"/interview/dsa-coding/arrays/merge-list-sorted-integer-lists-smallest-range-includes/","ch":"Coding Problems: DSA","tp":"Arrays","qn":50},{"id":"Q1788","t":"Merge K Sorted Arrays (Combine K Sorted Arrays into One Sorted Array)","u":"/interview/dsa-coding/arrays/merge-array-heap-sorted-arrays-single-k-way-technique/","ch":"Coding Problems: DSA","tp":"Arrays","qn":51},{"id":"Q1789","t":"Kth Smallest Element in a Sorted Matrix (Row and Column Sorted Matrix)","u":"/interview/dsa-coding/arrays/matrix-merge-heap-row-column-sorted-ascending-order-kth/","ch":"Coding Problems: DSA","tp":"Arrays","qn":52},{"id":"Q1790","t":"Median of Two Sorted Arrays (K-way Merge View of the Middle Element)","u":"/interview/dsa-coding/arrays/merge-pattern-sorted-arrays-median-combined-order-k-way/","ch":"Coding Problems: DSA","tp":"Arrays","qn":53},{"id":"Q1792","t":"Equal Subset Sum Partition (Split an Array into Two Equal-Sum Halves)","u":"/interview/dsa-coding/arrays/knapsack-partition-array-positive-numbers-determine/","ch":"Coding Problems: DSA","tp":"Arrays","qn":45},{"id":"Q1795","t":"Count of Subset Sum (Count How Many Subsets Reach an Exact Target)","u":"/interview/dsa-coding/arrays/equals-knapsack-positive-numbers-count-number-subsets-sum/","ch":"Coding Problems: DSA","tp":"Arrays","qn":46},{"id":"Q1805","t":"Minimum Jumps to Reach the End (Fewest Jumps Across an Array)","u":"/interview/dsa-coding/arrays/array-index-fibonacci-pattern-element-maximum-jump-length/","ch":"Coding Problems: DSA","tp":"Arrays","qn":47},{"id":"Q1368","t":"What is a String in Java","u":"/interview/dsa-coding/strings/string-immutable-sequence-characters-cannot-changed-creation/","ch":"Coding Problems: DSA","tp":"Strings","qn":1},{"id":"Q1370","t":"Check if a string is a palindrome","u":"/interview/dsa-coding/strings/string-palindrome-check-forwards-backwards-madam-compare/","ch":"Coding Problems: DSA","tp":"Strings","qn":2},{"id":"Q1371","t":"Count vowels and consonants in a string","u":"/interview/dsa-coding/strings/string-count-vowels-consonants-loop-character-check/","ch":"Coding Problems: DSA","tp":"Strings","qn":3},{"id":"Q1372","t":"Check if two strings are anagrams","u":"/interview/dsa-coding/strings/sort-check-strings-anagrams-letters-different-order-listen/","ch":"Coding Problems: DSA","tp":"Strings","qn":4},{"id":"Q1373","t":"Find the first non-repeating character in a string","u":"/interview/dsa-coding/strings/string-linkedhashmap-non-repeating-character-count-frequency/","ch":"Coding Problems: DSA","tp":"Strings","qn":5},{"id":"Q1404","t":"Check if a Number is a Palindrome","u":"/interview/dsa-coding/strings/palindrome-check-number-121-reverse-digits/","ch":"Coding Problems: DSA","tp":"Strings","qn":9},{"id":"Q1408","t":"Check if a String Contains Only Digits","u":"/interview/dsa-coding/strings/string-check-contains-digits-loop-character-isdigit/","ch":"Coding Problems: DSA","tp":"Strings","qn":30},{"id":"Q1409","t":"Remove All Spaces from a String","u":"/interview/dsa-coding/strings/string-remove-spaces/","ch":"Coding Problems: DSA","tp":"Strings","qn":31},{"id":"Q1410","t":"Convert a String to Uppercase / Lowercase Without Built-in Methods","u":"/interview/dsa-coding/strings/string-convert-uppercase-lowercase-without-built-in-methods/","ch":"Coding Problems: DSA","tp":"Strings","qn":32},{"id":"Q1436","t":"Encode and Decode Strings: Length-Prefixed Serialization","u":"/interview/dsa-coding/strings/design-list-encode-decode-strings-length-prefixed/","ch":"Coding Problems: DSA","tp":"Strings","qn":10},{"id":"Q1440","t":"Check If a String Is a Palindrome: Two-Pointer, Skip Non-Alphanumeric","u":"/interview/dsa-coding/strings/string-palindrome-check-two-pointer-skip-non-alphanumeric/","ch":"Coding Problems: DSA","tp":"Strings","qn":33},{"id":"Q1441","t":"First Non-Repeating Character: LinkedHashMap","u":"/interview/dsa-coding/strings/linkedhashmap-non-repeating-character/","ch":"Coding Problems: DSA","tp":"Strings","qn":7},{"id":"Q1442","t":"Valid Anagram: Character Frequency Comparison","u":"/interview/dsa-coding/strings/anagram-array-hashmap-valid-character-frequency-comparison/","ch":"Coding Problems: DSA","tp":"Strings","qn":8},{"id":"Q1443","t":"Group Anagrams: Sort Each Word as Key, Group by Sorted Key","u":"/interview/dsa-coding/strings/sort-group-anagrams-word-as-key-sorted/","ch":"Coding Problems: DSA","tp":"Strings","qn":20},{"id":"Q1444","t":"Longest Common Prefix: Vertical Scan Comparing Characters","u":"/interview/dsa-coding/strings/longest-common-prefix-vertical-scan-comparing-characters/","ch":"Coding Problems: DSA","tp":"Strings","qn":21},{"id":"Q1445","t":"Longest Substring Without Repeating Characters: Sliding Window + HashSet","u":"/interview/dsa-coding/strings/sliding-window-longest-substring-without-repeating/","ch":"Coding Problems: DSA","tp":"Strings","qn":22},{"id":"Q1446","t":"Longest Repeating Character Replacement: Sliding Window, windowSize - maxFreq ≤ K","u":"/interview/dsa-coding/strings/sliding-window-longest-repeating-character-replacement/","ch":"Coding Problems: DSA","tp":"Strings","qn":23},{"id":"Q1447","t":"Longest Palindromic Substring: Expand Around Center O(n²)","u":"/interview/dsa-coding/strings/longest-palindromic-substring-expand-around-center-manacher/","ch":"Coding Problems: DSA","tp":"Strings","qn":27},{"id":"Q1448","t":"Palindromic Substrings: Count All (Expand Around Center)","u":"/interview/dsa-coding/strings/palindromic-substrings-count-expand-around-center-expand/","ch":"Coding Problems: DSA","tp":"Strings","qn":28},{"id":"Q1449","t":"Minimum Window Substring: Sliding Window With Frequency Map","u":"/interview/dsa-coding/strings/window-sliding-map-minimum-substring-frequency/","ch":"Coding Problems: DSA","tp":"Strings","qn":29},{"id":"Q1452","t":"Valid Parenthesis String With `*` Wildcard: Greedy Min/Max Open-Count Range","u":"/interview/dsa-coding/strings/string-wildcard-greedy-valid-parenthesis-min-max-open-count/","ch":"Coding Problems: DSA","tp":"Strings","qn":60},{"id":"Q1453","t":"Check If Two Strings Are Rotations of Each Other: s1+s1 Contains s2","u":"/interview/dsa-coding/strings/check-strings-rotations-s1-contains-s2/","ch":"Coding Problems: DSA","tp":"Strings","qn":61},{"id":"Q1458","t":"Valid Palindrome: Left/Right Pointers Skipping Non-Alphanumeric","u":"/interview/dsa-coding/strings/palindrome-valid-left-right-skipping-non-alphanumeric/","ch":"Coding Problems: DSA","tp":"Strings","qn":59},{"id":"Q1466","t":"Longest Substring Without Repeating Characters: Variable Window + HashMap","u":"/interview/dsa-coding/strings/window-hashmap-longest-substring-without-repeating/","ch":"Coding Problems: DSA","tp":"Strings","qn":24},{"id":"Q1467","t":"Longest Repeating Character Replacement: Window Where size − maxFreq ≤ K","u":"/interview/dsa-coding/strings/window-longest-repeating-character-replacement-size-maxfreq/","ch":"Coding Problems: DSA","tp":"Strings","qn":25},{"id":"Q1468","t":"Find All Anagrams in a String — Fixed-Size Window With Frequency Comparison","u":"/interview/dsa-coding/strings/string-window-anagrams-fixed-size-frequency-comparison/","ch":"Coding Problems: DSA","tp":"Strings","qn":12},{"id":"Q1470","t":"Minimum Window Substring: Expand/Shrink With Frequency Map + Matched Count","u":"/interview/dsa-coding/strings/window-map-minimum-substring-expand-shrink-frequency-matched/","ch":"Coding Problems: DSA","tp":"Strings","qn":26},{"id":"Q1554","t":"Explain Union-Find (Disjoint Set Union): find with path compression, union by rank","u":"/interview/dsa-coding/strings/disjoint-path-union-union-find-data-structure-compression/","ch":"Coding Problems: DSA","tp":"Strings","qn":11},{"id":"Q1569","t":"Palindrome Partitioning — backtrack with palindrome check at each cut","u":"/interview/dsa-coding/strings/string-partition-palindrome-partitioning-substring-return/","ch":"Coding Problems: DSA","tp":"Strings","qn":13},{"id":"Q1580","t":"Longest Common Subsequence: 2D DP on two strings","u":"/interview/dsa-coding/strings/strings-return-length-longest-common-subsequence-characters/","ch":"Coding Problems: DSA","tp":"Strings","qn":55},{"id":"Q1585","t":"Word Break: can a string be segmented into dictionary words","u":"/interview/dsa-coding/strings/string-dictionary-words-determine-whether-segmented/","ch":"Coding Problems: DSA","tp":"Strings","qn":17},{"id":"Q1586","t":"Decode Ways — count decodings of a digit string","u":"/interview/dsa-coding/strings/string-message-digits-encoded-maps-26-digit-count-decoded/","ch":"Coding Problems: DSA","tp":"Strings","qn":18},{"id":"Q1591","t":"Longest Palindromic Substring: expand around center","u":"/interview/dsa-coding/strings/string-return-longest-contiguous-substring-reads-forwards/","ch":"Coding Problems: DSA","tp":"Strings","qn":56},{"id":"Q1594","t":"Longest Common Substring: contiguous match 2D DP","u":"/interview/dsa-coding/strings/strings-return-length-longest-substring-contiguous-appears/","ch":"Coding Problems: DSA","tp":"Strings","qn":57},{"id":"Q1596","t":"Interleaving String — can two strings interleave to form a third","u":"/interview/dsa-coding/strings/s3-string-strings-s1-s2-determine-whether-formed/","ch":"Coding Problems: DSA","tp":"Strings","qn":6},{"id":"Q1602","t":"Longest Valid Parentheses: longest balanced substring","u":"/interview/dsa-coding/strings/string-return-length-longest-substring-valid-well-formed/","ch":"Coding Problems: DSA","tp":"Strings","qn":15},{"id":"Q1613","t":"Implement Union-Find (Disjoint Set Union) with Path Compression and Union by Rank","u":"/interview/dsa-coding/strings/disjoint-union-path-implement-union-find-data-structure/","ch":"Coding Problems: DSA","tp":"Strings","qn":16},{"id":"Q1675","t":"Comparing Strings Containing Backspaces (Two Pointers from the End)","u":"/interview/dsa-coding/strings/string-strings-contain-backspace-character-determine-whether/","ch":"Coding Problems: DSA","tp":"Strings","qn":19},{"id":"Q1687","t":"Longest Substring with K Distinct Characters (Sliding Window with a Frequency Map)","u":"/interview/dsa-coding/strings/string-sliding-window-map-number-length-longest-substring/","ch":"Coding Problems: DSA","tp":"Strings","qn":14},{"id":"Q1689","t":"No-repeat Substring (Longest Substring Without Repeating Characters)","u":"/interview/dsa-coding/strings/string-sliding-window-pattern-length-longest-substring/","ch":"Coding Problems: DSA","tp":"Strings","qn":48},{"id":"Q1690","t":"Longest Substring with Same Letters after Replacement (Longest Repeating Character Replacement)","u":"/interview/dsa-coding/strings/string-sliding-window-pattern-integer-length-longest/","ch":"Coding Problems: DSA","tp":"Strings","qn":49},{"id":"Q1693","t":"Minimum Window Substring (Smallest Window Containing All Required Characters)","u":"/interview/dsa-coding/strings/string-pattern-sliding-window-smallest-substring-contains/","ch":"Coding Problems: DSA","tp":"Strings","qn":50},{"id":"Q1694","t":"Challenge 1: Permutation in a String (Does s Contain a Permutation of p)","u":"/interview/dsa-coding/strings/string-pattern-sliding-window-determine-whether-contains/","ch":"Coding Problems: DSA","tp":"Strings","qn":51},{"id":"Q1695","t":"Challenge 2: String Anagrams (Find All Anagram Start Indices)","u":"/interview/dsa-coding/strings/string-pattern-sliding-window-anagram-indices-substrings/","ch":"Coding Problems: DSA","tp":"Strings","qn":52},{"id":"Q1696","t":"Challenge 4: Words Concatenation (Substring with Concatenation of All Words)","u":"/interview/dsa-coding/strings/string-list-exactly-once-sliding-window-pattern-words-length/","ch":"Coding Problems: DSA","tp":"Strings","qn":53},{"id":"Q1751","t":"String Permutations by Changing Case (Letter Case Permutation)","u":"/interview/dsa-coding/strings/string-letters-digits-generate-strings-formed-changing-case/","ch":"Coding Problems: DSA","tp":"Strings","qn":54},{"id":"Q1760","t":"Palindrome Partitioning (All Ways to Split a String into Palindromes)","u":"/interview/dsa-coding/strings/string-partition-palindrome-backtracking-partitioning/","ch":"Coding Problems: DSA","tp":"Strings","qn":58},{"id":"Q1780","t":"Frequency Sort (Sort Characters by Decreasing Frequency)","u":"/interview/dsa-coding/strings/string-sort-map-characters-decreasing-order-often-appear/","ch":"Coding Problems: DSA","tp":"Strings","qn":47},{"id":"Q1810","t":"Longest Palindromic Substring (Longest Contiguous Run That Reads the Same Both Ways)","u":"/interview/dsa-coding/strings/string-pattern-length-longest-palindromic-substring/","ch":"Coding Problems: DSA","tp":"Strings","qn":34},{"id":"Q1811","t":"Count of Palindromic Substrings (Total Number of Contiguous Palindromes)","u":"/interview/dsa-coding/strings/string-pattern-count-contiguous-substrings-palindromes/","ch":"Coding Problems: DSA","tp":"Strings","qn":35},{"id":"Q1812","t":"Minimum Deletions to Make a String Palindrome (Fewest Removals for Symmetry)","u":"/interview/dsa-coding/strings/string-palindrome-pattern-minimum-number-character-deletions/","ch":"Coding Problems: DSA","tp":"Strings","qn":36},{"id":"Q1813","t":"Palindromic Partitioning (Minimum Cuts to Split a String into Palindromes)","u":"/interview/dsa-coding/strings/string-palindrome-pattern-dynamic-partitioning-minimum/","ch":"Coding Problems: DSA","tp":"Strings","qn":37},{"id":"Q1814","t":"Minimum Insertions to Form a Palindrome (Fewest Additions for Symmetry)","u":"/interview/dsa-coding/strings/string-palindrome-pattern-minimum-number-characters-insert/","ch":"Coding Problems: DSA","tp":"Strings","qn":38},{"id":"Q1815","t":"Longest Common Substring (Longest Contiguous Run Shared by Two Strings)","u":"/interview/dsa-coding/strings/pattern-strings-length-longest-substring-appears-contiguous/","ch":"Coding Problems: DSA","tp":"Strings","qn":39},{"id":"Q1816","t":"Longest Common Subsequence (Longest Ordered Sequence Shared by Two Strings)","u":"/interview/dsa-coding/strings/pattern-strings-length-longest-subsequence-common-keeps/","ch":"Coding Problems: DSA","tp":"Strings","qn":40},{"id":"Q1817","t":"Minimum Deletions and Insertions to Transform One String into Another","u":"/interview/dsa-coding/strings/string-pattern-strings-minimum-number-deletions-insertions/","ch":"Coding Problems: DSA","tp":"Strings","qn":41},{"id":"Q1820","t":"Shortest Common Supersequence (Shortest String Containing Both as Subsequences)","u":"/interview/dsa-coding/strings/string-pattern-strings-length-shortest-as-subsequences/","ch":"Coding Problems: DSA","tp":"Strings","qn":42},{"id":"Q1821","t":"Edit Distance (Minimum Insertions, Deletions, and Substitutions Between Two Strings)","u":"/interview/dsa-coding/strings/dynamic-pattern-strings-minimum-number-single-character/","ch":"Coding Problems: DSA","tp":"Strings","qn":43},{"id":"Q1826","t":"Alien Dictionary (Derive Character Order from a Sorted Word List)","u":"/interview/dsa-coding/strings/list-topological-sort-pattern-words-sorted-according-unknown/","ch":"Coding Problems: DSA","tp":"Strings","qn":44},{"id":"Q1829","t":"Word Search with a Trie (Find Which Dictionary Words Appear in a Character Grid)","u":"/interview/dsa-coding/strings/path-trie-pattern-search-grid-characters-dictionary-words/","ch":"Coding Problems: DSA","tp":"Strings","qn":45},{"id":"Q1830","t":"Longest Word in Dictionary (Longest Word Buildable One Character at a Time)","u":"/interview/dsa-coding/strings/list-trie-pattern-words-longest-word-built-character-time/","ch":"Coding Problems: DSA","tp":"Strings","qn":46},{"id":"Q1374","t":"What is a linked list","u":"/interview/dsa-coding/linked-list/list-pointer-array-linked-chain-nodes-node-holds-data-unlike/","ch":"Coding Problems: DSA","tp":"Linked List","qn":4},{"id":"Q1376","t":"Traverse a linked list","u":"/interview/dsa-coding/linked-list/list-null-traverse-linked-head-follow-pointers-until-node/","ch":"Coding Problems: DSA","tp":"Linked List","qn":5},{"id":"Q1377","t":"Find the length of a linked list","u":"/interview/dsa-coding/linked-list/list-length-linked-traverse-count-nodes/","ch":"Coding Problems: DSA","tp":"Linked List","qn":6},{"id":"Q1474","t":"Detect a Cycle in a Linked List: Floyd's Slow/Fast Pointer","u":"/interview/dsa-coding/linked-list/list-pointer-detect-cycle-linked-floyd-slow-fast/","ch":"Coding Problems: DSA","tp":"Linked List","qn":9},{"id":"Q1475","t":"Linked List Cycle II: Find the Start of the Cycle","u":"/interview/dsa-coding/linked-list/list-linked-cycle-ii/","ch":"Coding Problems: DSA","tp":"Linked List","qn":10},{"id":"Q1479","t":"Merge Two Sorted Linked Lists Into One Sorted List","u":"/interview/dsa-coding/linked-list/merge-list-sorted-linked-lists-single-ascending-order-return/","ch":"Coding Problems: DSA","tp":"Linked List","qn":11},{"id":"Q1480","t":"Merge K Sorted Linked Lists Using a Min-Heap of the K Heads","u":"/interview/dsa-coding/linked-list/merge-list-array-sorted-linked-lists-single-heads-already/","ch":"Coding Problems: DSA","tp":"Linked List","qn":12},{"id":"Q1481","t":"Remove the Nth Node From the End of a Linked List (Two-Pointer With N Gap)","u":"/interview/dsa-coding/linked-list/list-head-singly-linked-remove-nth-node-counting-return/","ch":"Coding Problems: DSA","tp":"Linked List","qn":13},{"id":"Q1486","t":"Intersection of Two Linked Lists: Length Diff or Two-Pass Alignment","u":"/interview/dsa-coding/linked-list/null-heads-singly-linked-lists-return-node-intersect/","ch":"Coding Problems: DSA","tp":"Linked List","qn":14},{"id":"Q1520","t":"Lowest Common Ancestor of N Nodes: deepest node whose subtree contains all targets","u":"/interview/dsa-coding/linked-list/tree-list-non-empty-employees-nodes-contain-duplicates/","ch":"Coding Problems: DSA","tp":"Linked List","qn":19},{"id":"Q1521","t":"Diameter of Binary Tree: max leftDepth + rightDepth at any node","u":"/interview/dsa-coding/linked-list/binary-tree-path-root-return-length-diameter-number-edges/","ch":"Coding Problems: DSA","tp":"Linked List","qn":20},{"id":"Q1522","t":"Binary Tree Maximum Path Sum: DFS tracking max-through-node","u":"/interview/dsa-coding/linked-list/binary-tree-path-dfs-root-maximum-sum-sequence-connected/","ch":"Coding Problems: DSA","tp":"Linked List","qn":21},{"id":"Q1523","t":"Subtree of Another Tree: recursive comparison at every node","u":"/interview/dsa-coding/linked-list/binary-tree-roots-trees-root-subroot-return-true-subtree/","ch":"Coding Problems: DSA","tp":"Linked List","qn":22},{"id":"Q1526","t":"Binary Tree Right Side View: BFS taking last node per level","u":"/interview/dsa-coding/linked-list/binary-tree-bfs-root-return-values-nodes-looking-right-side/","ch":"Coding Problems: DSA","tp":"Linked List","qn":23},{"id":"Q1527","t":"Balanced Binary Tree: check height diff ≤ 1 at every node","u":"/interview/dsa-coding/linked-list/binary-tree-root-determine-whether-height-balanced-meaning/","ch":"Coding Problems: DSA","tp":"Linked List","qn":24},{"id":"Q1555","t":"Number of Connected Components: union nodes, count roots","u":"/interview/dsa-coding/linked-list/list-union-nodes-undirected-edges-count-number-connected/","ch":"Coding Problems: DSA","tp":"Linked List","qn":3},{"id":"Q1627","t":"Detect a Cycle in a Linked List (Floyd's Tortoise and Hare)","u":"/interview/dsa-coding/linked-list/list-determine-whether-singly-linked-contains-cycle-node/","ch":"Coding Problems: DSA","tp":"Linked List","qn":2},{"id":"Q1633","t":"LRU Cache: HashMap plus doubly linked list for O(1) get and put","u":"/interview/dsa-coding/linked-list/lru-cache-hashmap-list-doubly-linked-plus/","ch":"Coding Problems: DSA","tp":"Linked List","qn":1},{"id":"Q1732","t":"Level Order Successor (Next Node in BFS Order)","u":"/interview/dsa-coding/linked-list/binary-tree-null-bfs-root-value-target-node-level-order/","ch":"Coding Problems: DSA","tp":"Linked List","qn":15},{"id":"Q1735","t":"Right View of a Binary Tree (Last Node of Each Level)","u":"/interview/dsa-coding/linked-list/binary-tree-root-imagine-standing-right-side-return-values/","ch":"Coding Problems: DSA","tp":"Linked List","qn":16},{"id":"Q1736","t":"Left View of a Binary Tree (First Node of Each Level)","u":"/interview/dsa-coding/linked-list/binary-tree-root-imagine-standing-left-side-return-values/","ch":"Coding Problems: DSA","tp":"Linked List","qn":17},{"id":"Q1742","t":"Tree Diameter (Longest Path Between Any Two Nodes)","u":"/interview/dsa-coding/linked-list/binary-tree-path-diameter-defined-as-number-nodes-longest/","ch":"Coding Problems: DSA","tp":"Linked List","qn":18},{"id":"Q1785","t":"Merge K Sorted Lists (Combine K Sorted Linked Lists into One)","u":"/interview/dsa-coding/linked-list/merge-list-pattern-sorted-linked-lists-single-return-head/","ch":"Coding Problems: DSA","tp":"Linked List","qn":8},{"id":"Q1834","t":"Prim's Minimum Spanning Tree (Cheapest Way to Connect Every Node)","u":"/interview/dsa-coding/linked-list/graph-tree-queue-connected-weighted-undirected-minimum/","ch":"Coding Problems: DSA","tp":"Linked List","qn":7},{"id":"Q1378","t":"What is a stack","u":"/interview/dsa-coding/stack-queue/stack-box-add-remove-top-lifo-plates/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":13},{"id":"Q1380","t":"What is a Queue?","u":"/interview/dsa-coding/stack-queue/queue-line-add-back-remove-front-fifo-ticket-counter/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":10},{"id":"Q1450","t":"Valid Parentheses: Stack Matching Pairs","u":"/interview/dsa-coding/stack-queue/stack-matching-valid-parentheses-pairs/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":19},{"id":"Q1451","t":"Longest Valid Parentheses: Stack Tracking Indices","u":"/interview/dsa-coding/stack-queue/stack-longest-valid-parentheses-tracking-indices/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":20},{"id":"Q1504","t":"Valid Parentheses: stack matching bracket pairs","u":"/interview/dsa-coding/stack-queue/string-matching-stack-containing-characters-determine-valid/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":4},{"id":"Q1505","t":"Min Stack: design with O(1) getMin (auxiliary min stack)","u":"/interview/dsa-coding/stack-queue/design-stack-supports-push-pop-top-retrieving-minimum/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":11},{"id":"Q1506","t":"Implement Queue using two Stacks / Stack using two Queues","u":"/interview/dsa-coding/stack-queue/queue-stack-implement-first-in-first-out-stacks-implementing/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":12},{"id":"Q1507","t":"Evaluate Postfix Expression: stack-based evaluation","u":"/interview/dsa-coding/stack-queue/arithmetic-expression-reverse-polish-postfix-notation/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":6},{"id":"Q1509","t":"Daily Temperatures: decreasing stack of indices","u":"/interview/dsa-coding/stack-queue/array-stack-daily-temperatures-return-position-holds-number/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":15},{"id":"Q1510","t":"Largest Rectangle in Histogram: increasing stack, compute area on pop","u":"/interview/dsa-coding/stack-queue/array-stack-bar-heights-representing-histogram-width-area/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":16},{"id":"Q1515","t":"Binary Tree Level Order Traversal: BFS with queue","u":"/interview/dsa-coding/stack-queue/binary-tree-bfs-queue-root-return-level-order-traversal/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":17},{"id":"Q1516","t":"Binary Tree Inorder/Preorder/Postorder: recursive and iterative (stack)","u":"/interview/dsa-coding/stack-queue/binary-tree-stack-implement-depth-first-traversals-inorder/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":18},{"id":"Q1568","t":"Generate Parentheses: track open and close counts","u":"/interview/dsa-coding/stack-queue/pairs-parentheses-generate-combinations-well-formed-balanced/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":5},{"id":"Q1604","t":"Validate Balanced Parentheses Using a Stack","u":"/interview/dsa-coding/stack-queue/string-matching-stack-containing-bracket-characters-round/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":2},{"id":"Q1605","t":"Design a Min Stack (Constant-Time Minimum)","u":"/interview/dsa-coding/stack-queue/design-stack-supports-push-pop-top-retrieving-minimum-2/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":1},{"id":"Q1607","t":"Implement a Queue Using Two Stacks","u":"/interview/dsa-coding/stack-queue/queue-implement-first-in-first-out-last-in-first-out-stacks/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":7},{"id":"Q1621","t":"Generate All Valid Parentheses Combinations (Backtracking)","u":"/interview/dsa-coding/stack-queue/backtracking-pairs-parentheses-generate-combinations/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":3},{"id":"Q1635","t":"Min Stack: O(1) push, pop, top, and getMin","u":"/interview/dsa-coding/stack-queue/stack-min-push-pop-top-getmin/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":9},{"id":"Q1638","t":"Implement Queue using Stacks / Stack using Queues","u":"/interview/dsa-coding/stack-queue/queue-stack-implement-stacks-queues/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":8},{"id":"Q1752","t":"Balanced Parentheses (Generate All Valid Combinations)","u":"/interview/dsa-coding/stack-queue/backtracking-number-generate-combinations-pairs-balanced/","ch":"Coding Problems: DSA","tp":"Stack & Queue","qn":14},{"id":"Q1386","t":"What is a HashMap?","u":"/interview/dsa-coding/hashmap-problems/hashmap-data-structure-stores-key-value-pairs-key-gives/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":16},{"id":"Q1421","t":"Contains Duplicate: Check Using a HashSet in O(n)","u":"/interview/dsa-coding/hashmap-problems/contains-duplicate-check-hashset/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":4},{"id":"Q1422","t":"Two Sum: Return Indices of a Pair Summing to Target","u":"/interview/dsa-coding/hashmap-problems/hashmap-sum-return-indices-pair-summing-target-complement/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":17},{"id":"Q1427","t":"3Sum: Sort + Fix One + Two-Pointer, Skip Duplicates","u":"/interview/dsa-coding/hashmap-problems/sort-3sum-fix-two-pointer-scan-skip-duplicates/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":1},{"id":"Q1460","t":"3Sum: Sort Then Two-Pointer for the Remaining Pair","u":"/interview/dsa-coding/hashmap-problems/sort-3sum-two-pointer-remaining-pair/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":2},{"id":"Q1477","t":"Find the Duplicate Number: Floyd's on Index-to-Value Mapping","u":"/interview/dsa-coding/hashmap-problems/index-duplicate-number-floyd-value-mapping-index-to-value/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":5},{"id":"Q1502","t":"Longest Consecutive Sequence: HashSet, Expand Each Potential Start","u":"/interview/dsa-coding/hashmap-problems/array-unsorted-integer-length-longest-run-consecutive/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":11},{"id":"Q1541","t":"Clone Graph: BFS/DFS with HashMap old→new","u":"/interview/dsa-coding/hashmap-problems/graph-list-clone-bfs-dfs-hashmap-reference-node-connected/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":6},{"id":"Q1562","t":"Subsets II (with duplicates): sort then skip duplicates","u":"/interview/dsa-coding/hashmap-problems/array-backtracking-sort-contain-duplicates-return-unique/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":7},{"id":"Q1564","t":"Permutations II (with duplicates): sort then skip same-level duplicates","u":"/interview/dsa-coding/hashmap-problems/array-sort-contain-duplicate-integers-return-unique/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":8},{"id":"Q1566","t":"Combination Sum II: each number used once, skip duplicates","u":"/interview/dsa-coding/hashmap-problems/once-candidates-contain-duplicates-target-return-unique/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":9},{"id":"Q1634","t":"LFU Cache: HashMap plus frequency map plus LinkedHashSet buckets","u":"/interview/dsa-coding/hashmap-problems/lfu-cache-hashmap-map-frequency-linkedhashset-plus-buckets/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":3},{"id":"Q1667","t":"Remove Duplicates from a Sorted Structure (Two Pointers, In Place)","u":"/interview/dsa-coding/hashmap-problems/array-list-once-sorted-linked-remove-duplicate-elements/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":15},{"id":"Q1716","t":"Find the Duplicate Number (Single Repeated Value in 1..n)","u":"/interview/dsa-coding/hashmap-problems/array-exactly-sort-integers-integer-range-number-repeated/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":12},{"id":"Q1717","t":"Find all Duplicate Numbers (Every Value Appearing Twice in 1..n)","u":"/interview/dsa-coding/hashmap-problems/array-once-exactly-list-integers-range-numbers-appear-twice/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":13},{"id":"Q1718","t":"Find the Corrupt Pair (One Duplicate and One Missing in 1..n)","u":"/interview/dsa-coding/hashmap-problems/array-exactly-once-numbers-hold-value-due-corruption-number/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":14},{"id":"Q792","t":"Coding/DSA: sliding window, two pointers, HashMap, DP, trees, graphs (finance context)","u":"/interview/dsa-coding/hashmap-problems/sliding-window-hashmap-dynamic-programming-tree-graph/","ch":"Coding Problems: DSA","tp":"HashMap & HashSet Problems","qn":10},{"id":"Q1428","t":"Container With Most Water: Two-Pointer From Ends","u":"/interview/dsa-coding/two-pointers/container-water-two-pointer-ends-move-shorter-side/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":1},{"id":"Q1429","t":"Trapping Rain Water: Two-Pointer Left-Max and Right-Max","u":"/interview/dsa-coding/two-pointers/trapping-rain-water-two-pointer-tracking-left-max-right-max/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":9},{"id":"Q1454","t":"Explain the Two Pointers Technique: Opposite-End vs Same-Direction vs Fast/Slow","u":"/interview/dsa-coding/two-pointers/pointers-technique-opposite-end-same-direction-fast-slow/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":3},{"id":"Q1459","t":"Container With Most Water: Opposite-End, Move the Shorter Side","u":"/interview/dsa-coding/two-pointers/container-water-opposite-end-move-shorter-side/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":2},{"id":"Q1461","t":"Trapping Rain Water: Two-Pointer With Left-Max and Right-Max","u":"/interview/dsa-coding/two-pointers/trapping-rain-water-two-pointer-left-max-right-max/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":10},{"id":"Q1542","t":"Pacific Atlantic Water Flow: multi-source BFS/DFS from both oceans","u":"/interview/dsa-coding/two-pointers/bfs-dfs-grid-cell-heights-water-flow-neighbor-equal-lower/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":4},{"id":"Q1666","t":"Rearrange 0s and 1s (In-Place Partition with Two Pointers)","u":"/interview/dsa-coding/two-pointers/array-partition-containing-0s-1s-rearrange-place-followed/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":5},{"id":"Q1669","t":"Triplet Sum to Zero (3Sum with Two Pointers)","u":"/interview/dsa-coding/two-pointers/array-numbers-unique-triplets-add-zero-triplet-solution/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":6},{"id":"Q1670","t":"Triplet Sum Close to Target (3Sum Closest)","u":"/interview/dsa-coding/two-pointers/array-numbers-target-value-triplet-sum-closest-return/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":7},{"id":"Q1671","t":"Triplets with Smaller Sum (Two Pointers with Counting)","u":"/interview/dsa-coding/two-pointers/array-target-value-count-triplets-sum-strictly-less/","ch":"Coding Problems: DSA","tp":"Two Pointers","qn":8},{"id":"Q1425","t":"Max Consecutive Ones: Longest Run of 1s","u":"/interview/dsa-coding/sliding-window/max-consecutive-ones-count-longest-run-1s/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":2},{"id":"Q1463","t":"Explain Sliding Window: Fixed-Size vs Variable-Size, Expand Right / Shrink Left","u":"/interview/dsa-coding/sliding-window/sliding-window-fixed-size-variable-size-expand-right-shrink/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":3},{"id":"Q1469","t":"Fruit Into Baskets / Longest With At Most K Distinct: Variable Window + Char Count","u":"/interview/dsa-coding/sliding-window/window-char-fruit-baskets-longest-distinct-variable-count/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":1},{"id":"Q1471","t":"Sliding Window Maximum: Monotonic Deque Maintaining Decreasing Order","u":"/interview/dsa-coding/sliding-window/sliding-window-deque-maximum-monotonic-maintaining/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":4},{"id":"Q1472","t":"Max Consecutive Ones III: Sliding Window Allowing At Most K Zero Flips","u":"/interview/dsa-coding/sliding-window/sliding-window-max-consecutive-ones-iii-allowing-zero-flips/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":5},{"id":"Q1511","t":"Sliding Window Maximum: monotonic deque","u":"/interview/dsa-coding/sliding-window/array-window-sliding-deque-size-return-maximum-value/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":7},{"id":"Q1745","t":"Sliding Window Median (Two Heaps with Lazy Deletion)","u":"/interview/dsa-coding/sliding-window/array-window-sliding-numbers-size-median-contiguous-as/","ch":"Coding Problems: DSA","tp":"Sliding Window","qn":6},{"id":"Q1390","t":"What is a Binary Search Tree (BST)?","u":"/interview/dsa-coding/binary-search/binary-search-tree-bst-left-child-parent-right-searching/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":1},{"id":"Q1399","t":"What is Binary Search?","u":"/interview/dsa-coding/binary-search/binary-search-array-log-element-sorted-checking-middle/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":8},{"id":"Q1400","t":"Implement Binary Search (Iterative)","u":"/interview/dsa-coding/binary-search/binary-search-implement-iterative-maintain-left-right/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":9},{"id":"Q1401","t":"Difference Between Linear Search O(n) and Binary Search O(log n)","u":"/interview/dsa-coding/binary-search/search-binary-log-difference-linear-checks-element-cuts/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":10},{"id":"Q1488","t":"Find First and Last Position of a Target: Modified Binary Search for Boundaries","u":"/interview/dsa-coding/binary-search/array-index-binary-search-sorted-contain-duplicates-target/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":11},{"id":"Q1489","t":"Search Insert Position: Find Where a Target Would Be Inserted","u":"/interview/dsa-coding/binary-search/array-index-search-sorted-distinct-integers-target-value/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":12},{"id":"Q1493","t":"Koko Eating Bananas: Binary Search on the Answer With a Feasibility Check","u":"/interview/dsa-coding/binary-search/binary-search-koko-piles-bananas-hours-guards-return-hour/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":5},{"id":"Q1494","t":"Capacity to Ship Packages Within D Days: Binary Search on the Answer","u":"/interview/dsa-coding/binary-search/binary-search-package-weights-loading-order-days-minimum/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":13},{"id":"Q1496","t":"Square Root of a Number: Binary Search for the Integer Square Root","u":"/interview/dsa-coding/binary-search/binary-search-non-negative-integer-compute-return-square/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":3},{"id":"Q1517","t":"Validate Binary Search Tree: in-range DFS with min/max bounds","u":"/interview/dsa-coding/binary-search/binary-tree-search-dfs-root-determine-whether-valid-node/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":14},{"id":"Q1620","t":"Word Search in a Grid (DFS Backtracking)","u":"/interview/dsa-coding/binary-search/path-once-search-dfs-backtracking-grid-characters-word/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":2},{"id":"Q1629","t":"Search a 2D Matrix: binary search on a conceptually flattened grid","u":"/interview/dsa-coding/binary-search/search-matrix-binary-2d-flattened-top-right-elimination/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":7},{"id":"Q1637","t":"Time-Based Key-Value Store: map of key to sorted (timestamp, value) with binary search","u":"/interview/dsa-coding/binary-search/map-binary-search-time-based-key-value-store-key-sorted/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":6},{"id":"Q1755","t":"Structurally Unique Binary Search Trees (Generate All Shapes)","u":"/interview/dsa-coding/binary-search/binary-search-number-generate-structurally-unique-trees/","ch":"Coding Problems: DSA","tp":"Binary Search","qn":4},{"id":"Q1395","t":"What is Sorting?","u":"/interview/dsa-coding/sorting/sorting-arranging-elements-specific-order-ascending/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":9},{"id":"Q1396","t":"Implement Bubble Sort","u":"/interview/dsa-coding/sorting/sort-implement-bubble-compare-adjacent-elements-swap-wrong/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":10},{"id":"Q1397","t":"Implement Selection Sort","u":"/interview/dsa-coding/sorting/sort-implement-selection-smallest-element-second-repeat/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":11},{"id":"Q1398","t":"Implement Insertion Sort","u":"/interview/dsa-coding/sorting/sort-implement-insertion-pick-element-insert-correct/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":12},{"id":"Q1424","t":"Sort 0s, 1s, and 2s in One Pass (Dutch National Flag)","u":"/interview/dsa-coding/sorting/sort-0s-1s-2s-pass-dutch-national-flag-pointers/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":13},{"id":"Q1462","t":"Sort Colors (Dutch National Flag): Three Pointers for 0s, 1s, 2s","u":"/interview/dsa-coding/sorting/sort-colors-dutch-national-flag-pointers-0s-1s-2s/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":14},{"id":"Q1535","t":"Merge K Sorted Lists: min-heap of K heads","u":"/interview/dsa-coding/sorting/merge-list-sorted-linked-lists-return-head-min-heap-heads/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":7},{"id":"Q1537","t":"Kth Largest in a Stream: maintain a min-heap of size K","u":"/interview/dsa-coding/sorting/design-list-stream-initialized-value-initial-numbers/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":4},{"id":"Q1581","t":"Longest Increasing Subsequence: O(n log n) patience sort","u":"/interview/dsa-coding/sorting/array-log-sort-integers-return-length-longest-strictly/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":22},{"id":"Q1610","t":"Merge K Sorted Lists Using a Min-Heap","u":"/interview/dsa-coding/sorting/merge-list-queue-heap-sorted-lists-efficiently-priority/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":8},{"id":"Q1615","t":"Topological Sort and Cycle Detection (Course Schedule via Kahn's Algorithm)","u":"/interview/dsa-coding/sorting/topological-sort-tasks-prerequisite-dependencies-produce/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":2},{"id":"Q1624","t":"Implement Quick Sort","u":"/interview/dsa-coding/sorting/quick-sort-partition-implement-algorithm-step-pivot-choice/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":5},{"id":"Q1625","t":"Implement Merge Sort","u":"/interview/dsa-coding/sorting/merge-sort-implement-algorithm-divide-steps-analyse-time/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":6},{"id":"Q1626","t":"Implement Heap Sort","u":"/interview/dsa-coding/sorting/heap-sort-binary-implement-heapify-sort-down-phases-analyse/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":1},{"id":"Q1673","t":"Dutch National Flag Problem (Three-Way Partition, Sort Colors)","u":"/interview/dsa-coding/sorting/array-sort-partition-containing-distinct-values-place-single/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":21},{"id":"Q1710","t":"Insert Interval (Insert and Merge into a Sorted Interval List)","u":"/interview/dsa-coding/sorting/list-merge-pattern-non-overlapping-intervals-sorted-interval/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":19},{"id":"Q1713","t":"Cyclic Sort (Place Each Number at Its Correct Index)","u":"/interview/dsa-coding/sorting/array-sort-pattern-index-containing-distinct-numbers-taken/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":20},{"id":"Q1776","t":"Kth Smallest Number (Find the Kth Smallest with a Max-Heap)","u":"/interview/dsa-coding/sorting/array-unsorted-numbers-value-kth-smallest-number-max-heap/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":16},{"id":"Q1781","t":"Kth Largest Number in a Stream (Maintain the Kth Largest as Numbers Arrive)","u":"/interview/dsa-coding/sorting/design-list-stream-value-initial-numbers-returns-kth-largest/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":17},{"id":"Q1786","t":"Kth Smallest Number in M Sorted Lists (Find the Kth Smallest Across Sorted Lists)","u":"/interview/dsa-coding/sorting/merge-heap-sorted-lists-numbers-kth-smallest-number-among/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":18},{"id":"Q1822","t":"Topological Sort (Linear Ordering of a Directed Acyclic Graph)","u":"/interview/dsa-coding/sorting/graph-topological-sort-pattern-directed-acyclic-dependencies/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":15},{"id":"Q838","t":"Java 8 Practical: Stream API with Employee/Trade model (grouping, sorting, aggregation)","u":"/interview/dsa-coding/sorting/stream-api-partitioning-demonstrate-practical-usage-finance/","ch":"Coding Problems: DSA","tp":"Sorting & Searching","qn":3},{"id":"Q1382","t":"What is Recursion?","u":"/interview/dsa-coding/recursion-backtracking/recursion-base-calls-itself-needs-case-stop-recursive-call/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":11},{"id":"Q1385","t":"Print Numbers 1 to N Using Recursion","u":"/interview/dsa-coding/recursion-backtracking/recursion-base-numbers-return-recursive-call-n-1/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":10},{"id":"Q1412","t":"Find the Power of a Number Using Recursion","u":"/interview/dsa-coding/recursion-backtracking/recursion-base-power-number-10-n-1/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":4},{"id":"Q1531","t":"Word Search II: Trie + DFS backtracking on grid","u":"/interview/dsa-coding/recursion-backtracking/list-once-search-trie-dfs-backtracking-board-characters/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":21},{"id":"Q1565","t":"Combination Sum: reusable candidates, keep index to dedup","u":"/interview/dsa-coding/recursion-backtracking/index-distinct-candidates-target-return-unique-combinations/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":6},{"id":"Q1567","t":"Letter Combinations of a Phone Number","u":"/interview/dsa-coding/recursion-backtracking/string-digits-2-9-return-letter-combinations-number-spell/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":7},{"id":"Q1571","t":"N-Queens: place queens row by row, check conflicts","u":"/interview/dsa-coding/recursion-backtracking/place-queens-n-by-n-chessboard-attack-return-distinct/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":9},{"id":"Q1572","t":"Sudoku Solver: row, column, and box constraint checking","u":"/interview/dsa-coding/recursion-backtracking/exactly-once-solve-9x9-sudoku-board-filling-empty-cells-row/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":23},{"id":"Q1584","t":"Partition Equal Subset Sum: subset-sum DP","u":"/interview/dsa-coding/recursion-backtracking/array-partition-positive-integers-determine-whether-split/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":8},{"id":"Q1616","t":"Generate All Subsets of a Set (Backtracking / Power Set)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-distinct-elements-generate-possible-subsets/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":5},{"id":"Q1617","t":"Generate All Permutations of a Set (Backtracking)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-distinct-elements-generate-possible-orderings/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":2},{"id":"Q1618","t":"Combination Sum (Backtracking with Reuse)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-distinct-positive-numbers-target-unique/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":3},{"id":"Q1619","t":"Solve the N-Queens Problem (Backtracking with Constraint Pruning)","u":"/interview/dsa-coding/recursion-backtracking/list-backtracking-place-queens-n-by-n-chessboard-attack/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":1},{"id":"Q1631","t":"Word Search: depth-first search with backtracking on a grid","u":"/interview/dsa-coding/recursion-backtracking/search-dfs-backtracking-word-grid-depth-first/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":22},{"id":"Q1748","t":"Subsets (Generate All Subsets of a Distinct Set)","u":"/interview/dsa-coding/recursion-backtracking/distinct-numbers-generate-possible-subsets-including-empty/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":16},{"id":"Q1750","t":"Permutations (Generate All Orderings of a Distinct Set)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-distinct-numbers-generate-possible-permutations/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":17},{"id":"Q1757","t":"Letter Combinations of a Phone Number (All Keypad Letter Combinations)","u":"/interview/dsa-coding/recursion-backtracking/string-backtracking-digits-return-possible-letter/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":18},{"id":"Q1758","t":"Combination Sum (All Combinations Reaching a Target with Reuse)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-index-distinct-positive-numbers-target-unique/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":19},{"id":"Q1759","t":"Combinations (All Ways to Choose K Items from N)","u":"/interview/dsa-coding/recursion-backtracking/backtracking-index-integers-return-possible-combinations/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":20},{"id":"Q1793","t":"Subset Sum (Decide if a Subset Reaches an Exact Target)","u":"/interview/dsa-coding/recursion-backtracking/equals-knapsack-boolean-positive-numbers-determine-subset/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":13},{"id":"Q1794","t":"Minimum Subset Sum Difference (Split into Two Subsets with the Smallest Difference)","u":"/interview/dsa-coding/recursion-backtracking/partition-knapsack-positive-numbers-subsets-absolute/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":14},{"id":"Q1799","t":"Coin Change: Number of Ways (Count Combinations to Make an Amount)","u":"/interview/dsa-coding/recursion-backtracking/knapsack-coin-denominations-total-amount-count-number/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":15},{"id":"Q1842","t":"Subset Sum (Can a Subset Reach an Exact Target)","u":"/interview/dsa-coding/recursion-backtracking/array-exactly-dynamic-programming-boolean-non-negative/","ch":"Coding Problems: DSA","tp":"Recursion & Backtracking","qn":12},{"id":"Q1384","t":"Write a Recursive Function for Fibonacci Number","u":"/interview/dsa-coding/dynamic-programming/fibonacci-base-recursive-number-fib-n-1-n-2/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":12},{"id":"Q1558","t":"Number of Islands II (Dynamic): running island count as land is added","u":"/interview/dsa-coding/dynamic-programming/path-union-dynamic-all-water-grid-add-land-cell-time/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":3},{"id":"Q1573","t":"How to Identify a DP Problem: overlapping subproblems and optimal substructure","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-recognize-problem-solved-overlapping/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":11},{"id":"Q1574","t":"Climbing Stairs: dp[i] = dp[i-1] + dp[i-2]","u":"/interview/dsa-coding/dynamic-programming/climb-steps-time-distinct-reach-top-stairs-climbing-dp-i-1/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":31},{"id":"Q1575","t":"House Robber: cannot rob adjacent houses","u":"/interview/dsa-coding/dynamic-programming/array-non-negative-house-values-maximum-amount-rob-without/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":29},{"id":"Q1578","t":"Coin Change: minimum coins to make an amount","u":"/interview/dsa-coding/dynamic-programming/coin-denominations-target-amount-return-fewest-number-coins/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":1},{"id":"Q1579","t":"Coin Change II: number of ways to make an amount","u":"/interview/dsa-coding/dynamic-programming/coin-denominations-target-amount-return-total-number/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":2},{"id":"Q1582","t":"Edit Distance: minimum insert, delete, replace (Levenshtein)","u":"/interview/dsa-coding/dynamic-programming/string-delete-strings-return-minimum-number-single-character/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":10},{"id":"Q1583","t":"0/1 Knapsack: maximize value under a weight capacity","u":"/interview/dsa-coding/dynamic-programming/knapsack-once-item-weights-values-capacity-maximize-total/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":8},{"id":"Q1592","t":"Longest Palindromic Subsequence: interval DP","u":"/interview/dsa-coding/dynamic-programming/string-return-length-longest-subsequence-reads-forwards/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":30},{"id":"Q1598","t":"Regular Expression Matching: '.' and '*' with DP","u":"/interview/dsa-coding/dynamic-programming/matching-string-implement-regular-expression-matches-single/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":4},{"id":"Q1599","t":"Wildcard Matching: '?' and '*' with DP","u":"/interview/dsa-coding/dynamic-programming/wildcard-pattern-matching-implement-matches-single-character/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":5},{"id":"Q1600","t":"Burst Balloons: interval DP choosing the last balloon to burst","u":"/interview/dsa-coding/dynamic-programming/balloons-values-bursting-balloon-yields-nums-left-right/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":7},{"id":"Q1601","t":"Matrix Chain Multiplication: interval DP for minimum multiplications","u":"/interview/dsa-coding/dynamic-programming/matrix-dimensions-chain-matrices-minimum-number-scalar/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":9},{"id":"Q1791","t":"0/1 Knapsack (Maximize Value Within a Weight Capacity, Each Item Once)","u":"/interview/dsa-coding/dynamic-programming/knapsack-once-dynamic-programming-pattern-weights-profits/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":16},{"id":"Q1797","t":"Unbounded Knapsack (Maximize Value with Unlimited Copies of Each Item)","u":"/interview/dsa-coding/dynamic-programming/knapsack-dynamic-programming-pattern-weights-profits-items/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":17},{"id":"Q1800","t":"Minimum Coin Change (Fewest Coins to Make an Amount)","u":"/interview/dsa-coding/dynamic-programming/knapsack-coin-denominations-total-amount-minimum-number/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":18},{"id":"Q1802","t":"Fibonacci Numbers (Compute the Nth Fibonacci with Dynamic Programming)","u":"/interview/dsa-coding/dynamic-programming/fibonacci-dynamic-programming-pattern-compute-nth-number-sum/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":19},{"id":"Q1803","t":"Staircase (Count Ways to Climb N Stairs Taking 1, 2, or 3 Steps)","u":"/interview/dsa-coding/dynamic-programming/fibonacci-pattern-staircase-steps-count-number-distinct/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":20},{"id":"Q1808","t":"Climbing Stairs (Count Ways to Reach the Top Taking 1 or 2 Steps)","u":"/interview/dsa-coding/dynamic-programming/fibonacci-pattern-staircase-steps-count-number-distinct-2/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":21},{"id":"Q1818","t":"Longest Increasing Subsequence (Longest Strictly Rising Ordered Subsequence)","u":"/interview/dsa-coding/dynamic-programming/array-pattern-numbers-length-longest-strictly-increasing/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":22},{"id":"Q1836","t":"Fibonacci Number (Introduction to Dynamic Programming with Memoization)","u":"/interview/dsa-coding/dynamic-programming/fibonacci-recursion-dynamic-programming-compute-nth-number/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":23},{"id":"Q1837","t":"Climbing Stairs (Count Distinct Ways with Steps of One or Two)","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-climb-staircase-steps-move-either-step/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":26},{"id":"Q1839","t":"0/1 Knapsack (Maximum Value Within a Weight Budget, Memoized)","u":"/interview/dsa-coding/dynamic-programming/knapsack-once-recursion-items-weight-value-capacity-choose/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":27},{"id":"Q1840","t":"Tabulation Introduction (Bottom-Up Dynamic Programming Explained)","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-base-concept-tabulation-differs/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":6},{"id":"Q1841","t":"0/1 Knapsack Tabulation (Bottom-Up Table with Space Optimisation)","u":"/interview/dsa-coding/dynamic-programming/knapsack-recursion-solve-problem-bottom-up-table-instead/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":13},{"id":"Q1844","t":"Longest Increasing Subsequence (Longest Strictly Rising Pick)","u":"/interview/dsa-coding/dynamic-programming/array-dynamic-programming-numbers-length-longest-strictly/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":14},{"id":"Q1846","t":"Longest Common Subsequence (Longest Order-Preserving Match Between Two Sequences)","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-sequences-length-longest-subsequence/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":15},{"id":"Q1849","t":"Minimum Cost to Cut a Stick (Interval Dynamic Programming)","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-stick-length-positions-cut-costs-piece/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":24},{"id":"Q1850","t":"Dynamic Programming Revision (Recognising and Framing DP Problems)","u":"/interview/dsa-coding/dynamic-programming/dynamic-programming-state-summarise-recognise-problem-frame/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":25},{"id":"Q1854","t":"Fractional Knapsack (Greedy by Value Density)","u":"/interview/dsa-coding/dynamic-programming/greedy-knapsack-items-weights-values-capacity-maximise-total/","ch":"Coding Problems: DSA","tp":"Dynamic Programming","qn":28},{"id":"Q1389","t":"What is a Binary Tree?","u":"/interview/dsa-coding/trees/binary-tree-node-children-left-child-right-topmost-called/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":3},{"id":"Q1391","t":"Traverse a Binary Tree (Inorder, Preorder, Postorder)","u":"/interview/dsa-coding/trees/binary-tree-bst-traverse-inorder-left-root-right-gives/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":4},{"id":"Q1394","t":"What is DFS (Depth First Search)?","u":"/interview/dsa-coding/trees/dfs-search-recursion-stack-path-depth-as-deep-possible/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":5},{"id":"Q1512","t":"Maximum Depth of Binary Tree: recursive DFS","u":"/interview/dsa-coding/trees/binary-tree-path-dfs-root-return-maximum-depth-number-nodes/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":19},{"id":"Q1513","t":"Same Tree: check if two trees are identical","u":"/interview/dsa-coding/trees/binary-tree-roots-trees-determine-whether-structurally/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":20},{"id":"Q1514","t":"Invert/Mirror Binary Tree: swap left and right recursively","u":"/interview/dsa-coding/trees/binary-tree-root-invert-left-right-children-node-swapped/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":21},{"id":"Q1519","t":"Lowest Common Ancestor: recursive: if left and right both non-null, current is LCA","u":"/interview/dsa-coding/trees/binary-tree-root-nodes-lowest-common-ancestor-deepest-node/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":22},{"id":"Q1524","t":"Construct Tree from Preorder and Inorder Traversal","u":"/interview/dsa-coding/trees/binary-tree-arrays-representing-preorder-inorder-traversal/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":23},{"id":"Q1525","t":"Serialize and Deserialize Binary Tree","u":"/interview/dsa-coding/trees/design-binary-tree-string-algorithm-serialize-deserialize/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":24},{"id":"Q1528","t":"Path Sum / Path Sum III: root-to-leaf path / all downward paths summing to target","u":"/interview/dsa-coding/trees/path-tree-sum-target-determine-root-to-leaf-sums-iii-count/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":25},{"id":"Q1549","t":"Graph Valid Tree: connected and no cycle","u":"/interview/dsa-coding/trees/list-tree-graph-nodes-labeled-minus-undirected-edges/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":2},{"id":"Q1588","t":"Minimum Path Sum: cheapest path through a weighted grid","u":"/interview/dsa-coding/trees/path-grid-non-negative-costs-top-left-bottom-right-minimizes/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":8},{"id":"Q1603","t":"Unique Paths II: grid paths with obstacles","u":"/interview/dsa-coding/trees/robot-moves-right-down-grid-cells-blocked-marked-count/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":1},{"id":"Q1612","t":"Implement a Trie (Prefix Tree) with Insert, Search, and startsWith","u":"/interview/dsa-coding/trees/trie-tree-search-implement-supporting-inserting-word/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":7},{"id":"Q1726","t":"Binary Tree Level Order Traversal (BFS Level by Level)","u":"/interview/dsa-coding/trees/binary-tree-search-pattern-bfs-root-return-node-values/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":10},{"id":"Q1728","t":"Zigzag Traversal (Alternating Level Order)","u":"/interview/dsa-coding/trees/binary-tree-root-return-node-values-zigzag-level-order-left/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":11},{"id":"Q1730","t":"Minimum Depth of a Binary Tree (Nearest Leaf via BFS)","u":"/interview/dsa-coding/trees/binary-tree-path-bfs-root-minimum-depth-number-nodes-along/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":12},{"id":"Q1731","t":"Maximum Depth of a Binary Tree (Count the Levels via BFS)","u":"/interview/dsa-coding/trees/binary-tree-path-bfs-root-return-maximum-depth-number-nodes/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":13},{"id":"Q1733","t":"Connect Level Order Siblings (Populate Next Right Pointers per Level)","u":"/interview/dsa-coding/trees/binary-tree-pointer-null-node-extra-connect-immediate-right/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":14},{"id":"Q1734","t":"Connect All Level Order Siblings (One Continuous Next Chain)","u":"/interview/dsa-coding/trees/binary-tree-pointer-null-extra-node-connect-nodes-forms/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":15},{"id":"Q1737","t":"Binary Tree Path Sum (Does a Root-to-Leaf Path Equal a Target?)","u":"/interview/dsa-coding/trees/binary-tree-path-equals-target-sum-determine-whether/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":16},{"id":"Q1738","t":"All Paths for a Sum (Collect Every Root-to-Leaf Path Matching a Target)","u":"/interview/dsa-coding/trees/binary-tree-equals-list-backtracking-path-matching-target/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":17},{"id":"Q1740","t":"Path With Given Sequence (Does a Root-to-Leaf Path Match an Exact Sequence?)","u":"/interview/dsa-coding/trees/binary-tree-array-path-exactly-index-search-numbers/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":18},{"id":"Q1756","t":"Count of Structurally Unique BSTs (How Many Shapes Exist)","u":"/interview/dsa-coding/trees/binary-search-number-count-structurally-unique-trees-store/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":6},{"id":"Q1828","t":"Implement a Trie (Prefix Tree with Insert, Search, and StartsWith)","u":"/interview/dsa-coding/trees/trie-tree-pattern-search-implement-called-prefix-supporting/","ch":"Coding Problems: DSA","tp":"Trees & BST","qn":9},{"id":"Q1392","t":"What is a Graph?","u":"/interview/dsa-coding/graphs/graph-collection-nodes-vertices-connected-edges-directed/","ch":"Coding Problems: DSA","tp":"Graphs","qn":23},{"id":"Q1393","t":"What is BFS (Breadth First Search)?","u":"/interview/dsa-coding/graphs/bfs-search-queue-breadth-visit-neighbors-deeper-exploring/","ch":"Coding Problems: DSA","tp":"Graphs","qn":8},{"id":"Q1476","t":"Happy Number: Detect a Cycle in the Digit-Square Sequence With Fast/Slow","u":"/interview/dsa-coding/graphs/happy-number-detect-cycle-digit-sum-sequence-fast-slow/","ch":"Coding Problems: DSA","tp":"Graphs","qn":16},{"id":"Q1530","t":"Design Add and Search Words: Trie + DFS for '.' wildcard","u":"/interview/dsa-coding/graphs/design-search-string-pattern-trie-dfs-wildcard-data/","ch":"Coding Problems: DSA","tp":"Graphs","qn":22},{"id":"Q1540","t":"Number of Islands: DFS/BFS grid traversal","u":"/interview/dsa-coding/graphs/dfs-bfs-two-dimensional-grid-land-water-count-number-islands/","ch":"Coding Problems: DSA","tp":"Graphs","qn":14},{"id":"Q1543","t":"Rotting Oranges: multi-source BFS","u":"/interview/dsa-coding/graphs/bfs-grid-cell-empty-fresh-orange-rotten-minute-adjacent/","ch":"Coding Problems: DSA","tp":"Graphs","qn":13},{"id":"Q1544","t":"Flood Fill: BFS/DFS from starting cell","u":"/interview/dsa-coding/graphs/bfs-dfs-image-as-grid-pixel-colors-starting-color-repaint/","ch":"Coding Problems: DSA","tp":"Graphs","qn":15},{"id":"Q1545","t":"Word Ladder: BFS changing one letter at a time","u":"/interview/dsa-coding/graphs/exactly-bfs-begin-word-dictionary-equal-length-words-return/","ch":"Coding Problems: DSA","tp":"Graphs","qn":11},{"id":"Q1546","t":"Surrounded Regions: mark border-connected 'O's via DFS, flip the rest","u":"/interview/dsa-coding/graphs/dfs-rest-board-capture-regions-surrounded-flipping-connected/","ch":"Coding Problems: DSA","tp":"Graphs","qn":12},{"id":"Q1547","t":"Course Schedule: cycle detection (can all courses be finished?)","u":"/interview/dsa-coding/graphs/list-graph-number-courses-prerequisite-pairs-return-whether/","ch":"Coding Problems: DSA","tp":"Graphs","qn":3},{"id":"Q1548","t":"Course Schedule II: return a valid topological order","u":"/interview/dsa-coding/graphs/list-array-topological-number-courses-prerequisite-pairs/","ch":"Coding Problems: DSA","tp":"Graphs","qn":4},{"id":"Q1550","t":"Number of Connected Components: Union-Find or DFS","u":"/interview/dsa-coding/graphs/list-graph-dfs-nodes-labeled-minus-undirected-edges-return/","ch":"Coding Problems: DSA","tp":"Graphs","qn":5},{"id":"Q1553","t":"Course Schedule I / II unified: detect cycle and produce order","u":"/interview/dsa-coding/graphs/topological-courses-prerequisites-provide-single-approach/","ch":"Coding Problems: DSA","tp":"Graphs","qn":6},{"id":"Q1556","t":"Redundant Connection: detect the cycle edge via Union-Find","u":"/interview/dsa-coding/graphs/graph-tree-started-as-nodes-extra-edge-added-return-creates/","ch":"Coding Problems: DSA","tp":"Graphs","qn":17},{"id":"Q1557","t":"Number of Islands (Union-Find variant): union adjacent land cells","u":"/interview/dsa-coding/graphs/dfs-bfs-union-2d-grid-land-water-count-number-islands/","ch":"Coding Problems: DSA","tp":"Graphs","qn":2},{"id":"Q1570","t":"Word Search: DFS on a grid with visited marking","u":"/interview/dsa-coding/graphs/once-search-dfs-2d-board-characters-word-return-true-exists/","ch":"Coding Problems: DSA","tp":"Graphs","qn":10},{"id":"Q1590","t":"Jump Game II: minimum jumps to reach the end (greedy BFS layers)","u":"/interview/dsa-coding/graphs/array-index-greedy-bfs-element-maximum-jump-length-return/","ch":"Coding Problems: DSA","tp":"Graphs","qn":21},{"id":"Q1614","t":"Count the Number of Islands (Grid DFS Flood Fill)","u":"/interview/dsa-coding/graphs/dfs-two-dimensional-grid-land-water-cells-count-separate/","ch":"Coding Problems: DSA","tp":"Graphs","qn":7},{"id":"Q1632","t":"Flood Fill: BFS or DFS spreading from a starting cell","u":"/interview/dsa-coding/graphs/bfs-dfs-flood-fill-starting-cell-spreading/","ch":"Coding Problems: DSA","tp":"Graphs","qn":9},{"id":"Q1677","t":"LinkedList Cycle (Floyd's Tortoise and Hare Detection)","u":"/interview/dsa-coding/graphs/list-pointer-linkedlist-head-singly-linked-determine-whether/","ch":"Coding Problems: DSA","tp":"Graphs","qn":20},{"id":"Q1679","t":"Happy Number (Cycle Detection on a Number Sequence)","u":"/interview/dsa-coding/graphs/happy-number-defined-repeatedly-replacing-sum-squares-digits/","ch":"Coding Problems: DSA","tp":"Graphs","qn":1},{"id":"Q1827","t":"Course Schedule Cycle Check (Detect a Dependency Cycle with DFS Colouring)","u":"/interview/dsa-coding/graphs/graph-topological-sort-pattern-dfs-number-courses/","ch":"Coding Problems: DSA","tp":"Graphs","qn":18},{"id":"Q1833","t":"Cheapest Flights Within K Stops (Shortest Path with a Limit on Hops)","u":"/interview/dsa-coding/graphs/list-path-cities-flights-as-price-source-destination-maximum/","ch":"Coding Problems: DSA","tp":"Graphs","qn":19},{"id":"Q1589","t":"Jump Game: can you reach the last index (greedy reachability)","u":"/interview/dsa-coding/greedy/array-index-greedy-element-maximum-jump-length-position/","ch":"Coding Problems: DSA","tp":"Greedy","qn":12},{"id":"Q1622","t":"Merge Overlapping Intervals","u":"/interview/dsa-coding/greedy/collection-merge-intervals-overlapping-return/","ch":"Coding Problems: DSA","tp":"Greedy","qn":1},{"id":"Q1623","t":"Minimum Meeting Rooms Required (Interval Scheduling with a Heap)","u":"/interview/dsa-coding/greedy/heap-meetings-times-minimum-number-rooms-needed-overlapping/","ch":"Coding Problems: DSA","tp":"Greedy","qn":2},{"id":"Q1709","t":"Merge Intervals (Combine All Overlapping Intervals)","u":"/interview/dsa-coding/greedy/list-merge-pattern-intervals-overlapping-return/","ch":"Coding Problems: DSA","tp":"Greedy","qn":6},{"id":"Q1711","t":"Intervals Intersection (Interval List Intersections)","u":"/interview/dsa-coding/greedy/list-pattern-lists-closed-intervals-sorted-internally/","ch":"Coding Problems: DSA","tp":"Greedy","qn":7},{"id":"Q1712","t":"Overlapping Intervals (Determine If Any Two Intervals Overlap)","u":"/interview/dsa-coding/greedy/pattern-intervals-determine-whether-overlap-solve/","ch":"Coding Problems: DSA","tp":"Greedy","qn":8},{"id":"Q1746","t":"Maximize Capital (Two Heaps: Greedy Project Selection)","u":"/interview/dsa-coding/greedy/list-final-greedy-initial-capital-projects-requirement/","ch":"Coding Problems: DSA","tp":"Greedy","qn":4},{"id":"Q1747","t":"Next Interval (Two Heaps: Find the Next Starting Interval)","u":"/interview/dsa-coding/greedy/array-index-record-intervals-interval-meaning-smallest/","ch":"Coding Problems: DSA","tp":"Greedy","qn":5},{"id":"Q1806","t":"Minimum Jumps with Fee (Minimum Cost to Reach the Top Paying a Per-Step Fee)","u":"/interview/dsa-coding/greedy/array-index-fibonacci-pattern-fees-charges-fee-step-climb/","ch":"Coding Problems: DSA","tp":"Greedy","qn":3},{"id":"Q1851","t":"Lemonade Change (Greedy Change-Making at a Counter)","u":"/interview/dsa-coding/greedy/greedy-strategy-customers-pay-10-20-unit-notes-item-change/","ch":"Coding Problems: DSA","tp":"Greedy","qn":9},{"id":"Q1852","t":"Jump Game (Can You Reach the Last Index with a Greedy Reach)","u":"/interview/dsa-coding/greedy/array-index-greedy-value-maximum-jump-length-determine/","ch":"Coding Problems: DSA","tp":"Greedy","qn":10},{"id":"Q1853","t":"Assign Cookies (Greedy Matching of Smallest Sufficient Resource)","u":"/interview/dsa-coding/greedy/greedy-matching-child-greed-factor-cookie-size-content-meets/","ch":"Coding Problems: DSA","tp":"Greedy","qn":11},{"id":"Q1405","t":"Find the GCD of Two Numbers Using the Euclidean Algorithm","u":"/interview/dsa-coding/math-bit/gcd-base-greatest-common-divisor-numbers-euclidean-algorithm/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":1},{"id":"Q1420","t":"Find the Missing Number in 1..N","u":"/interview/dsa-coding/math-bit/missing-number-sum-formula-xor-trick/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":2},{"id":"Q1714","t":"Find the Missing Number (One Number Missing from 0..n)","u":"/interview/dsa-coding/math-bit/array-exactly-distinct-numbers-taken-range-number-missing/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":3},{"id":"Q1715","t":"Find all Missing Numbers (Numbers Missing from 1..n)","u":"/interview/dsa-coding/math-bit/array-once-list-unsorted-integers-range-numbers-appear/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":4},{"id":"Q1773","t":"Complement of Base 10 Number (Flip Every Bit Within the Number's Width)","u":"/interview/dsa-coding/math-bit/binary-base-positive-base-ten-integer-complement-number/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":5},{"id":"Q1774","t":"Flip and Invert an Image (Flip Each Row Horizontally Then Invert with XOR)","u":"/interview/dsa-coding/math-bit/binary-matrix-produce-row-reversed-horizontally-bit-inverted/","ch":"Coding Problems: DSA","tp":"Math & Bit Manipulation","qn":6},{"id":"Q1587","t":"Unique Paths: count grid paths moving right or down","u":"/interview/dsa-coding/matrix/robot-starts-top-left-grid-move-right-down-count-distinct/","ch":"Coding Problems: DSA","tp":"Matrix","qn":1},{"id":"Q1630","t":"Set Matrix Zeroes: using the first row and column as in-place markers","u":"/interview/dsa-coding/matrix/matrix-zeroes-row-column-as-markers-in-place/","ch":"Coding Problems: DSA","tp":"Matrix","qn":2},{"id":"Q1725","t":"Rotate a LinkedList (Rotate Right by K Places)","u":"/interview/dsa-coding/matrix/list-linkedlist-head-singly-linked-non-negative-integer/","ch":"Coding Problems: DSA","tp":"Matrix","qn":4},{"id":"Q1847","t":"Unique Paths (Count Grid Routes Moving Only Right or Down)","u":"/interview/dsa-coding/matrix/dynamic-programming-count-number-distinct-paths-top-left/","ch":"Coding Problems: DSA","tp":"Matrix","qn":3},{"id":"Q1529","t":"Implement Trie: insert, search, startsWith","u":"/interview/dsa-coding/pattern-printing/design-tree-trie-search-implement-prefix-supporting/","ch":"Coding Problems: DSA","tp":"Pattern Printing","qn":1},{"id":"Q761","t":"Behavioral: STAR method answers for Java developer interviews","u":"/interview/dsa-coding/pattern-printing/star-behavioral-questions-as-developer-yourself-challenging/","ch":"Coding Problems: DSA","tp":"Pattern Printing","qn":2},{"id":"Q1402","t":"FizzBuzz","u":"/interview/dsa-coding/misc-coding/fizzbuzz-numbers-fizz-multiples-buzz/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":10},{"id":"Q1407","t":"Swap Two Numbers Without Using a Third Variable","u":"/interview/dsa-coding/misc-coding/swap-numbers-without-third-variable-xor-addition/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":20},{"id":"Q1418","t":"Move All Zeros to the End While Preserving Order","u":"/interview/dsa-coding/misc-coding/move-zeros-while-preserving-order-two-pointer-swap/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":18},{"id":"Q1423","t":"Best Time to Buy and Sell Stock: Single Pass","u":"/interview/dsa-coding/misc-coding/best-time-buy-sell-stock-single-pass-tracking-min-price-max/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":2},{"id":"Q1438","t":"Largest Number From a List of Integers: Custom Comparator a+b vs b+a","u":"/interview/dsa-coding/misc-coding/list-comparator-largest-number-integers-custom-compare/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":17},{"id":"Q1457","t":"Move Zeroes: Two-Pointer Compaction Keeping Order","u":"/interview/dsa-coding/misc-coding/move-zeroes-two-pointer-compaction-keeping-order/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":19},{"id":"Q1497","t":"Explain Prefix Sum: Precompute Cumulative Sums for O(1) Range Queries","u":"/interview/dsa-coding/misc-coding/prefix-sum-technique-precomputing-cumulative-sums-let-range/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":9},{"id":"Q1532","t":"Replace Words: Trie for shortest prefix (root) replacement","u":"/interview/dsa-coding/misc-coding/trie-dictionary-root-words-sentence-replace-word-as-prefix/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":51},{"id":"Q1536","t":"Find Median from Data Stream: two heaps (max-heap lower + min-heap upper)","u":"/interview/dsa-coding/misc-coding/design-stream-data-structure-supports-adding-integers/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":4},{"id":"Q1538","t":"K Closest Points to Origin: max-heap of size K by distance","u":"/interview/dsa-coding/misc-coding/array-points-plane-value-return-closest-origin-distance/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":15},{"id":"Q1539","t":"Task Scheduler — most-frequent-first with cooldown","u":"/interview/dsa-coding/misc-coding/list-tasks-represented-characters-cooldown-value-task/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":11},{"id":"Q1559","t":"Accounts Merge: union emails that belong to the same person","u":"/interview/dsa-coding/misc-coding/merge-union-accounts-name-followed-emails-share-email-return/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":13},{"id":"Q1560","t":"Number of Provinces: count friend circles via Union-Find","u":"/interview/dsa-coding/misc-coding/matrix-adjacency-isconnected-means-city-directly-connected/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":16},{"id":"Q1576","t":"Best Time to Buy and Sell Stock: track min price and max profit","u":"/interview/dsa-coding/misc-coding/array-daily-prices-maximum-profit-single-buy-later-sell/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":47},{"id":"Q1595","t":"Target Sum: assign + and - signs to reach a target","u":"/interview/dsa-coding/misc-coding/array-equals-non-negative-integers-target-assign-plus-minus/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":14},{"id":"Q1597","t":"Distinct Subsequences: count occurrences of t as a subsequence of s","u":"/interview/dsa-coding/misc-coding/strings-count-number-distinct-subsequences-equal-occurrences/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":1},{"id":"Q1608","t":"Design an LRU Cache (Least Recently Used)","u":"/interview/dsa-coding/misc-coding/design-cache-lru-fixed-capacity-evicts-least-recently-entry/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":5},{"id":"Q1639","t":"Cache with TTL and Versioned Expiry","u":"/interview/dsa-coding/misc-coding/cache-ttl-event-delete-record-heap-log-versioned-expiry/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":3},{"id":"Q1674","t":"Quadruple Sum to Target (4Sum)","u":"/interview/dsa-coding/misc-coding/array-numbers-target-unique-quadruplets-add-leetcode-4sum/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":44},{"id":"Q1681","t":"Middle of the LinkedList (Fast and Slow Pointers)","u":"/interview/dsa-coding/misc-coding/list-linkedlist-head-singly-linked-return-middle-node-nodes/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":48},{"id":"Q1683","t":"Rearrange a LinkedList (Reorder List)","u":"/interview/dsa-coding/misc-coding/list-linkedlist-singly-linked-reorder-nodes-interleave-ends/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":49},{"id":"Q1708","t":"Challenge: Count of Range Sum","u":"/interview/dsa-coding/misc-coding/array-integers-include-negatives-bounds-lower-upper-count/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":41},{"id":"Q1719","t":"Find the Smallest Missing Positive Number (First Absent Positive Integer)","u":"/interview/dsa-coding/misc-coding/array-unsorted-contain-duplicates-negatives-zero-smallest/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":42},{"id":"Q1720","t":"First K Missing Positive Numbers (Smallest K Absent Positives)","u":"/interview/dsa-coding/misc-coding/array-unsorted-positive-integer-return-missing-numbers-order/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":43},{"id":"Q1741","t":"Count Paths for a Sum (Count All Downward Paths Summing to a Target)","u":"/interview/dsa-coding/misc-coding/binary-tree-equals-target-sum-count-paths-node-values-root/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":50},{"id":"Q1744","t":"Find the Median of a Number Stream (Two Heaps)","u":"/interview/dsa-coding/misc-coding/design-stream-data-structure-accepts-continuous-numbers/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":40},{"id":"Q1753","t":"Unique Generalized Abbreviations (All Abbreviations of a Word)","u":"/interview/dsa-coding/misc-coding/backtracking-word-generate-unique-generalized-abbreviations/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":46},{"id":"Q1754","t":"Evaluate Expression (Different Ways to Group Numbers and Operators)","u":"/interview/dsa-coding/misc-coding/string-recursion-expression-numbers-operators-plus-minus/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":12},{"id":"Q1763","t":"Next Letter (Smallest Letter Strictly Greater Than the Key, Wrapping Around)","u":"/interview/dsa-coding/misc-coding/array-lowercase-letters-sorted-ascending-order-target-letter/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":45},{"id":"Q1775","t":"Top K Numbers (Find the K Largest Numbers with a Min-Heap)","u":"/interview/dsa-coding/misc-coding/array-unsorted-numbers-value-largest-min-heap-size-efficient/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":36},{"id":"Q1777","t":"K Closest Points to the Origin (Nearest K Points by Distance)","u":"/interview/dsa-coding/misc-coding/list-points-plane-value-closest-origin-max-heap-keyed/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":37},{"id":"Q1778","t":"Connect Ropes (Minimum Cost to Connect All Ropes)","u":"/interview/dsa-coding/misc-coding/ropes-different-lengths-connecting-costs-sum-combined-rope/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":38},{"id":"Q1779","t":"Top K Frequent Numbers (Find the K Most Frequently Occurring Numbers)","u":"/interview/dsa-coding/misc-coding/array-map-unsorted-numbers-appear-frequently-frequency-plus/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":39},{"id":"Q1796","t":"Target Sum (Assign Plus and Minus Signs to Reach a Target)","u":"/interview/dsa-coding/misc-coding/equals-positive-numbers-target-assign-plus-minus-sign-number/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":24},{"id":"Q1798","t":"Rod Cutting (Maximize Revenue by Cutting a Rod into Pieces)","u":"/interview/dsa-coding/misc-coding/list-knapsack-rod-length-prices-cut-pieces-maximize-total/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":25},{"id":"Q1801","t":"Maximum Ribbon Cut (Maximize the Number of Pieces of Allowed Lengths)","u":"/interview/dsa-coding/misc-coding/ribbon-exactly-knapsack-length-allowed-cut-lengths-maximum/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":26},{"id":"Q1807","t":"House Thief (Maximum Non-Adjacent Sum)","u":"/interview/dsa-coding/misc-coding/array-fibonacci-pattern-non-negative-numbers-representing/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":27},{"id":"Q1809","t":"Longest Palindromic Subsequence (Longest Subsequence That Reads the Same Both Ways)","u":"/interview/dsa-coding/misc-coding/string-pattern-length-longest-palindromic-subsequence-keeps/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":28},{"id":"Q1819","t":"Maximum Sum Increasing Subsequence (Rising Subsequence with the Largest Total)","u":"/interview/dsa-coding/misc-coding/array-dynamic-numbers-maximum-sum-strictly-increasing/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":29},{"id":"Q1823","t":"Tasks Scheduling (Can All Tasks Be Finished Given Prerequisites)","u":"/interview/dsa-coding/misc-coding/list-topological-sort-pattern-number-tasks-prerequisite/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":30},{"id":"Q1824","t":"Tasks Scheduling Order (Return a Valid Order to Finish All Tasks)","u":"/interview/dsa-coding/misc-coding/topological-sort-pattern-number-tasks-prerequisite-pairs/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":31},{"id":"Q1825","t":"All Tasks Scheduling Orders (Enumerate Every Valid Completion Order)","u":"/interview/dsa-coding/misc-coding/topological-sort-pattern-backtracking-number-tasks/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":32},{"id":"Q1831","t":"Replace Words with Root (Shorten Words to Their Shortest Registered Root)","u":"/interview/dsa-coding/misc-coding/matching-trie-pattern-root-words-sentence-replace-word/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":33},{"id":"Q1832","t":"Autocomplete Suggestions (Return Words Matching a Typed Prefix)","u":"/interview/dsa-coding/misc-coding/trie-pattern-matching-words-typed-prefix-return-optionally/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":34},{"id":"Q1835","t":"Word Ladder (Shortest Transformation Chain One Letter at a Time)","u":"/interview/dsa-coding/misc-coding/search-begin-word-dictionary-equal-length-words-length/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":35},{"id":"Q1843","t":"Target Sum (Count Ways to Assign Plus and Minus Signs)","u":"/interview/dsa-coding/misc-coding/array-equals-dynamic-programming-non-negative-integers/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":21},{"id":"Q1845","t":"LIS Tabulation (Quadratic Bottom-Up and Reconstructing the Sequence)","u":"/interview/dsa-coding/misc-coding/lis-classic-quadratic-bottom-up-tabulation-longest/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":22},{"id":"Q1848","t":"Best Time to Buy and Sell Stock (Single and Multiple Transactions)","u":"/interview/dsa-coding/misc-coding/daily-prices-maximise-profit-buying-selling-stock-covering/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":23},{"id":"Q2636","t":"Largest of N Numbers: read N numbers one by one and print the largest","u":"/interview/dsa-coding/misc-coding/count-followed-numbers-largest-among-number-max-initialize/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":52},{"id":"Q767","t":"System Design: Payment Gateway architecture","u":"/interview/dsa-coding/misc-coding/design-gateway-exactly-once-system-payment-bank-end-to-end/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":6},{"id":"Q776","t":"Security: OAuth2, JWT, OWASP","u":"/interview/dsa-coding/misc-coding/rest-api-jwt-sql-xss-csrf-secure-banking-oauth2-token-flow/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":7},{"id":"Q780","t":"JVM Internals: Memory areas, GC, JIT, thread dump analysis","u":"/interview/dsa-coding/misc-coding/jvm-heap-stack-metaspace-cache-collection-thread-gc-service/","ch":"Coding Problems: DSA","tp":"Miscellaneous Coding","qn":8},{"id":"Q1860","t":"AWS, Region, Availability Zone and Edge Location","u":"/interview/aws-cloud/aws-overview/aws-difference-region-availability-zone-az-edge-location/","ch":"AWS & Cloud","tp":"AWS Overview: Regions, AZs","qn":1},{"id":"Q1861","t":"IAM: User, Group, Role and Policy","u":"/interview/aws-cloud/iam/iam-difference-user-group-role-policy/","ch":"AWS & Cloud","tp":"IAM: Users, Roles, Policies","qn":2},{"id":"Q1862","t":"IAM Role versus IAM User and Why Code Must Never Embed Long-Lived Keys","u":"/interview/aws-cloud/iam/iam-ec2-lambda-role-instead-user-temporary-credentials-via/","ch":"AWS & Cloud","tp":"IAM: Users, Roles, Policies","qn":5},{"id":"Q1863","t":"Authentication versus Authorization and IAM Policy Evaluation","u":"/interview/aws-cloud/iam/iam-difference-authentication-authorization-policy/","ch":"AWS & Cloud","tp":"IAM: Users, Roles, Policies","qn":3},{"id":"Q1864","t":"Principle of Least Privilege and Scoping a Policy to One Resource","u":"/interview/aws-cloud/iam/s3-repository-principle-least-privilege-scope-policy-single/","ch":"AWS & Cloud","tp":"IAM: Users, Roles, Policies","qn":4},{"id":"Q1891","t":"Creating and Managing Database Users in RDS, and Avoiding the Master User","u":"/interview/aws-cloud/iam/rds-sql-iam-create-manage-database-users-standard-user-grant/","ch":"AWS & Cloud","tp":"IAM: Users, Roles, Policies","qn":1},{"id":"Q1865","t":"EC2, Instance Families and Launch Parameters","u":"/interview/aws-cloud/ec2/ec2-iam-instance-families-types-general-purpose-compute/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":4},{"id":"Q1866","t":"EC2 Key Pairs and Connecting to Linux versus Windows Instances","u":"/interview/aws-cloud/ec2/ec2-key-pair-connect-linux-instance-ssh-private-windows/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":5},{"id":"Q1868","t":"Scenario: Cannot SSH into an EC2 Instance","u":"/interview/aws-cloud/ec2/ec2-state-scenario-cannot-ssh-instance-troubleshoot-security/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":3},{"id":"Q1869","t":"Private EC2 Instance: Access and Outbound Internet via NAT","u":"/interview/aws-cloud/ec2/ec2-gateway-private-instance-public-ip-access-bastion-jump/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":7},{"id":"Q1870","t":"Checking Logins and Inspecting Logs on EC2 Without CloudWatch","u":"/interview/aws-cloud/ec2/ec2-log-check-logged-instance-inspect-logs-without/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":2},{"id":"Q1888","t":"RDS and How It Differs From Running a Database Yourself on EC2","u":"/interview/aws-cloud/ec2/rds-ec2-different-running-database-yourself-managed-backups/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":6},{"id":"Q1892","t":"EC2 vs ECS vs EKS vs Lambda and When to Choose Each","u":"/interview/aws-cloud/ec2/ec2-ecs-eks-lambda-kubernetes-difference-choose-full-vm/","ch":"AWS & Cloud","tp":"EC2 & Compute","qn":1},{"id":"Q1867","t":"Security Group versus Network ACL","u":"/interview/aws-cloud/vpc-networking/security-group-differ-network-acl-stateful-instance-level/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":3},{"id":"Q1871","t":"VPC, Subnet, and What Makes a Subnet Public versus Private","u":"/interview/aws-cloud/vpc-networking/vpc-gateway-subnet-public-private-route-internet-none-versus/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":1},{"id":"Q1872","t":"Internet Gateway versus NAT Gateway","u":"/interview/aws-cloud/vpc-networking/gateway-internet-nat-private-subnet-outbound-while-blocking/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":2},{"id":"Q1873","t":"Route Tables and How They Control Traffic","u":"/interview/aws-cloud/vpc-networking/route-table-tables-control-traffic-subnets-igw-nat-peered/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":6},{"id":"Q1874","t":"VPC Peering, Non-Transitivity, and a Connectivity Scenario","u":"/interview/aws-cloud/vpc-networking/vpc-ec2-peering-non-transitive-scenario-vpcs-peered-cannot/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":8},{"id":"Q1875","t":"VPC Endpoints (Gateway vs Interface) and AWS PrivateLink","u":"/interview/aws-cloud/vpc-networking/vpc-gateway-interface-aws-s3-service-endpoint-privatelink/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":7},{"id":"Q1876","t":"Choosing VPC CIDR Ranges and Subnet Sizes Up Front","u":"/interview/aws-cloud/vpc-networking/vpc-eks-gateway-choosing-cidr-ranges-subnet-sizes-front/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":5},{"id":"Q1879","t":"Transit Gateway Route Tables, Association, Propagation, and Environment Isolation","u":"/interview/aws-cloud/vpc-networking/gateway-propagation-isolation-transit-route-tables/","ch":"AWS & Cloud","tp":"VPC & Networking","qn":4},{"id":"Q1884","t":"EBS, Volume Types, and Why gp3 Over gp2","u":"/interview/aws-cloud/s3-storage/ebs-volume-types-gp3-gp2-general-purpose-ssd-io1-io2/","ch":"AWS & Cloud","tp":"S3 & Storage","qn":3},{"id":"Q1885","t":"S3, Storage Classes, and Lifecycle Policies","u":"/interview/aws-cloud/s3-storage/s3-storage-classes-standard-intelligent-tiering-standard-ia/","ch":"AWS & Cloud","tp":"S3 & Storage","qn":5},{"id":"Q1886","t":"S3 Versioning, Delete Markers, Lifecycle, and MFA Delete","u":"/interview/aws-cloud/s3-storage/s3-versioning-delete-protect-against-accidental-overwrite/","ch":"AWS & Cloud","tp":"S3 & Storage","qn":4},{"id":"Q1887","t":"Securing an S3 Bucket and Why Public Buckets Cause Breaches","u":"/interview/aws-cloud/s3-storage/s3-iam-rest-vpc-logging-secure-bucket-block-public-access/","ch":"AWS & Cloud","tp":"S3 & Storage","qn":2},{"id":"Q1894","t":"Secure Access to AWS Services Without Hardcoded Keys, and Secret Storage/Rotation","u":"/interview/aws-cloud/s3-storage/ec2-ecs-lambda-aws-instance-task-secure-access-services/","ch":"AWS & Cloud","tp":"S3 & Storage","qn":1},{"id":"Q1889","t":"RDS Multi-AZ vs Read Replicas","u":"/interview/aws-cloud/rds-database/rds-difference-multi-az-synchronous-standby-high/","ch":"AWS & Cloud","tp":"RDS & Database","qn":2},{"id":"Q1890","t":"Securely Connecting an Application to RDS and Cross-Account Access","u":"/interview/aws-cloud/rds-database/rds-iam-tls-ec2-vpc-securely-connect-application-database/","ch":"AWS & Cloud","tp":"RDS & Database","qn":1},{"id":"Q1881","t":"AWS Load Balancer Types and Choosing ALB vs NLB","u":"/interview/aws-cloud/load-balancing/aws-load-balancer-gateway-http-path-static-types-alb-nlb-lb/","ch":"AWS & Cloud","tp":"Load Balancing & Auto Scaling","qn":2},{"id":"Q1883","t":"Mapping a Domain to a Load Balancer: Alias Record vs CNAME","u":"/interview/aws-cloud/load-balancing/map-load-balancer-record-aws-domain-name-route-53-alias/","ch":"AWS & Cloud","tp":"Load Balancing & Auto Scaling","qn":1},{"id":"Q1882","t":"Route 53, Routing Policies, and Health-Check-Driven Failover","u":"/interview/aws-cloud/route53-dns/route-53-routing-policies-simple-weighted-latency-based/","ch":"AWS & Cloud","tp":"Route 53 & DNS","qn":1},{"id":"Q1878","t":"AWS Transit Gateway and Hub-and-Spoke Topology","u":"/interview/aws-cloud/monitoring/aws-gateway-vpc-transit-enable-hub-and-spoke-topology/","ch":"AWS & Cloud","tp":"CloudWatch & Monitoring","qn":1},{"id":"Q1893","t":"When to Choose Lambda Over a Container, and Lambda's Constraints","u":"/interview/aws-cloud/lambda/aws-lambda-ecs-eks-choose-container-constraints-cold-starts/","ch":"AWS & Cloud","tp":"Lambda & Serverless","qn":1},{"id":"Q1897","t":"Common Serverless Patterns and When Serverless Is Not a Good Fit","u":"/interview/aws-cloud/lambda/api-gateway-lambda-websocket-common-serverless-patterns/","ch":"AWS & Cloud","tp":"Lambda & Serverless","qn":2},{"id":"Q1898","t":"ECS vs EKS and What Fargate Is","u":"/interview/aws-cloud/containers/ecs-eks-aws-kubernetes-fargate-ec2-difference-aws-native/","ch":"AWS & Cloud","tp":"ECS, EKS & Containers","qn":1},{"id":"Q1877","t":"Scenario: Ran Out of IP Addresses; Expanding with a Secondary CIDR","u":"/interview/aws-cloud/advanced-aws/vpc-scenario-provisioned-subnet-cidr-ran-ip-addresses-resize/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":3},{"id":"Q1880","t":"Scenario: Troubleshooting a Communication Path Through a Transit Gateway","u":"/interview/aws-cloud/advanced-aws/path-gateway-vpc-propagation-scenario-troubleshoot/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":2},{"id":"Q1895","t":"AWS Well-Architected Framework: The Six Pillars","u":"/interview/aws-cloud/advanced-aws/aws-well-architected-framework-pillars-operational/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":6},{"id":"Q1896","t":"Disaster Recovery on AWS: Four Strategies, RPO and RTO","u":"/interview/aws-cloud/advanced-aws/aws-long-disaster-recovery-strategies-cheapest-fastest/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":5},{"id":"Q1899","t":"Optimizing AWS Costs","u":"/interview/aws-cloud/advanced-aws/aws-s3-optimize-costs-reserved-instances-savings-plans/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":1},{"id":"Q1900","t":"Multi-Account AWS Strategy and Why One Big Account Is a Bad Idea","u":"/interview/aws-cloud/advanced-aws/aws-strategy-isolation-multi-account-separate-accounts-dev/","ch":"AWS & Cloud","tp":"Advanced AWS","qn":4},{"id":"Q1985","t":"What is data engineering","u":"/interview/data-engineering/fundamentals/data-engineering-building-systems-collect-store-prepare/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":5},{"id":"Q1987","t":"What is ETL","u":"/interview/data-engineering/fundamentals/api-file-join-load-lake-etl-extract-data-source-database/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":7},{"id":"Q1988","t":"What is a data lake (vs a data warehouse)","u":"/interview/data-engineering/fundamentals/lake-s3-structured-data-storage-place-hdfs-dump-raw/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":3},{"id":"Q1992","t":"What is a data pipeline","u":"/interview/data-engineering/fundamentals/kafka-join-data-pipeline-series-steps-move-point/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":4},{"id":"Q1993","t":"Difference between OLTP and OLAP (and why not run analytics on production)","u":"/interview/data-engineering/fundamentals/difference-oltp-production-database-handling-fast/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":9},{"id":"Q1994","t":"Schema-on-write vs schema-on-read","u":"/interview/data-engineering/fundamentals/sql-lake-schema-on-write-define-structure-storing-data/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":8},{"id":"Q1997","t":"Schema evolution in a data pipeline and why columnar formats matter","u":"/interview/data-engineering/fundamentals/avro-parquet-predicate-handle-schema-evolution-data-pipeline/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":10},{"id":"Q2003","t":"OLTP vs OLAP systems in depth (row-store vs column-store, normalized vs star)","u":"/interview/data-engineering/fundamentals/transactional-star-difference-oltp-olap-systems-row-store-db/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":1},{"id":"Q2004","t":"Data lake vs data warehouse vs lakehouse, and when to use each","u":"/interview/data-engineering/fundamentals/lake-s3-parquet-difference-data-raw-files-orc-warehouse/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":2},{"id":"Q2121","t":"What is Databricks and how does it relate to Apache Spark","u":"/interview/data-engineering/fundamentals/databricks-spark-delta-lake-relate-apache-unified-data-ai/","ch":"Data Engineering","tp":"Data Engineering Fundamentals","qn":6},{"id":"Q1986","t":"Difference between batch processing and stream processing","u":"/interview/data-engineering/batch-vs-stream/stream-once-difference-batch-processing-processes-large/","ch":"Data Engineering","tp":"Batch vs Stream Processing","qn":4},{"id":"Q1999","t":"Batch vs stream processing engines, and micro-batch vs record-at-a-time","u":"/interview/data-engineering/batch-vs-stream/stream-spark-structured-streaming-flink-difference-batch/","ch":"Data Engineering","tp":"Batch vs Stream Processing","qn":5},{"id":"Q2001","t":"Stateful stream processing and \"top 5 symbols by volume every minute\"","u":"/interview/data-engineering/batch-vs-stream/stream-state-sliding-window-stateful-processing-keyed/","ch":"Data Engineering","tp":"Batch vs Stream Processing","qn":2},{"id":"Q2007","t":"Designing a real-time fraud-detection data platform","u":"/interview/data-engineering/batch-vs-stream/design-kafka-streaming-spark-flink-lake-scenario-real-time/","ch":"Data Engineering","tp":"Batch vs Stream Processing","qn":3},{"id":"Q2173","t":"Design a real-time delivery tracking pipeline with Flink","u":"/interview/data-engineering/batch-vs-stream/design-flink-kafka-map-window-jdbc-postgresql-scenario/","ch":"Data Engineering","tp":"Batch vs Stream Processing","qn":1},{"id":"Q1991","t":"What is Parquet","u":"/interview/data-engineering/data-formats/parquet-file-salary-format-stores-data-columns-instead-rows/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":6},{"id":"Q2012","t":"Transformations vs actions and lazy evaluation","u":"/interview/data-engineering/data-formats/map-join-categories-rdd-dataframe-operations-transformations/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":4},{"id":"Q2047","t":"Predicate pushdown with Parquet: min/max statistics, dictionary filtering, bloom filters","u":"/interview/data-engineering/data-formats/predicate-parquet-pushdown-specifically-min-max-statistics/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":1},{"id":"Q2075","t":"Differences between Avro, Parquet, and ORC","u":"/interview/data-engineering/data-formats/avro-file-parquet-predicate-acid-hive-differences-row-based/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":3},{"id":"Q2085","t":"What is Delta Lake and how it differs from plain Parquet","u":"/interview/data-engineering/data-formats/delta-lake-parquet-acid-delete-merge-log-open-source-storage/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":5},{"id":"Q2097","t":"Reading XML and other special formats in Spark","u":"/interview/data-engineering/data-formats/spark-databricks-load-jdbc-avro-delta-xml-files-format-com/","ch":"Data Engineering","tp":"Data Formats: Parquet, Avro, ORC","qn":2},{"id":"Q1989","t":"What is Apache Spark","u":"/interview/data-engineering/spark-core/spark-distributed-hadoop-apache-fast-engine-processing-large/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":22},{"id":"Q1995","t":"Designing a pipeline for millions of trade/transaction events per day","u":"/interview/data-engineering/spark-core/design-kafka-streaming-receive-millions-trade-transaction/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":72},{"id":"Q2000","t":"The Spark / PySpark DataFrame programming model (vs Pandas)","u":"/interview/data-engineering/spark-core/spark-programming-join-distributed-null-pyspark-dataframe/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":68},{"id":"Q2009","t":"Apache Spark: why it was created and its four unified libraries","u":"/interview/data-engineering/spark-core/spark-sql-streaming-apache-created-in-memory-processing/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":58},{"id":"Q2010","t":"Spark master-worker architecture: Driver, Cluster Manager, Workers, Executors, Tasks","u":"/interview/data-engineering/spark-core/spark-k8s-databricks-jvm-partition-master-worker/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":16},{"id":"Q2011","t":"What is an RDD and why immutability matters","u":"/interview/data-engineering/spark-core/distributed-immutable-functional-programming-rdd-resilient/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":17},{"id":"Q2013","t":"The five internal properties of an RDD","u":"/interview/data-engineering/spark-core/list-partition-optional-internal-properties-rdd-partitions/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":32},{"id":"Q2016","t":"The 10-step Spark execution lifecycle","u":"/interview/data-engineering/spark-core/spark-sql-partition-walk-10-step-execution-lifecycle-driver/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":33},{"id":"Q2017","t":"Spark execution modes: cluster, client, local","u":"/interview/data-engineering/spark-core/spark-jvm-execution-modes-cluster-mode-driver-runs-worker/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":21},{"id":"Q2019","t":"Spark Stage, the DAGScheduler, and stages/tasks/partitions","u":"/interview/data-engineering/spark-core/spark-partition-stage-dagscheduler-determine-boundaries-wide/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":57},{"id":"Q2022","t":"How post-shuffle partition coalescing works","u":"/interview/data-engineering/spark-core/partition-spark-sql-post-shuffle-coalescing-creates-shuffle/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":6},{"id":"Q2024","t":"How AQE dynamically changes join strategies and the local shuffle reader","u":"/interview/data-engineering/spark-core/join-spark-aqe-dynamically-change-strategies-earlier-stage/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":13},{"id":"Q2026","t":"Caching in Spark and why cache() is lazy","u":"/interview/data-engineering/spark-core/caching-spark-cache-keeping-computed-partitions-available/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":14},{"id":"Q2027","t":"Difference between cache() and persist(StorageLevel)","u":"/interview/data-engineering/spark-core/cache-strategy-difference-default-storage-level-persist/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":15},{"id":"Q2028","t":"Spark storage levels","u":"/interview/data-engineering/spark-core/spark-heap-storage-levels-memory-fast-evicts-full-recompute/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":1},{"id":"Q2030","t":"When to cache/persist and when not to","u":"/interview/data-engineering/spark-core/cache-once-caching-eviction-persist-expensive-computation/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":2},{"id":"Q2031","t":"How unpersist() works and monitoring caching effectiveness","u":"/interview/data-engineering/spark-core/executor-caching-spark-unpersist-important-long-running/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":3},{"id":"Q2032","t":"Caching/persistence vs checkpointing","u":"/interview/data-engineering/spark-core/caching-cache-checkpoint-difference-persistence/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":4},{"id":"Q2034","t":"repartition(n) vs coalesce(n)","u":"/interview/data-engineering/spark-core/difference-repartition-coalesce-wide-transformation-full/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":34},{"id":"Q2035","t":"The three `repartition` variants: `repartition(n)`, `repartition(*cols)`, `repartition(n, *cols)`","u":"/interview/data-engineering/spark-core/repartition-variants-round-robin-distribution-cols/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":35},{"id":"Q2036","t":"`coalesce(n, shuffle=true)`: why it becomes equivalent to `repartition(n)`","u":"/interview/data-engineering/spark-core/coalesce-shuffle-true-equivalent-repartition-becomes/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":36},{"id":"Q2037","t":"Why \"coalesce to reduce, repartition to increase\": and the `repartition(1)` vs `coalesce(1)` trade-off","u":"/interview/data-engineering/spark-core/partition-general-recommendation-coalesce-reduce-partitions/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":37},{"id":"Q2038","t":"When to repartition after a heavy filter vs coalesce before writing output","u":"/interview/data-engineering/spark-core/repartition-highly-filtered-dataframe-empty-tiny-partitions/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":38},{"id":"Q2039","t":"Spark write-time partitioning (`df.write.partitionBy`) and partition pruning","u":"/interview/data-engineering/spark-core/spark-partitioning-partition-write-time-df-partitionby/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":39},{"id":"Q2040","t":"Static partition pruning vs dynamic partition pruning (DPP)","u":"/interview/data-engineering/spark-core/static-partition-dynamic-join-spark-pruning-filter-value/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":40},{"id":"Q2041","t":"Requirements for effective partitioning and the high-cardinality pitfall","u":"/interview/data-engineering/spark-core/partitioning-partition-requirements-effective-align-query/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":41},{"id":"Q2042","t":"Bucketing (`bucketBy`) and how it differs from partitioning","u":"/interview/data-engineering/spark-core/partitioning-bucketing-df-bucketby-col-sortby-col2/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":42},{"id":"Q2043","t":"How bucketing optimizes queries: bucket pruning, shuffle-free aggregation, bucket-aware join","u":"/interview/data-engineering/spark-core/spark-join-bucketing-optimize-queries-bucket-pruning-filter/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":19},{"id":"Q2045","t":"Predicate pushdown: filtering at the data source before reading into Spark","u":"/interview/data-engineering/spark-core/predicate-parquet-jdbc-spark-pushdown-catalyst-optimizer/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":61},{"id":"Q2049","t":"Spark's physical join strategies: BHJ, SSMJ, SHJ, BNLJ: and how the optimizer chooses","u":"/interview/data-engineering/spark-core/spark-join-sort-merge-partition-physical-strategies/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":8},{"id":"Q2050","t":"Broadcast Join: sending the small dataset to every executor","u":"/interview/data-engineering/spark-core/join-executor-sql-broadcast-sending-small-dataset-large/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":9},{"id":"Q2051","t":"`spark.sql.autoBroadcastJoinThreshold` and auto-broadcast vs explicit hint","u":"/interview/data-engineering/spark-core/spark-sql-autobroadcastjointhreshold-default-10-mb/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":10},{"id":"Q2052","t":"How to verify Spark actually used a Broadcast Join","u":"/interview/data-engineering/spark-core/spark-join-verify-broadcast-df-formatted-look/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":11},{"id":"Q2056","t":"Broadcast join hints in Spark SQL","u":"/interview/data-engineering/spark-core/join-spark-sql-broadcast-hints-select-transactions-customers/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":12},{"id":"Q2057","t":"Data skew in Spark: hot keys and how to detect it","u":"/interview/data-engineering/spark-core/spark-partition-rest-data-skew-disproportionately-others-hot/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":49},{"id":"Q2058","t":"Salting: spreading a hot key across partitions, and the trade-off","u":"/interview/data-engineering/spark-core/join-salting-adding-random-suffix-skewed-key-distribute-hot/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":50},{"id":"Q2069","t":"Spark's unified memory model","u":"/interview/data-engineering/spark-core/spark-executor-dynamic-unified-memory-model-split-execution/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":28},{"id":"Q2070","t":"How to debug a Spark OutOfMemoryError","u":"/interview/data-engineering/spark-core/spark-gc-cache-sql-debug-oom-outofmemoryerror-check-ui/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":29},{"id":"Q2071","t":"Spill-to-disk in Spark","u":"/interview/data-engineering/spark-core/spark-sort-spill-to-disk-operation-shuffle-aggregation/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":30},{"id":"Q2072","t":"Speculative execution in Spark","u":"/interview/data-engineering/spark-core/spark-speculative-execution-speculation-true-detects/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":43},{"id":"Q2073","t":"Dynamic resource allocation in Spark","u":"/interview/data-engineering/spark-core/dynamic-spark-service-resource-allocation-dynamicallocation/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":44},{"id":"Q2074","t":"How Spark handles schema inference","u":"/interview/data-engineering/spark-core/spark-parquet-file-double-handle-schema-inference-csv/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":25},{"id":"Q2076","t":"The small-files problem in Spark","u":"/interview/data-engineering/spark-core/spark-streaming-file-delta-lake-small-files-problem-tiny/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":67},{"id":"Q2077","t":"Spark serialization: Java vs Kryo","u":"/interview/data-engineering/spark-core/spark-serialization-default-slow-large-kryo-serializer-org/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":64},{"id":"Q2078","t":"groupByKey vs reduceByKey in Spark","u":"/interview/data-engineering/spark-core/partition-spark-difference-groupbykey-reducebykey-shuffles/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":66},{"id":"Q2079","t":"distinct vs dropDuplicates in Spark","u":"/interview/data-engineering/spark-core/spark-difference-distinct-dropduplicates-removes-rows/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":65},{"id":"Q2080","t":"Spark SQL window functions","u":"/interview/data-engineering/spark-core/spark-sql-window-partition-functions-row-number-rank-dense/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":52},{"id":"Q2083","t":"Spark security","u":"/interview/data-engineering/spark-core/spark-rest-s3-ssl-tls-isolation-security-authentication/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":63},{"id":"Q2084","t":"The Spark Web UI and debugging with it","u":"/interview/data-engineering/spark-core/spark-gc-sql-web-ui-localhost-4040-running-app-history/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":70},{"id":"Q2087","t":"Delta Lake optimizations: OPTIMIZE, ZORDER, auto-compaction, VACUUM, data skipping","u":"/interview/data-engineering/spark-core/delta-lake-key-optimizations-optimize-compacts-small-files/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":54},{"id":"Q2090","t":"Why plain Python UDFs are slow in PySpark","u":"/interview/data-engineering/spark-core/jvm-plain-python-udfs-slow-pyspark-row-serialized-back-py4j/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":18},{"id":"Q2092","t":"Spark complex/nested data types: StructType, ArrayType, MapType","u":"/interview/data-engineering/spark-core/spark-record-list-complex-nested-data-types-structtype/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":5},{"id":"Q2095","t":"SparkContext vs SparkSession","u":"/interview/data-engineering/spark-core/spark-jvm-sparkcontext-sparksession-entry-point-manages-rdds/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":47},{"id":"Q2096","t":"Integrating Spark with Hive","u":"/interview/data-engineering/spark-core/spark-hive-sql-integrate-copy-hive-site-xml-core-site-conf/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":48},{"id":"Q2099","t":"Do you need Spark installed on all nodes of a YARN cluster?","u":"/interview/data-engineering/spark-core/spark-install-nodes-yarn-cluster-runs-top-resources/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":20},{"id":"Q2101","t":"The Block Manager in Spark","u":"/interview/data-engineering/spark-core/spark-cache-caching-block-manager-local-running-node-driver/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":27},{"id":"Q2102","t":"The _SUCCESS file in Spark","u":"/interview/data-engineering/spark-core/file-spark-consistency-success-empty-marker-written/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":71},{"id":"Q2104","t":"Non-deterministic functions in Spark","u":"/interview/data-engineering/spark-core/spark-list-file-partition-predicate-non-deterministic/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":51},{"id":"Q2105","t":"Spark read modes: PERMISSIVE, DROPMALFORMED, FAILFAST","u":"/interview/data-engineering/spark-core/spark-record-throws-exception-modes-handling-corrupt-records/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":53},{"id":"Q2106","t":"The void datatype in Spark","u":"/interview/data-engineering/spark-core/spark-parquet-delta-string-void-datatype-created-lit-none/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":45},{"id":"Q2107","t":"Hash-based vs Sort-based aggregation in Spark","u":"/interview/data-engineering/spark-core/spark-map-buffer-list-hash-based-aggregation-sort-based/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":46},{"id":"Q2108","t":"What \"Stage Skipped\" means in the Spark UI","u":"/interview/data-engineering/spark-core/spark-stage-skipped-mean-ui-already-computed-cached/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":56},{"id":"Q2110","t":"What is Py4J and why PySpark UDFs have serialization overhead","u":"/interview/data-engineering/spark-core/jvm-socket-py4j-bridge-library-pyspark-invoke-python-runtime/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":62},{"id":"Q2111","t":"Is Spark's `sort()`/`orderBy()` stable","u":"/interview/data-engineering/spark-core/spark-sort-distributed-orderby-stable-preserve-original/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":26},{"id":"Q2112","t":"What is `cogroup` in Spark","u":"/interview/data-engineering/spark-core/spark-iterable-join-cogroup-groups-key-value-rdds-key/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":60},{"id":"Q2113","t":"How do you optimize JDBC reads and writes in Spark","u":"/interview/data-engineering/spark-core/jdbc-spark-optimize-reads-numpartitions-parallel-connections/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":23},{"id":"Q2114","t":"What compression codecs does Spark support","u":"/interview/data-engineering/spark-core/spark-io-checkpoint-event-compression-codecs-support-snappy/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":55},{"id":"Q2117","t":"What is the Spark Thrift Server (STS)","u":"/interview/data-engineering/spark-core/spark-jdbc-interface-sql-thrift-server-sts-odbc-sparksql/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":69},{"id":"Q2118","t":"What is `union()` vs `unionByName()` in Spark","u":"/interview/data-engineering/spark-core/union-spark-unionbyname-matches-columns-position-breaks/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":31},{"id":"Q2120","t":"What is Barrier Execution Mode in Spark","u":"/interview/data-engineering/spark-core/spark-programming-distributed-barrier-execution-mode-model/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":59},{"id":"Q2132","t":"How does Flink compare to Spark Structured Streaming","u":"/interview/data-engineering/spark-core/flink-spark-structured-streaming-state-design-compare-true/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":24},{"id":"Q2162","t":"What is the difference between Flink SQL and Spark SQL for streaming use cases","u":"/interview/data-engineering/spark-core/flink-sql-spark-streaming-structured-state-difference-cases/","ch":"Data Engineering","tp":"Apache Spark: Core","qn":7},{"id":"Q2018","t":"The Catalyst Optimizer","u":"/interview/data-engineering/spark-sql/predicate-catalyst-optimizer-parsed-logical-plan-analyzed/","ch":"Data Engineering","tp":"Spark SQL","qn":3},{"id":"Q2020","t":"Adaptive Query Execution (AQE) and how it complements Catalyst","u":"/interview/data-engineering/spark-sql/spark-sql-aqe-adaptive-query-execution-optimization-runtime/","ch":"Data Engineering","tp":"Spark SQL","qn":2},{"id":"Q2171","t":"What is the difference between Flink's DataSet API and DataStream API, and when do you use DataStream vs Table API/Flink SQL","u":"/interview/data-engineering/spark-sql/flink-api-streaming-sql-difference-dataset-batch-deprecated/","ch":"Data Engineering","tp":"Spark SQL","qn":1},{"id":"Q2005","t":"SQL window functions: month-over-month balance growth and duplicate detection","u":"/interview/data-engineering/spark-streaming/window-partition-sql-query-accounts-average-daily-balance/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":16},{"id":"Q2061","t":"What is Structured Streaming and how it differs from DStreams","u":"/interview/data-engineering/spark-streaming/structured-streaming-scalable-stream-spark-sql-api/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":1},{"id":"Q2062","t":"The three output modes in Structured Streaming","u":"/interview/data-engineering/spark-streaming/structured-streaming-modes-append-rows-complete-entire/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":2},{"id":"Q2063","t":"Event time vs processing time in Structured Streaming","u":"/interview/data-engineering/spark-streaming/event-structured-streaming-spark-time-processing-distinction/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":3},{"id":"Q2064","t":"What is a watermark in Structured Streaming","u":"/interview/data-engineering/spark-streaming/watermark-event-spark-state-streaming-structured/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":4},{"id":"Q2065","t":"Stateless vs stateful operations in Structured Streaming","u":"/interview/data-engineering/spark-streaming/map-state-structured-streaming-difference-stateless/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":5},{"id":"Q2066","t":"Checkpointing in Structured Streaming","u":"/interview/data-engineering/spark-streaming/structured-streaming-path-state-checkpoint-checkpointing/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":6},{"id":"Q2067","t":"Structured Streaming integration with Kafka","u":"/interview/data-engineering/spark-streaming/structured-streaming-kafka-integrate-readstream-format/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":7},{"id":"Q2068","t":"Streaming trigger modes and input-rate control","u":"/interview/data-engineering/spark-streaming/streaming-once-trigger-modes-processingtime-30-seconds-fixed/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":8},{"id":"Q2133","t":"What are Flink windows and watermarks","u":"/interview/data-engineering/spark-streaming/flink-sliding-watermark-event-windows-tumbling-session/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":18},{"id":"Q2136","t":"How do you implement a custom watermark strategy","u":"/interview/data-engineering/spark-streaming/watermark-strategy-implement-custom-watermarkstrategy/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":12},{"id":"Q2137","t":"What are the window components in Flink","u":"/interview/data-engineering/spark-streaming/window-flink-components-detail-assigner-assigns-events/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":19},{"id":"Q2138","t":"Eager vs relaxed watermarks in Flink","u":"/interview/data-engineering/spark-streaming/flink-difference-eager-watermarks-minimize-latency-miss-late/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":22},{"id":"Q2140","t":"What is Flink state management","u":"/interview/data-engineering/spark-streaming/flink-state-management-keyed-partitioned-key-exclusive-per/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":14},{"id":"Q2141","t":"What are Flink state backends","u":"/interview/data-engineering/spark-streaming/flink-state-jvm-heap-backends-hashmapstatebackend-in-memory/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":15},{"id":"Q2142","t":"How does Flink checkpointing work via barrier snapshots","u":"/interview/data-engineering/spark-streaming/flink-graph-state-s3-checkpointing-via-barrier-snapshots/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":13},{"id":"Q2143","t":"Aligned vs unaligned checkpoints in Flink","u":"/interview/data-engineering/spark-streaming/flink-checkpoint-difference-aligned-checkpoints-channels/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":21},{"id":"Q2144","t":"Flink checkpoint vs savepoint","u":"/interview/data-engineering/spark-streaming/flink-checkpoint-savepoint-difference-automatic/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":20},{"id":"Q2146","t":"What is Flink's broadcast state pattern","u":"/interview/data-engineering/spark-streaming/flink-state-pattern-stream-broadcast-small-slowly-changing/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":17},{"id":"Q2154","t":"How do you perform windowed aggregations in Flink SQL","u":"/interview/data-engineering/spark-streaming/flink-sql-event-window-perform-windowed-aggregations-tumble/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":9},{"id":"Q2157","t":"How do you perform a stream-to-stream join in Flink SQL and why bound state with a time constraint","u":"/interview/data-engineering/spark-streaming/join-flink-sql-state-perform-stream-to-stream-select-orders/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":10},{"id":"Q2161","t":"How does Flink SQL handle late data in windowed aggregations","u":"/interview/data-engineering/spark-streaming/flink-sql-watermark-window-handle-late-data-windowed/","ch":"Data Engineering","tp":"Spark Streaming & Structured Streaming","qn":11},{"id":"Q1990","t":"What is Apache Flink","u":"/interview/data-engineering/flink/flink-streaming-event-spark-apache-another-engine-processing/","ch":"Data Engineering","tp":"Apache Flink","qn":20},{"id":"Q2128","t":"Explain Flink's architecture","u":"/interview/data-engineering/flink/flink-rest-k8s-architecture-dispatcher-job-submission/","ch":"Data Engineering","tp":"Apache Flink","qn":16},{"id":"Q2129","t":"What is the relationship between parallelism and task slots in Flink","u":"/interview/data-engineering/flink/flink-relationship-parallelism-task-slots-number-subtasks/","ch":"Data Engineering","tp":"Apache Flink","qn":33},{"id":"Q2130","t":"DataStream API vs Table API / Flink SQL","u":"/interview/data-engineering/flink/flink-api-state-sql-difference-datastream-low-level/","ch":"Data Engineering","tp":"Apache Flink","qn":32},{"id":"Q2131","t":"What are the Flink deployment modes","u":"/interview/data-engineering/flink/flink-k8s-deployment-modes-session-mode-long-running-cluster/","ch":"Data Engineering","tp":"Apache Flink","qn":28},{"id":"Q2134","t":"What are Flink's three time semantics","u":"/interview/data-engineering/flink/flink-event-system-time-semantics-happened-processing-clock/","ch":"Data Engineering","tp":"Apache Flink","qn":26},{"id":"Q2135","t":"What happens to late events in Flink","u":"/interview/data-engineering/flink/watermark-window-stream-flink-happens-late-events-arrive/","ch":"Data Engineering","tp":"Apache Flink","qn":29},{"id":"Q2139","t":"Forwarding vs redistributing data in Flink","u":"/interview/data-engineering/flink/pattern-flink-partition-map-forwarding-redistributing-data/","ch":"Data Engineering","tp":"Apache Flink","qn":24},{"id":"Q2145","t":"How does Flink achieve end-to-end exactly-once","u":"/interview/data-engineering/flink/flink-state-kafka-jdbc-checkpoint-achieve-end-to-end/","ch":"Data Engineering","tp":"Apache Flink","qn":22},{"id":"Q2147","t":"How does Flink handle backpressure","u":"/interview/data-engineering/flink/flink-channel-handle-backpressure-buffer-based-flow-control/","ch":"Data Engineering","tp":"Apache Flink","qn":25},{"id":"Q2148","t":"What are Flink restart strategies","u":"/interview/data-engineering/flink/flink-retry-restart-strategies-fixed-delay-times-delay/","ch":"Data Engineering","tp":"Apache Flink","qn":5},{"id":"Q2149","t":"What is Flink's failover strategy","u":"/interview/data-engineering/flink/flink-strategy-graph-failover-region-restart-failed-pipeline/","ch":"Data Engineering","tp":"Apache Flink","qn":6},{"id":"Q2150","t":"What is Flink SQL and how does it work","u":"/interview/data-engineering/flink/flink-sql-dynamic-streaming-graph-standard-against-tables/","ch":"Data Engineering","tp":"Apache Flink","qn":7},{"id":"Q2151","t":"What is a dynamic table in Flink SQL","u":"/interview/data-engineering/flink/dynamic-flink-sql-static-table-logical-changes-time-as-rows/","ch":"Data Engineering","tp":"Apache Flink","qn":8},{"id":"Q2152","t":"Append-only vs retract vs upsert changelog streams in Flink SQL","u":"/interview/data-engineering/flink/flink-sql-kafka-delete-difference-append-only-retract-upsert/","ch":"Data Engineering","tp":"Apache Flink","qn":9},{"id":"Q2153","t":"How do you define a Flink SQL source/sink table with CREATE TABLE WITH","u":"/interview/data-engineering/flink/flink-sql-kafka-jdbc-avro-watermark-event-define-source-sink/","ch":"Data Engineering","tp":"Apache Flink","qn":10},{"id":"Q2155","t":"What is a temporal join in Flink SQL","u":"/interview/data-engineering/flink/join-flink-sql-streaming-system-temporal-joining-table/","ch":"Data Engineering","tp":"Apache Flink","qn":11},{"id":"Q2156","t":"What is MATCH_RECOGNIZE in Flink SQL","u":"/interview/data-engineering/flink/flink-sql-event-stream-pattern-match-recognize-sql-based/","ch":"Data Engineering","tp":"Apache Flink","qn":12},{"id":"Q2158","t":"How do you read CDC data in Flink SQL and how does Flink interpret INSERT/UPDATE/DELETE changelog events","u":"/interview/data-engineering/flink/flink-sql-delete-cdc-change-data-capture-connectors/","ch":"Data Engineering","tp":"Apache Flink","qn":13},{"id":"Q2159","t":"What are Flink SQL catalogs and why are they important for production","u":"/interview/data-engineering/flink/flink-sql-catalogs-hivecatalog-jdbccatalog-in-memory-default/","ch":"Data Engineering","tp":"Apache Flink","qn":14},{"id":"Q2160","t":"What are Flink SQL hints and how are they used to override options or control join behavior","u":"/interview/data-engineering/flink/flink-sql-join-hints-options-lookup-override-connector/","ch":"Data Engineering","tp":"Apache Flink","qn":15},{"id":"Q2163","t":"What is ProcessFunction / KeyedProcessFunction in Flink and when do you use it","u":"/interview/data-engineering/flink/flink-api-window-event-processfunction-keyedprocessfunction/","ch":"Data Engineering","tp":"Apache Flink","qn":31},{"id":"Q2164","t":"What is Flink CEP (Complex Event Processing) and give a use case","u":"/interview/data-engineering/flink/flink-event-pattern-cep-complex-processing-library-detecting/","ch":"Data Engineering","tp":"Apache Flink","qn":17},{"id":"Q2165","t":"What is Flink CDC (Change Data Capture)","u":"/interview/data-engineering/flink/flink-stream-delete-mysql-postgresql-mongodb-cdc-change-data/","ch":"Data Engineering","tp":"Apache Flink","qn":18},{"id":"Q2166","t":"What is Flink's Async I/O","u":"/interview/data-engineering/flink/flink-api-async-asyncdatastream-unorderedwait-orderedwait/","ch":"Data Engineering","tp":"Apache Flink","qn":19},{"id":"Q2167","t":"How does Flink handle serialization","u":"/interview/data-engineering/flink/flink-avro-state-handle-serialization-built-in/","ch":"Data Engineering","tp":"Apache Flink","qn":23},{"id":"Q2168","t":"What is Flink's memory model for TaskManagers and how do you tune it","u":"/interview/data-engineering/flink/flink-jvm-heap-metaspace-memory-model-taskmanagers-framework/","ch":"Data Engineering","tp":"Apache Flink","qn":30},{"id":"Q2169","t":"How do you monitor Flink jobs and what metrics indicate trouble","u":"/interview/data-engineering/flink/flink-graph-checkpoint-state-monitor-jobs-web-dashboard-job/","ch":"Data Engineering","tp":"Apache Flink","qn":21},{"id":"Q2170","t":"What is Flink SQL and when do you use it","u":"/interview/data-engineering/flink/flink-sql-streaming-dynamic-kafka-hive-jdbc-pattern-spark/","ch":"Data Engineering","tp":"Apache Flink","qn":1},{"id":"Q2172","t":"What is stream deduplication in Flink and why is it important","u":"/interview/data-engineering/flink/stream-flink-window-sql-state-api-deduplication-removing/","ch":"Data Engineering","tp":"Apache Flink","qn":2},{"id":"Q2174","t":"What is AWS Kinesis Data Analytics and its relationship to Apache Flink","u":"/interview/data-engineering/flink/aws-service-streaming-sql-flink-kinesis-data-analytics/","ch":"Data Engineering","tp":"Apache Flink","qn":3},{"id":"Q2175","t":"What is the difference between Kinesis Data Analytics (managed Flink) and Amazon Kinesis Analytics (SQL-only), and when do you use each","u":"/interview/data-engineering/flink/flink-stream-difference-kinesis-data-analytics-managed/","ch":"Data Engineering","tp":"Apache Flink","qn":4},{"id":"Q2178","t":"What are the advantages of Kinesis Data Analytics (managed Flink) over self-managed Flink, and the trade-offs","u":"/interview/data-engineering/flink/flink-aws-s3-lambda-advantages-kinesis-data-analytics/","ch":"Data Engineering","tp":"Apache Flink","qn":27},{"id":"Q1998","t":"Consumer lag, rebalancing, back-pressure, and keeping a pipeline healthy","u":"/interview/data-engineering/kafka-data/consumer-partition-happens-pipeline-lags-consumer-group-lag/","ch":"Data Engineering","tp":"Kafka in Data Pipelines","qn":2},{"id":"Q2002","t":"Delivery semantics and how exactly-once is achieved","u":"/interview/data-engineering/kafka-data/streaming-transactional-delivery-semantics-pipeline-provide/","ch":"Data Engineering","tp":"Kafka in Data Pipelines","qn":1},{"id":"Q1996","t":"Handling late / out-of-order data and reprocessing in a streaming pipeline","u":"/interview/data-engineering/pipeline-design/streaming-kafka-handle-late-arriving-out-of-order-data/","ch":"Data Engineering","tp":"Pipeline Design & Operations","qn":2},{"id":"Q2008","t":"Ensuring data quality and handling pipeline failures in production","u":"/interview/data-engineering/pipeline-design/null-ensure-data-quality-pipeline-schema-validation-range/","ch":"Data Engineering","tp":"Pipeline Design & Operations","qn":1},{"id":"Q2088","t":"Delta Lake time travel","u":"/interview/data-engineering/databricks/delta-lake-rollback-time-travel-version-as-timestamp-ts/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":4},{"id":"Q2089","t":"Delta Lake MERGE INTO (upsert)","u":"/interview/data-engineering/databricks/delta-lake-merge-delete-pattern-atomic-upsert-atomically/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":5},{"id":"Q2122","t":"What are the Databricks cluster types","u":"/interview/data-engineering/databricks/databricks-sql-cluster-types-all-purpose-clusters/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":3},{"id":"Q2123","t":"What is Unity Catalog","u":"/interview/data-engineering/databricks/databricks-unity-catalog-unified-governance-layer-providing/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":7},{"id":"Q2125","t":"What is Delta Live Tables (DLT)","u":"/interview/data-engineering/databricks/delta-databricks-structured-streaming-live-tables-dlt/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":1},{"id":"Q2126","t":"How do you implement CDC (Change Data Capture) in Databricks","u":"/interview/data-engineering/databricks/databricks-merge-delta-streaming-kafka-implement-cdc-change/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":2},{"id":"Q2127","t":"What is the difference between Databricks `OPTIMIZE` and `VACUUM`","u":"/interview/data-engineering/databricks/databricks-difference-optimize-vacuum-compacts-small-files/","ch":"Data Engineering","tp":"Databricks & Delta Lake","qn":6},{"id":"Q2023","t":"How AQE handles data skew (and when you still need salting)","u":"/interview/data-engineering/performance/aqe-handle-data-skew-detects-skewed-shuffle-partitions-via/","ch":"Data Engineering","tp":"Performance Tuning","qn":1},{"id":"Q2044","t":"Requirements for effective bucketing and its caveats","u":"/interview/data-engineering/performance/join-delta-requirements-effective-bucketing-high-cardinality/","ch":"Data Engineering","tp":"Performance Tuning","qn":6},{"id":"Q2048","t":"Why min/max and dictionary filtering fail on high-cardinality unsorted columns, and how bloom filters help","u":"/interview/data-engineering/performance/min-max-statistics-dictionary-filtering-ineffective/","ch":"Data Engineering","tp":"Performance Tuning","qn":2},{"id":"Q2053","t":"When you should NOT use a Broadcast Join: \"smaller ≠ safe to broadcast\"","u":"/interview/data-engineering/performance/join-executor-broadcast-small-table-large-memory-causes-oom/","ch":"Data Engineering","tp":"Performance Tuning","qn":3},{"id":"Q2054","t":"How Broadcast Joins interact with AQE: runtime switch from SSMJ to BHJ","u":"/interview/data-engineering/performance/broadcast-joins-interact-aqe-dynamically-switch-ssmj-bhj/","ch":"Data Engineering","tp":"Performance Tuning","qn":4},{"id":"Q2055","t":"Broadcast Variable vs Broadcast Join","u":"/interview/data-engineering/performance/join-distributed-sql-broadcast-variable-sc-dict-general/","ch":"Data Engineering","tp":"Performance Tuning","qn":5},{"id":"Q2059","t":"When to use AQE skew handling vs manual salting","u":"/interview/data-engineering/performance/try-aqe-skew-handling-manual-salting-thing-automatic-change/","ch":"Data Engineering","tp":"Performance Tuning","qn":7},{"id":"Q2060","t":"Other techniques that help with data skew","u":"/interview/data-engineering/performance/join-strategy-techniques-help-data-skew-isolate-hot-keys/","ch":"Data Engineering","tp":"Performance Tuning","qn":8},{"id":"Q2006","t":"Optimizing a slow query on a billion rows beyond \"add an index\"","u":"/interview/data-engineering/advanced-de/index-partitioning-query-slow-billion-rows-optimize-beyond/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":14},{"id":"Q2014","t":"Narrow vs wide dependencies","u":"/interview/data-engineering/advanced-de/partition-map-join-difference-narrow-dependencies-parent/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":12},{"id":"Q2015","t":"Fault tolerance through lineage","u":"/interview/data-engineering/advanced-de/spark-executor-partition-achieve-fault-tolerance-lineage-dag/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":13},{"id":"Q2021","t":"AQE's three major optimizations","u":"/interview/data-engineering/advanced-de/partition-join-dynamic-strategy-aqe-major-optimizations/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":6},{"id":"Q2025","t":"Common AQE configuration parameters and pitfalls","u":"/interview/data-engineering/advanced-de/configuration-spark-sql-common-aqe-parameters-adaptive/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":7},{"id":"Q2029","t":"Serialized vs deserialized storage","u":"/interview/data-engineering/advanced-de/difference-serialized-deserialized-storage-faster-access/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":1},{"id":"Q2033","t":"Common caching mistakes","u":"/interview/data-engineering/advanced-de/caching-cache-once-common-mistakes-everything-assuming-eager/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":2},{"id":"Q2046","t":"Projection pushdown (column pruning)","u":"/interview/data-engineering/advanced-de/projection-pushdown-column-pruning-reading-columns-needed/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":21},{"id":"Q2081","t":"Temporary views, global temporary views, and managed vs external tables","u":"/interview/data-engineering/advanced-de/spark-temporary-views-createorreplacetempview-session-scoped/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":15},{"id":"Q2082","t":"GraphX and MLlib","u":"/interview/data-engineering/advanced-de/spark-api-graphx-graph-parallel-computation-vertices-edges/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":18},{"id":"Q2086","t":"Bronze → Silver → Gold (Medallion) architecture","u":"/interview/data-engineering/advanced-de/bronze-silver-gold-medallion-architecture-raw-ingested-data/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":23},{"id":"Q2091","t":"Pandas UDF (vectorized UDF)","u":"/interview/data-engineering/advanced-de/spark-sql-pandas-udf-vectorized-transfers-data-batches-via/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":8},{"id":"Q2093","t":"explode() vs explode_outer()","u":"/interview/data-engineering/advanced-de/array-null-explode-outer-drops-rows-empty-keeps-nulls-filter/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":3},{"id":"Q2094","t":"Higher-order array functions: transform, filter, aggregate, exists, forall","u":"/interview/data-engineering/advanced-de/array-spark-higher-order-functions-transform-filter/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":4},{"id":"Q2098","t":"collect() vs take(n) vs head(n) vs first()","u":"/interview/data-engineering/advanced-de/collect-head-brings-rows-driver-dangerous-large-data-causes/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":17},{"id":"Q2100","t":"UnsafeRow and Project Tungsten","u":"/interview/data-engineering/advanced-de/binary-spark-jvm-unsaferow-tungsten-format-in-memory-storage/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":10},{"id":"Q2103","t":"Why withColumn in a loop is an anti-pattern","u":"/interview/data-engineering/advanced-de/merge-once-spark-withcolumn-loop-anti-pattern-call/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":24},{"id":"Q2109","t":"What is `MSCK REPAIR TABLE`","u":"/interview/data-engineering/advanced-de/command-partition-file-system-s3-spark-sql-msck-repair-table/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":19},{"id":"Q2115","t":"What is `SizeEstimator`","u":"/interview/data-engineering/advanced-de/spark-jvm-sizeestimator-utility-estimate-in-memory-size/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":22},{"id":"Q2116","t":"What is `pathGlobFilter`","u":"/interview/data-engineering/advanced-de/spark-pattern-partition-pathglobfilter-option-filter-files/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":20},{"id":"Q2119","t":"Why does column order matter with `insertInto()`","u":"/interview/data-engineering/advanced-de/spark-partition-column-order-matter-insertinto-matches/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":11},{"id":"Q2124","t":"What is Auto Loader (`cloudFiles`)","u":"/interview/data-engineering/advanced-de/databricks-streaming-file-auto-loader-cloudfiles-source/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":5},{"id":"Q2176","t":"How does Kinesis Data Analytics integrate with AWS Lambda","u":"/interview/data-engineering/advanced-de/aws-lambda-kinesis-data-analytics-integrate-functions/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":9},{"id":"Q2177","t":"What is Amazon MSK vs Kinesis Data Streams, and when do you choose each","u":"/interview/data-engineering/advanced-de/streaming-kafka-aws-amazon-msk-managed-apache-kinesis-data/","ch":"Data Engineering","tp":"Advanced Data Engineering","qn":16},{"id":"Q2180","t":"Difference between smoke, sanity, and regression testing and where each runs in CI/CD","u":"/interview/qa-testing/testing-fundamentals/quick-difference-smoke-testing-build-testable-check-critical/","ch":"QA, Testing & SDET","tp":"Testing Fundamentals","qn":4},{"id":"Q2181","t":"Functional vs non-functional testing, the test pyramid, and why the ice-cream cone is an anti-pattern","u":"/interview/qa-testing/testing-fundamentals/functional-system-base-difference-non-functional-testing/","ch":"QA, Testing & SDET","tp":"Testing Fundamentals","qn":2},{"id":"Q2182","t":"Severity vs priority, and why they can diverge","u":"/interview/qa-testing/testing-fundamentals/difference-severity-technical-business-impact-defect/","ch":"QA, Testing & SDET","tp":"Testing Fundamentals","qn":3},{"id":"Q2183","t":"The bug life cycle, alternate states, and handling a \"cannot reproduce\" defect","u":"/interview/qa-testing/testing-fundamentals/walk-bug-life-cycle-assigned-open-fixed-retest-verified/","ch":"QA, Testing & SDET","tp":"Testing Fundamentals","qn":1},{"id":"Q2184","t":"Writing login page test cases beyond the happy path","u":"/interview/qa-testing/test-cases/path-timeout-xss-test-cases-login-page-beyond-happy-valid/","ch":"QA, Testing & SDET","tp":"Test Case Writing","qn":4},{"id":"Q2185","t":"Writing payment gateway test cases focused on financial correctness and reliability","u":"/interview/qa-testing/test-cases/gateway-timeout-test-cases-payment-focus-financial/","ch":"QA, Testing & SDET","tp":"Test Case Writing","qn":5},{"id":"Q2186","t":"Test-design techniques to reduce case count while keeping coverage","u":"/interview/qa-testing/test-cases/partitioning-state-test-design-techniques-apply-reduce-case/","ch":"QA, Testing & SDET","tp":"Test Case Writing","qn":1},{"id":"Q2187","t":"Which test cases to automate vs leave manual, and why \"automate everything\" is a mistake","u":"/interview/qa-testing/test-cases/test-cases-automate-leave-manual-repetitive-stable/","ch":"QA, Testing & SDET","tp":"Test Case Writing","qn":2},{"id":"Q2191","t":"Writing a robust Playwright login test","u":"/interview/qa-testing/test-cases/playwright-base-state-test-opens-app-navigates-login-enters/","ch":"QA, Testing & SDET","tp":"Test Case Writing","qn":3},{"id":"Q2196","t":"Explaining a mature Playwright framework architecture","u":"/interview/qa-testing/test-automation/playwright-api-configuration-mature-similar-framework/","ch":"QA, Testing & SDET","tp":"Test Automation Strategy","qn":1},{"id":"Q2198","t":"Structuring a framework's folders and justifying why each exists","u":"/interview/qa-testing/test-automation/api-structure-framework-folders-tests-pages-fixtures-utils/","ch":"QA, Testing & SDET","tp":"Test Automation Strategy","qn":2},{"id":"Q2188","t":"Validating a REST API response beyond the status code","u":"/interview/qa-testing/api-testing/rest-api-http-validate-response-beyond-status-headers-body/","ch":"QA, Testing & SDET","tp":"API Testing","qn":1},{"id":"Q2189","t":"Validating that UI-displayed data matches the database","u":"/interview/qa-testing/api-testing/pagination-validate-ui-displayed-data-matches-database/","ch":"QA, Testing & SDET","tp":"API Testing","qn":3},{"id":"Q2216","t":"How to performance test an API","u":"/interview/qa-testing/api-testing/api-performance-test-define-scenarios-login-browse-checkout/","ch":"QA, Testing & SDET","tp":"API Testing","qn":2},{"id":"Q2192","t":"Building stable locators when the app generates dynamic IDs","u":"/interview/qa-testing/playwright/dynamic-build-stable-locators-app-generates-ids-attributes/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":1},{"id":"Q2193","t":"Difference between Playwright's locator(), getByRole(), and getByText()","u":"/interview/qa-testing/playwright/playwright-difference-locator-getbyrole-getbytext-terms/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":2},{"id":"Q2194","t":"How Playwright handles file uploads","u":"/interview/qa-testing/playwright/playwright-file-event-handle-uploads-setinputfiles-capturing/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":4},{"id":"Q2195","t":"Why choose Playwright over Selenium for a modern web app","u":"/interview/qa-testing/playwright/playwright-choose-selenium-modern-web-app-auto-waiting-true/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":6},{"id":"Q2197","t":"Implementing the Page Object Model, its benefits, and its limitations","u":"/interview/qa-testing/playwright/implemented-page-object-model-separate-test-logic/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":7},{"id":"Q2200","t":"Running Playwright tests in parallel and choosing the right level of parallelism","u":"/interview/qa-testing/playwright/playwright-state-once-run-tests-parallel-worker-based/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":3},{"id":"Q2204","t":"(Scenario) A Playwright suite passes locally but fails in CI","u":"/interview/qa-testing/playwright/playwright-jenkins-file-scenario-suite-passes-locally-fails/","ch":"QA, Testing & SDET","tp":"Playwright & UI Automation","qn":5},{"id":"Q2213","t":"What is performance testing and its types","u":"/interview/qa-testing/performance-testing/system-load-long-performance-testing-behaves-types-normal/","ch":"QA, Testing & SDET","tp":"Performance Testing","qn":2},{"id":"Q2214","t":"Tools used for performance testing","u":"/interview/qa-testing/performance-testing/tools-performance-testing-jmeter-open-source-ui-based-widely/","ch":"QA, Testing & SDET","tp":"Performance Testing","qn":3},{"id":"Q2215","t":"Key metrics to measure in performance testing","u":"/interview/qa-testing/performance-testing/long-key-metrics-measure-response-time-request-throughput/","ch":"QA, Testing & SDET","tp":"Performance Testing","qn":1},{"id":"Q2217","t":"What is contract testing and the tool used","u":"/interview/qa-testing/contract-testing/consumer-contract-testing-agreement-services-says-expect/","ch":"QA, Testing & SDET","tp":"Contract Testing","qn":1},{"id":"Q2218","t":"Why contract testing is important in microservices","u":"/interview/qa-testing/contract-testing/microservices-service-api-catch-contract-testing-important/","ch":"QA, Testing & SDET","tp":"Contract Testing","qn":2},{"id":"Q2199","t":"Managing test data and keeping parallel tests from interfering","u":"/interview/qa-testing/cicd-testing/factory-manage-test-data-json-csv-fixtures-db-seeding/","ch":"QA, Testing & SDET","tp":"CI/CD & Testing","qn":3},{"id":"Q2202","t":"Generating and using Allure/HTML reports that help developers diagnose failures","u":"/interview/qa-testing/cicd-testing/generate-allure-html-test-reports-passed-failed-duration/","ch":"QA, Testing & SDET","tp":"CI/CD & Testing","qn":1},{"id":"Q2203","t":"Identifying and fixing a flaky test, and why blanket retrying is a bad fix","u":"/interview/qa-testing/cicd-testing/race-identify-fix-flaky-test-diagnose-cause-poor/","ch":"QA, Testing & SDET","tp":"CI/CD & Testing","qn":2},{"id":"Q2190","t":"SQL query to find duplicates and safely delete them keeping one row","u":"/interview/qa-testing/sdet-behavioral/sql-delete-query-duplicate-records-group-key-having-count/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":12},{"id":"Q2201","t":"Integrating an automation suite into CI end to end, with secure secrets","u":"/interview/qa-testing/sdet-behavioral/jenkins-integrate-automation-suite-ci-azure-devops-github/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":2},{"id":"Q2205","t":"(Scenario) The entire automation suite starts failing right after a deployment","u":"/interview/qa-testing/sdet-behavioral/api-scenario-entire-automation-suite-starts-failing-right/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":3},{"id":"Q2206","t":"Common SDET coding tasks with complexity and edge cases","u":"/interview/qa-testing/sdet-behavioral/state-string-array-salary-sql-solve-common-sdet-coding-tasks/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":4},{"id":"Q2207","t":"(Behavioral) Your most challenging automation problem with senior-level ownership","u":"/interview/qa-testing/sdet-behavioral/behavioral-challenging-automation-problem-senior-level/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":1},{"id":"Q2208","t":"What is TDD (Test-Driven Development) and the Red-Green-Refactor cycle","u":"/interview/qa-testing/sdet-behavioral/design-tdd-test-driven-development-test-fails-enough-pass/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":10},{"id":"Q2209","t":"What is BDD (Behavior-Driven Development) and its tools","u":"/interview/qa-testing/sdet-behavioral/bdd-behavior-driven-development-tests-plain-english/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":6},{"id":"Q2210","t":"The difference between TDD and BDD, and using them together","u":"/interview/qa-testing/sdet-behavioral/difference-tdd-bdd-developer-focused-test-business-focused/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":11},{"id":"Q2211","t":"What is code coverage and why 100% is not always the goal","u":"/interview/qa-testing/sdet-behavioral/path-coverage-tested-line-branch-100-always-goal-tests/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":8},{"id":"Q2212","t":"What is mocking and stubbing, and the tools used","u":"/interview/qa-testing/sdet-behavioral/mockito-mocking-stubbing-mock-fake-object-tracks-called/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":9},{"id":"Q2219","t":"What is chaos engineering","u":"/interview/qa-testing/sdet-behavioral/system-chaos-engineering-intentionally-breaking-things/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":7},{"id":"Q2220","t":"Common chaos experiments and the expected graceful behavior","u":"/interview/qa-testing/sdet-behavioral/common-chaos-experiments-kill-random-pod-container-add/","ch":"QA, Testing & SDET","tp":"SDET Scenarios","qn":5},{"id":"Q2510","t":"The 4 Steps of a System Design Interview","u":"/interview/system-design/approach/system-design-steps-clarify-requirements-scope-ask-questions/","ch":"System Design","tp":"System Design Approach & Estimation","qn":3},{"id":"Q2511","t":"Back-of-Envelope Estimation (QPS, Storage, Bandwidth, Servers)","u":"/interview/system-design/approach/back-of-envelope-estimation-estimate-qps-queries-per-second/","ch":"System Design","tp":"System Design Approach & Estimation","qn":1},{"id":"Q2512","t":"Functional vs Non-Functional Requirements","u":"/interview/system-design/approach/functional-system-consistency-requirements-non-functional/","ch":"System Design","tp":"System Design Approach & Estimation","qn":2},{"id":"Q2520","t":"Design a Distributed Cache (like Redis/Memcached)","u":"/interview/system-design/concepts/design-distributed-cache-redis-eviction-lru-lfu-memcached/","ch":"System Design","tp":"System Design Concepts","qn":8},{"id":"Q2527","t":"Load Balancer","u":"/interview/system-design/concepts/load-balancer-system-distributes-traffic-types-l4-l7/","ch":"System Design","tp":"System Design Concepts","qn":9},{"id":"Q2528","t":"CDN (Content Delivery Network)","u":"/interview/system-design/concepts/static-load-cdn-content-delivery-network-caches-images-css/","ch":"System Design","tp":"System Design Concepts","qn":1},{"id":"Q2529","t":"What is AWS CloudFront","u":"/interview/system-design/concepts/aws-s3-ec2-lambda-cache-path-ttl-api-cloudfront-amazon-cdn/","ch":"System Design","tp":"System Design Concepts","qn":2},{"id":"Q2531","t":"Database Choice: SQL vs NoSQL vs Cache","u":"/interview/system-design/concepts/sql-postgresql-mysql-acid-nosql-mongodb-cache-redis-database/","ch":"System Design","tp":"System Design Concepts","qn":4},{"id":"Q2534","t":"Consistent Hashing","u":"/interview/system-design/concepts/distributed-consistent-hashing-distribute-data-across-nodes/","ch":"System Design","tp":"System Design Concepts","qn":6},{"id":"Q2535","t":"Database Sharding","u":"/interview/system-design/concepts/sharding-partitioning-database-horizontal-data-across/","ch":"System Design","tp":"System Design Concepts","qn":7},{"id":"Q2536","t":"Replication","u":"/interview/system-design/concepts/replication-master-slave-replicas-master-master-conflict/","ch":"System Design","tp":"System Design Concepts","qn":11},{"id":"Q2537","t":"CAP Theorem in Practice","u":"/interview/system-design/concepts/cap-partition-consistency-theorem-practice-network-choose-cp/","ch":"System Design","tp":"System Design Concepts","qn":5},{"id":"Q2538","t":"SQL vs NoSQL: When to Use Which","u":"/interview/system-design/concepts/sql-nosql-acid-scale-relations-documents-schema-schema-less/","ch":"System Design","tp":"System Design Concepts","qn":12},{"id":"Q2539","t":"Synchronous vs Asynchronous Communication","u":"/interview/system-design/concepts/rest-grpc-kafka-synchronous-asynchronous-communication-sync/","ch":"System Design","tp":"System Design Concepts","qn":14},{"id":"Q2540","t":"Push vs Pull Model","u":"/interview/system-design/concepts/websocket-sse-push-pull-model-notifications-polling/","ch":"System Design","tp":"System Design Concepts","qn":10},{"id":"Q2541","t":"Monolith vs Microservices","u":"/interview/system-design/concepts/microservices-monolith-better-small-team-early-stage-needed/","ch":"System Design","tp":"System Design Concepts","qn":15},{"id":"Q2542","t":"Build vs Buy","u":"/interview/system-design/concepts/component-service-build-buy-decide-whether-in-house-adopt/","ch":"System Design","tp":"System Design Concepts","qn":16},{"id":"Q2543","t":"Strong Consistency vs Eventual Consistency","u":"/interview/system-design/concepts/consistency-strong-eventual-banking-needs-social-media-feed/","ch":"System Design","tp":"System Design Concepts","qn":13},{"id":"Q2544","t":"Batch Processing vs Stream Processing","u":"/interview/system-design/concepts/stream-spark-flink-kafka-batch-processing-historical/","ch":"System Design","tp":"System Design Concepts","qn":3},{"id":"Q2513","t":"Design a URL Shortener (like bit.ly)","u":"/interview/system-design/design-problems/design-cache-redis-url-shortener-bit-ly-hashing-base62/","ch":"System Design","tp":"System Design Problems","qn":12},{"id":"Q2514","t":"Design a Rate Limiter","u":"/interview/system-design/design-problems/design-sliding-window-distributed-redis-api-gateway-rate/","ch":"System Design","tp":"System Design Problems","qn":13},{"id":"Q2515","t":"Design a Notification System","u":"/interview/system-design/design-problems/design-system-queue-kafka-retry-template-notification-push/","ch":"System Design","tp":"System Design Problems","qn":6},{"id":"Q2516","t":"Design a Chat/Messaging System (like WhatsApp)","u":"/interview/system-design/design-problems/design-system-websocket-chat-messaging-whatsapp-real-time/","ch":"System Design","tp":"System Design Problems","qn":1},{"id":"Q2517","t":"Design a News Feed / Timeline (like Twitter/Instagram)","u":"/interview/system-design/design-problems/design-pagination-caching-news-feed-timeline-twitter/","ch":"System Design","tp":"System Design Problems","qn":5},{"id":"Q2518","t":"Design a Payment System","u":"/interview/system-design/design-problems/design-system-payment-idempotency-keys-double-spend/","ch":"System Design","tp":"System Design Problems","qn":7},{"id":"Q2519","t":"Design a Ride-Sharing System (like Uber/Ola)","u":"/interview/system-design/design-problems/design-system-matching-index-state-ride-sharing-uber-ola/","ch":"System Design","tp":"System Design Problems","qn":8},{"id":"Q2521","t":"Design a File Storage System (like Google Drive/S3)","u":"/interview/system-design/design-problems/design-file-system-s3-versioning-storage-google-drive/","ch":"System Design","tp":"System Design Problems","qn":4},{"id":"Q2522","t":"Design a Digital Wallet System (like Paytm/Google Pay)","u":"/interview/system-design/design-problems/design-system-digital-wallet-paytm-google-pay-balance/","ch":"System Design","tp":"System Design Problems","qn":2},{"id":"Q2523","t":"Design a Search Autocomplete / Typeahead","u":"/interview/system-design/design-problems/design-search-trie-caching-autocomplete-typeahead-data/","ch":"System Design","tp":"System Design Problems","qn":9},{"id":"Q2524","t":"Design a Video Streaming Platform (like YouTube/Netflix)","u":"/interview/system-design/design-problems/design-streaming-video-platform-youtube-netflix-upload/","ch":"System Design","tp":"System Design Problems","qn":11},{"id":"Q2525","t":"Design a Distributed Task Scheduler (like cron at scale)","u":"/interview/system-design/design-problems/design-distributed-queue-retry-isolation-task-scheduler-cron/","ch":"System Design","tp":"System Design Problems","qn":3},{"id":"Q2526","t":"Design a Top-K Trending / Real-Time Leaderboard System","u":"/interview/system-design/design-problems/design-system-window-kafka-merge-top-k-trending-real-time/","ch":"System Design","tp":"System Design Problems","qn":10},{"id":"Q2530","t":"Message Queue / Event Streaming: Kafka vs RabbitMQ vs SQS","u":"/interview/system-design/messaging/queue-event-streaming-kafka-rabbitmq-consumer-message-sqs/","ch":"System Design","tp":"Messaging: Kafka vs RabbitMQ vs SQS","qn":1},{"id":"Q2532","t":"Caching Strategies","u":"/interview/system-design/api-gateway-sd/caching-load-cache-ttl-strategies-cache-aside-lazy/","ch":"System Design","tp":"API Gateway in System Design","qn":2},{"id":"Q2533","t":"API Gateway","u":"/interview/system-design/api-gateway-sd/api-gateway-microservices-load-ssl-single-entry-point/","ch":"System Design","tp":"API Gateway in System Design","qn":1},{"id":"Q2580","t":"Authentication vs Authorization (who are you vs what can you do)","u":"/interview/security/auth-basics/difference-authentication-authorization/","ch":"Security","tp":"Authentication & Authorization","qn":2},{"id":"Q2581","t":"Session-Based Authentication and Its Problems","u":"/interview/security/auth-basics/csrf-session-based-authentication-server-stores-session/","ch":"Security","tp":"Authentication & Authorization","qn":1},{"id":"Q2582","t":"Token-Based Authentication (JWT) and Why It Suits Microservices","u":"/interview/security/auth-basics/jwt-state-microservices-scalable-token-based-authentication/","ch":"Security","tp":"Authentication & Authorization","qn":4},{"id":"Q2583","t":"RBAC vs ABAC (Role-Based vs Attribute-Based Access Control)","u":"/interview/security/auth-basics/difference-rbac-role-based-access-control-permissions/","ch":"Security","tp":"Authentication & Authorization","qn":3},{"id":"Q2584","t":"Structure of a JWT (Header, Payload, Signature) and Why the Payload Is Not Encrypted","u":"/interview/security/jwt/jwt-structure-header-algorithm-type-payload-claims-sub-exp/","ch":"Security","tp":"JWT: Structure, Validation, Storage","qn":1},{"id":"Q2585","t":"How JWT Validation Works and Why Never Store Sensitive Data in the Payload","u":"/interview/security/jwt/jwt-validation-server-checks-signature-tampered-expiration/","ch":"Security","tp":"JWT: Structure, Validation, Storage","qn":2},{"id":"Q2586","t":"Access Token vs Refresh Token and Refresh Token Rotation","u":"/interview/security/jwt/api-access-token-refresh-short-lived-long-lived-without/","ch":"Security","tp":"JWT: Structure, Validation, Storage","qn":3},{"id":"Q2587","t":"Where to Store JWT in the Browser (HttpOnly Cookie vs localStorage vs sessionStorage)","u":"/interview/security/jwt/jwt-xss-store-browser-httponly-secure-samesite-cookie-safest/","ch":"Security","tp":"JWT: Structure, Validation, Storage","qn":4},{"id":"Q2588","t":"OAuth2: Delegated Authorization and Its Four Roles","u":"/interview/security/oauth2-oidc/oauth2-framework-delegated-authorization-letting-third-party/","ch":"Security","tp":"OAuth2 & OpenID Connect","qn":1},{"id":"Q2589","t":"OAuth2 Authorization Code Flow and Why the Code Exchange Is Server-to-Server","u":"/interview/security/oauth2-oidc/authorization-flow-secure-web-apps-user-clicks-login-google/","ch":"Security","tp":"OAuth2 & OpenID Connect","qn":4},{"id":"Q2590","t":"PKCE (Proof Key for Code Exchange) for Mobile and SPA Clients","u":"/interview/security/oauth2-oidc/pkce-proof-key-exchange-extension-mobile-spa-apps-cannot/","ch":"Security","tp":"OAuth2 & OpenID Connect","qn":3},{"id":"Q2591","t":"OAuth2 Client Credentials Flow for Machine-to-Machine Authentication","u":"/interview/security/oauth2-oidc/client-credentials-flow-machine-to-machine/","ch":"Security","tp":"OAuth2 & OpenID Connect","qn":5},{"id":"Q2592","t":"OpenID Connect (OIDC): Authentication Layer on Top of OAuth2","u":"/interview/security/oauth2-oidc/oidc-jwt-openid-connect-layer-top-oauth2-adds-authentication/","ch":"Security","tp":"OAuth2 & OpenID Connect","qn":2},{"id":"Q2593","t":"SQL Injection and How to Prevent It with Parameterized Queries","u":"/interview/security/web-vulnerabilities/sql-injection-attacker-puts-fields-manipulate-database/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":4},{"id":"Q2594","t":"XSS (Cross-Site Scripting) and How to Prevent It","u":"/interview/security/web-vulnerabilities/xss-cross-site-scripting-attacker-injects-malicious/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":7},{"id":"Q2595","t":"CSRF (Cross-Site Request Forgery) and How to Prevent It","u":"/interview/security/web-vulnerabilities/csrf-cross-site-request-forgery-attacker-tricks-logged-in/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":2},{"id":"Q2596","t":"Broken Authentication and Best Practices","u":"/interview/security/web-vulnerabilities/broken-authentication-weak-passwords-account-lockout-exposed/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":1},{"id":"Q2597","t":"Sensitive Data Exposure and How to Prevent It","u":"/interview/security/web-vulnerabilities/http-logging-tls-sensitive-data-exposure-storing-passwords/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":3},{"id":"Q2598","t":"Principle of Least Privilege","u":"/interview/security/web-vulnerabilities/principle-least-privilege-users-services-minimum-permissions/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":6},{"id":"Q2599","t":"SSRF (Server-Side Request Forgery) and How to Prevent It","u":"/interview/security/web-vulnerabilities/http-proxy-gateway-ssrf-server-side-request-forgery-attacker/","ch":"Security","tp":"Web Vulnerabilities: SQLi, XSS, CSRF, SSRF","qn":5},{"id":"Q2470","t":"Tell me about yourself: a short 2-minute story","u":"/interview/behavioral-hr/self-introduction/yourself-short-2-minute-story-done-want/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":6},{"id":"Q2471","t":"Why are you looking for a new job / Why are you leaving your current company?","u":"/interview/behavioral-hr/self-introduction/looking-job-leaving-current-company/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":8},{"id":"Q2472","t":"Where do you see yourself in 3-5 years?","u":"/interview/behavioral-hr/self-introduction/yourself-3-5-years/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":7},{"id":"Q2480","t":"Tell me about a time you had to make a tough technical decision: options, how you decided, and the result","u":"/interview/behavioral-hr/self-introduction/time-tough-technical-decision-options-decide-result-decided/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":3},{"id":"Q2483","t":"Tell me about a time you improved the performance of a slow system: what was slow, what you changed, and the improvement","u":"/interview/behavioral-hr/self-introduction/system-time-improved-performance-slow-change-improvement/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":4},{"id":"Q2485","t":"Tell me about a time you had to choose between two technologies or frameworks: what factors did you consider?","u":"/interview/behavioral-hr/self-introduction/time-choose-technologies-frameworks-factors/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":2},{"id":"Q2487","t":"Tell me about the most complex system you have designed or worked on: what made it complex, and how did you handle the complexity?","u":"/interview/behavioral-hr/self-introduction/system-complex-designed-worked-handle-complexity/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":5},{"id":"Q2488","t":"Tell me about a time you disagreed with a teammate or manager: the disagreement, how you handled it, and the outcome","u":"/interview/behavioral-hr/self-introduction/time-disagreed-teammate-manager-disagreement-handle-outcome/","ch":"Behavioral / HR: STAR Method","tp":"Self Introduction","qn":1},{"id":"Q2473","t":"What is your biggest strength and how has it helped you at work?","u":"/interview/behavioral-hr/strengths-weaknesses/biggest-strength-helped/","ch":"Behavioral / HR: STAR Method","tp":"Strengths & Weaknesses","qn":1},{"id":"Q2474","t":"What is your biggest weakness and what are you doing to improve it?","u":"/interview/behavioral-hr/strengths-weaknesses/biggest-weakness-doing-improve/","ch":"Behavioral / HR: STAR Method","tp":"Strengths & Weaknesses","qn":2},{"id":"Q2475","t":"Why should we hire you over other candidates?","u":"/interview/behavioral-hr/company-questions/hire-candidates/","ch":"Behavioral / HR: STAR Method","tp":"Why This Company","qn":3},{"id":"Q2476","t":"Why do you want to join THIS company specifically?","u":"/interview/behavioral-hr/company-questions/join-want-company-specifically/","ch":"Behavioral / HR: STAR Method","tp":"Why This Company","qn":2},{"id":"Q2477","t":"What do you know about our company / product / team?","u":"/interview/behavioral-hr/company-questions/company-product-team/","ch":"Behavioral / HR: STAR Method","tp":"Why This Company","qn":1},{"id":"Q2478","t":"What is your expected salary and how did you arrive at that number?","u":"/interview/behavioral-hr/salary-logistics/salary-arrive-number/","ch":"Behavioral / HR: STAR Method","tp":"Salary & Logistics","qn":2},{"id":"Q2479","t":"Are you comfortable with the work location / hybrid / remote model?","u":"/interview/behavioral-hr/salary-logistics/comfortable-location-hybrid-remote-model/","ch":"Behavioral / HR: STAR Method","tp":"Salary & Logistics","qn":1},{"id":"Q2481","t":"Describe a time you fixed a critical production bug under pressure: what happened, step by step, and what you learned","u":"/interview/behavioral-hr/technical-scenarios/time-fixed-critical-production-bug-pressure-happened-step/","ch":"Behavioral / HR: STAR Method","tp":"Technical STAR Scenarios","qn":3},{"id":"Q2482","t":"Describe a critical production issue you handled end to end using STAR: and why evidence, impact, and prevention distinguish a senior answer","u":"/interview/behavioral-hr/technical-scenarios/star-thread-behavioral-critical-production-issue-handled/","ch":"Behavioral / HR: STAR Method","tp":"Technical STAR Scenarios","qn":1},{"id":"Q2491","t":"Team Missed a Deadline: what happened and what did you do?","u":"/interview/behavioral-hr/technical-scenarios/time-team-missed-deadline-happened-role/","ch":"Behavioral / HR: STAR Method","tp":"Technical STAR Scenarios","qn":2},{"id":"Q2495","t":"A Mistake That Affected Production: how did you fix and prevent it?","u":"/interview/behavioral-hr/technical-scenarios/time-mistake-affected-production-happened-fix-prevent/","ch":"Behavioral / HR: STAR Method","tp":"Technical STAR Scenarios","qn":4},{"id":"Q2484","t":"Describe a project where you had to learn a new technology quickly: how did you learn it and apply it?","u":"/interview/behavioral-hr/learning-growth/project-learn-technology-quickly-apply/","ch":"Behavioral / HR: STAR Method","tp":"Learning & Growth","qn":1},{"id":"Q2490","t":"Mentoring a Junior Developer: what did you teach them?","u":"/interview/behavioral-hr/learning-growth/time-helped-junior-developer-mentored-someone-teach/","ch":"Behavioral / HR: STAR Method","tp":"Learning & Growth","qn":4},{"id":"Q2492","t":"Receiving Negative Feedback: how did you react and what changed?","u":"/interview/behavioral-hr/learning-growth/time-received-negative-feedback-react-change-receiving/","ch":"Behavioral / HR: STAR Method","tp":"Learning & Growth","qn":5},{"id":"Q2494","t":"A Time You Failed: what went wrong and what did you learn?","u":"/interview/behavioral-hr/learning-growth/time-failed-something-went-wrong-learn/","ch":"Behavioral / HR: STAR Method","tp":"Learning & Growth","qn":3},{"id":"Q2503","t":"Driving a Technical Improvement or Migration: plan, challenges, and outcome","u":"/interview/behavioral-hr/learning-growth/microservices-time-drove-technical-improvement-migration/","ch":"Behavioral / HR: STAR Method","tp":"Learning & Growth","qn":2},{"id":"Q2489","t":"Working With a Difficult Person: how did you manage the relationship?","u":"/interview/behavioral-hr/team-conflict/time-difficult-person-manage-relationship-working/","ch":"Behavioral / HR: STAR Method","tp":"Team, Conflict & Leadership","qn":2},{"id":"Q2493","t":"Convincing the Team to Adopt a Different Approach: how did you persuade them?","u":"/interview/behavioral-hr/team-conflict/time-convince-team-adopt-different-approach-persuade/","ch":"Behavioral / HR: STAR Method","tp":"Team, Conflict & Leadership","qn":1},{"id":"Q2498","t":"Leading a Project or Initiative: scope, organization, and result","u":"/interview/behavioral-hr/team-conflict/time-led-project-initiative-scope-organize-result-leading/","ch":"Behavioral / HR: STAR Method","tp":"Team, Conflict & Leadership","qn":3},{"id":"Q2486","t":"Describe a time you built something from scratch vs using an existing solution: why did you choose that approach?","u":"/interview/behavioral-hr/general-star/time-built-something-scratch-existing-solution-choose/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":1},{"id":"Q2496","t":"Underestimating the Effort of a Task: impact and how you handled it","u":"/interview/behavioral-hr/general-star/time-underestimated-effort-task-impact-handle/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":7},{"id":"Q2497","t":"Taking Ownership of Something Not Your Responsibility: why did you do it?","u":"/interview/behavioral-hr/general-star/time-took-ownership-something-responsibility-taking/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":3},{"id":"Q2499","t":"Saying NO to a Feature Request or Stakeholder: how did you communicate it?","u":"/interview/behavioral-hr/general-star/time-feature-request-stakeholder-communicate-decision-saying/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":9},{"id":"Q2500","t":"Making a Decision With Incomplete Information: how did you proceed?","u":"/interview/behavioral-hr/general-star/time-decision-incomplete-information-proceed-making/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":10},{"id":"Q2501","t":"Identifying a Problem Before Anyone Else Noticed: what did you do?","u":"/interview/behavioral-hr/general-star/time-identified-problem-anyone-noticed-identifying/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":2},{"id":"Q2502","t":"Balancing Quality With Speed: how did you decide what to prioritize?","u":"/interview/behavioral-hr/general-star/time-balance-quality-speed-decide-prioritize-balancing/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":6},{"id":"Q2504","t":"What Is the STAR Method?","u":"/interview/behavioral-hr/general-star/star-situation-scene-task-responsibility-action-team-result/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":8},{"id":"Q2505","t":"Preparing 5-7 Reusable Stories for Behavioral Interviews","u":"/interview/behavioral-hr/general-star/behavioral-prepare-5-7-strong-stories-reused-across/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":4},{"id":"Q2506","t":"What to Avoid in Behavioral Answers","u":"/interview/behavioral-hr/general-star/behavioral-avoid-answers-blame-others-everything-vague/","ch":"Behavioral / HR: STAR Method","tp":"General STAR Scenarios","qn":5}]