Latest

  • Community vs Ecosystem

    Community vs Ecosystem

    One of the most powerful and important things about Open Source software is that it brings people together to work on a common goal. This is especially true if the project is setup as a Bazaar instead of a Cathedral. Usually the groups of people need a framework to communicate to work together in. Initially… Read more

  • Fun With Apple Multi-Arch Binaries

    Fun With Apple Multi-Arch Binaries

    Apple macOS has for many years supported the ability to have binaries for multiple platforms in one executable. Upon execution the correct binary data is loaded into RAM. This has multiple names such as “Universal”, “fat binary” or “Multi-Architecture Binaries”. These were really useful when Apple was transition from PowerPC to Intel CPUs, a single… Read more

  • How I Interview Remote Engineering Candidates

    How I Interview Remote Engineering Candidates

    Several of my friends in tech are having a hard time in their career due to everything going on in the world right now. They are being interviewed for new roles and I still see reports of bad tech interviews happening. I thought I would write up how I do interviews for the remote teams… Read more

  • Event Loops and NCurses

    Event Loops and NCurses

    Yesterday I wrote a blog post talking about Event Loops, this was a pre-cursor to discussing where I am using them in an application I’m currently developing which uses NCurses at its core. Unfortunately the application is an R&D project and is not public yet (still very early in development), but it is written in… Read more

  • Event Loop Programming: A Different Way of Thinking

    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 to learn. They allow a program to send a request for something and carry on doing things rather than waiting on things to happen. It is a great way of multi-tasking in a single thread… Read more

  • Socket SO_REUSEPORT and Kernel Implementations

    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 Linux to work with NGINX for something I termed “socket sharding“. In hindsight I should have maybe called it “socket load balancing” but the term “sharding” has stuck with that option across the industry now.… Read more