In early 2019, some months after completing a rehab program for drug addiction, I was in a very open-minded headspace where I wanted to challenge myself and find ways to improve as a person.
CARVIEW |

Andreas Kling
I like computers!
MutexProtected: A C++ Pattern for Easier Concurrency
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
Excellence is a habit, but so is failure
We often hear that making small incremental improvements every day can lead to great things. This popular piece of advice rings true, and it’s a powerful reminder to keep pushing ourselves forward.
How SerenityOS declares ssize_t
This post explores one of my favorite hacks in SerenityOS. I don’t recommend doing this in your codebase, but it has worked for us so far. :^)
15 Minutes Every Day
Someone once suggested that I set aside a small portion of my income every month. I’ve been doing this for years with an automatic bank transfer so I can’t mess it up.
How I make a living working on SerenityOS
This post describes in detail how I support myself while working on the SerenityOS project.
Ladybird: A new cross-platform browser project
This post describes the Ladybird browser, based on the LibWeb and LibJS engines from SerenityOS.
Memory safety for SerenityOS
This post describes how we’re going to achieve memory safety in SerenityOS.
I quit my job to focus on SerenityOS full time
Hello friends! :^) Let me tell you a story…
Smarter C/C++ inlining with __attribute__((flatten))
This post describes a compile-time technique for getting the benefits of aggressive inlining in hot code while protecting cool code from its downsides.
Introduction to SerenityOS GUI programming
This post will give you a quick intro to the basics of GUI programming for SerenityOS.
pledge() and unveil() in SerenityOS
This post describes the implementation and use of pledge()
and unveil()
in SerenityOS.
Serenity C++ patterns: References instead of Pointers
This post describes the use of C++ references to enhance autodocumentation in the Serenity Operating System.
Serenity C++ patterns: NonnullOwnPtr
This post describes the C++ NonnullOwnPtr
template used to enforce non-nullity of single-owner object pointers in the Serenity Operating System.
Catching use-after-move bugs with Clang's consumed annotations
This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System.
Serenity C++ patterns: NetworkOrdered
This post describes the C++ NetworkOrdered<T>
template used to simplify working with network packet structures in the Serenity Operating System.
Serenity C++ patterns: IterationDecision
This post describes the C++ IterationDecision
pattern used to implement flow control during callback-based iteration in the Serenity Operating System.
Serenity C++ patterns: The Badge
This post describes the C++ Badge
template used to enhance member function access control in Serenity Operating System.
How Serenity system calls work
This post describes how system calls are implemented in the Serenity Operating System.