Throughout my life, I lost track of things I wanted to learn. I have a forever-growing list of books I want to read on Good reads, many of them related […]
Chapter 11: Stream Processing
This chapter discusses the purpose of event streams, how to process them, and some key differences between them and batch processing. Message brokers process event streams, and there are two […]
Chapter 10: Batch processing
This chapter starts by discussing Unix tools and pipes and how they are composed to solve larger problems. Later, the same principles are derived to explain how MapReduce and other […]
Chapter 9: Consistency and Consensus
This chapter, as the title says, touches on both consistency and consensus from different angles. The first concept it dishes out is about linearizability, a consistency model that tries to […]
Compilers – Java: my study notes
These notes are from the Week 10 of the Compilers course by Stanford. Arrays One problem that Java arrays resolve lies in inheritance. If we have classes A and B which B […]
Compilers – Register Allocation and Garbage Collection: my study notes
These notes are from the Week 9 of the Compilers course by Stanford. Register Allocation When we generate intermediate code, we are not concerned about how many registers the target machine has. […]
Chapter 8: The Trouble with Distributed Systems
In distributed systems, things will be wrong and the systems engineers should be creating mechanisms to avoid that a failure in components affects the whole availability of the system. We […]
Compilers – Local Optimization & Global Optimization: my study notes
These notes are from the Week 8 of the Compilers course by Stanford. An intermediate language provides an intermediate level of abstraction while compiling languages, helping optimizations by including more details than […]
Compilers – Code Generation & Operational Semantics: my study notes
These notes are from the Week 7 of the Compilers course by Stanford. This focuses on the discussion about code generation. The architecture chosen for this class is a Stack Machine architecture on […]
Chapter 7: Transactions
Many things can go wrong with systems, such as: The software or hardware might fail at the middle of an operation Network failures can cause unexpected cut offs in the […]
Compilers – Cool Type Checking & Runtime Organization: my study notes
These notes are from the Week 6 of the Compilers course by Stanford. This week is going over how the Cool type checking and runtime organization are going to be organized. Static […]