Hi, I’m Neel

This is a log of my adventures in systems programming and other development stuff

RTOS Context Switching

This post is going to be a deep-dive into how context switching works in my RTOS learning project. 90% of the code is going to be in ARM Assembly, so before we touch on anything else, below is a link to a “cheat sheet” of the ARM Assembly operations used in the context switching logic. It is by no means a comprehensive list, but it will be sufficient for understanding the assembly that is used in this context. ...

March 18, 2026 · 9 min · Neel

My First Contribution to Zig: Implementing insque() and remque()

I recently made my first contribution to the Zig programming language by implementing insque() and remque(), two doubly-linked list functions from the C standard library. What are insque and remque? These functions are used to insert and remove from queues built from doubly-linked lists, with the function signatures below: void insque(void *element, void *pred); void remque(void *element); Their implementations were surprisingly simple, just involving casting pointers into node structs and hooking up the new node to its neighbors or the opposite if removing, which is why I chose this to be my first contribution. ...

February 12, 2026 · 6 min · Neel