Skip to main content
Loading interactive atlas…

Software engineering topics

Browse the interactive map above or jump directly into a written guide.

  • Software EngineeringThe root of the Engineering Atlas and the written-content entry point.
  • SystemsHow software systems are decomposed into scalable, reliable components.
  • StorageWays of persisting and retrieving application data.
  • DatabaseStructured persistent storage queried and updated by applications.
  • SQLA workload-driven comparison of relational and non-relational database models.
  • NoSQLA workload-driven comparison of relational and non-relational database models.
  • CacheTemporary fast storage used to avoid repeated expensive work.
  • RedisAn in-memory data structure server often used for caching and ephemeral state.
  • IVFAn approximate nearest-neighbor index that partitions vectors into clusters and searches only the most promising partitions.
  • Two PointersA traversal technique that uses two indices to efficiently process arrays, strings, or linked structures.
  • Prefix SumA preprocessing technique for answering range-sum and cumulative-frequency queries efficiently.
  • Binary Search on AnswerAn optimization technique that searches a range of possible answers using a monotonic feasibility test.
  • In-orderA depth-first tree traversal that visits the left subtree, the current node, and then the right subtree.
  • Pre-orderA depth-first tree traversal that visits the current node before its left and right subtrees.
  • Post-orderA depth-first tree traversal that visits both subtrees before the current node.
  • Level-orderA breadth-first tree traversal that visits nodes one level at a time from the root downward.
  • TrieA tree-shaped data structure for storing strings and answering prefix-based queries efficiently.
  • HeapifyThe process of restoring the heap property at a node or transforming a collection into a heap.
  • K-MeansAn unsupervised learning algorithm that partitions observations into groups represented by their centroids.
  • Cache Line BouncingHow competing CPU cores can repeatedly transfer ownership of a cache line, creating coherence traffic and reducing multithreaded performance.
  • False SharingHow independent variables sharing one cache line can create unnecessary coherence traffic between CPU cores.
  • Cache CoherencyHow multiple CPU caches maintain a consistent view of shared memory.