Most software engineers use databases every day without understanding why those databases behave the way they do. They know that Postgres supports transactions and Redis is fast, but they cannot explain why Postgres uses B-trees, when an LSM-tree would be better, or what actually happens when two transactions conflict. This course closes that gap.
The course covers the full stack of data-intensive application design: storage engines, distributed data (replication, partitioning, transactions, consensus), encoding and evolution, batch and stream processing, data quality and governance, and the operational patterns that tie everything together.
By the end of this course, you will have the mental models to evaluate database choices, design data architectures, and debug distributed system failures — because you understand the underlying mechanics, not just the marketing materials.
Not what you were looking for? Have Basis Lab write you a course on it. It is a separate product from the same team, and the first course is free.

Get instant access to all current and upcoming courses by subscribing.