1. System Design: Lesson 1 - Building Blocks

    System design problems usually have some similarities, though specific details are often unique. We have extracted these similarities across design problems as the basic building blocks we’ll be covering. One example of a building block is a load-balancing component, which we’ll probably use in every design problem in …

    read more
  2. Algorithm patterns: Fast and Slow Pointers

    The fast and slow pointers pattern is a versatile and efficient technique for traversing linear data structures, such as arrays, linked lists, or even graphs, using two pointers that move at different speeds. This approach is often used to identify cycles or find a specific target. The speeds of the …

    read more
  3. Algorithm Patterns: Sliding Window

    The sliding window pattern is a technique for efficiently processing sequential data, such as arrays and strings. It involves maintaining a dynamic window that slides across the data, allowing you to examine a fixed portion at a time. Instead of repeatedly scanning the entire dataset, this approach adjusts the window …

    read more
  4. Algorithm Patterns: Two Pointers

    The two pointers pattern is a versatile and efficient technique widely used in algorithmic problem-solving, especially when working with sequential data structures like arrays, strings, or linked lists. As the name suggests, this approach involves maintaining two pointers (or indices) that traverse the data structure in a coordinated manner—often …

    read more
  5. Hello world

    Hello world! My name is Dao Malick BENIN.

    The goal of this blog is to share what I learn and explore in the world of software engineering.

    read more

links

social