Blog
-
Building simple a memory allocator from scratch
How to implement simple versions of malloc and free2025-09-28
programmingc++ -
Concurrency bits: mutexes
A tour of concurrency primitives: mutexes2025-02-22
programmingc++ -
Concurrency bits: spin locks
A tour of concurrency primitives: spin locks2025-01-18
programmingc++ -
Topics in Distributed Systems: Making sense of the CAP theorem
The CAP theorem and its variations2024-12-15
distributed-systems -
Metastable failures in distributed systems
An overview of metastable failures and how to deal with them2024-10-01
programmingdistributed-systems -
Actual programming
Advice from real programmers on how to actually write code2024-09-05
programmingc++ -
Grokking generic algorithms in C++
A closer look at how generic algorithms are implemented in practice2023-12-20
tutorialgeneric-programmingc++stl -
Type traits from the bottom up
How type traits are implemented in the STL -
Notes on std::rotate
Analyzing different implementations of std::rotate in the STL2023-09-30
algorithmsprogrammingc++stl -
The road to std::lower_bound
How to derive a correct and efficient binary search2023-04-09
algorithmsc++stl -
Notes on std::unique
Implementing and using std::unique2023-02-27
algorithmsprogrammingc++stl -
The Stepanov Language Test
How to know if a language is suited to generic programming2023-01-05
generic-programmingc++ -
How to code it: algorithmic problem solving
Using Polya’s How To Solve It techniques in algorithmic problems2022-02-24
tutorialalgorithmsprogramming -
A sample of sampling algorithms
Algorithms for generating samples2021-05-02
algorithmspython -
Relation between std::is_sorted and find_adjacent_mismatch
How to implement std::is_sorted in terms of find_adjacent_mismatch2021-04-25
algorithmsc++stl -
Three categories of comments in source code
How to write good comments2021-02-05
programming -
A Philosophy of Software Design, by John Ousterhout
Notes about the book 'A Philosophy of Software Design, by John Ousterhout'2021-02-01
booksprogramming