Work

Event Loop Programming: A Different Way of Thinking

The concept of event loops is not new in programming, but I think it is still a really important technique…

5 years ago

Socket SO_REUSEPORT and Kernel Implementations

Way back when I was at NGINX I worked with several people on integrating a kernel patch for SO_REUSEPORT in…

5 years ago

Sanitizers, The Alternative To Valgrind

Valgrind is an incredibly powerful tool which helps find leaks, buffer overflows and many other things. Whilst being extremely powerful…

5 years ago

My Journey Learning The Go Programming Language

The key to learning anything new is finding a way to engage with the material. Some people learn by reading…

5 years ago

POSIX File Handling and Undefined Behaviour

Whilst porting code between Linux and macOS I have come across two issues which make assumptions about how something works…

5 years ago

Nested Variadic Functions in C

You may be familiar with variadic functions in C, these are basically functions that allow a variable number of parameters,…

5 years ago

Rendering Emoji in Linux Terminals

Following on from my post about getting TUIs in CentOS 7 to use Unicode I thought I should write a…

5 years ago

Unicode 7 in CentOS 7 TUI Code

I'm in the middle of developing a project in C which uses NCurses and Unicode 7+ characters. This has been…

5 years ago

Fixing an OpenSSL issue with Curl and Autotools

One project I created at MariaDB is libMariaS3 [source, documentation]. It is a lightweight simple LGPL licensed API to access…

5 years ago

My Open Source projects that still live on

I have recently created a new library called libMariaS3 for a couple of teams at MariaDB which provides a simple…

6 years ago