For the books listed below that are not freely available, Materialize engineers are welcome to expense physical or electronic copies.
Employed engineers should read the following within their first few weeks at Materialize:
-
Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google [pdf]
An academic paper about Napa, an internal Google system that is quite similar to Materialize in both goals and architecture.
-
Shared Arrangements: practical inter-query sharing for streaming dataflows [pdf]
A paper by @frankmcsherry et al. about how arrangements improve performance in stream processors.
-
Scalability! But at what COST? [pdf]
A paper by @frankmcsherry et al. about how many scalable big data systems fail to outperform a single-node system.
-
How to do distributed locking [web]
A blog post that addresses a common misconception about how locks work in distributed systems. You can read Martin Kleppmann's book Designing Data-Intensive Applications, listed below, instead.
-
How NOT to Measure Latency [web]
A YouTube talk by Gil Tene about common pitfalls encountered in measuring latency and response time behavior.
-
Developer guide: submitting and reviewing changes
Our policies for submitting and reviewing PRs. It applies to our internal repositories too.
-
Designing Data-Intensive Applications [marketing website]
This book is a crash course in designing, implementing, and using databases. If you don't have a database background, you should strongly consider reading this book, though make your own assessment about which chapters are most relevant to you.
There is a copy of this book in the office that you can borrow.
-
Life in Differential Dataflow [web]
A blog post by Materialize engineer @ruchirK that introduces Differential Dataflow.
-
Programming Rust [marketing website]
Our recommended book for those new to Rust. You can also try the freely available book The Rust Programming Language, but most engineers have preferred Programming Rust.
-
Rust for Rustaceans [marketing website]
Our recommended book for learning more advanced Rust techniques once you've learned the basics. Some engineers have had success skipping Programming Rust and jumping right into this book instead.