Low-Level
Systems Programming in C
A collection of low-level projects exploring memory, networking, concurrency
and hardware concepts โ written in C with no frameworks, just the standard library
and POSIX APIs.
Virtual Machine
๐ฅ๏ธ LC-3 Virtual Machine
A virtual machine that emulates the LC-3 architecture โ 65,536 memory
locations, a full register set, condition flags and an instruction decode
loop, with terminal I/O handled through raw POSIX termios. Runs real LC-3
programs.
Networking ยท Concurrency
๐ก Circular Telemetry Logger
A UDP telemetry pipeline that streams flight-style packets โ altitude, GPS
coordinates, pitch/roll/yaw and system status โ from a sender to a receiver,
buffering them in a circular ring buffer. Modular design with separate
telemetry, sender and receiver components.
Concurrency
๐ Atomic Ring Buffer
Two ring buffer implementations: a standard pointer-based buffer with
automatic wrap-around, and a lock-free, thread-safe variant built on
<stdatomic.h> that prevents race conditions during
concurrent reads and writes.
Embedded Concepts
๐ฉ Bitwise Flag System
A bitwise flag system modelling the status registers found in embedded and
defence software. READY, ARMED and FAULT flags each occupy a unique bit in a
uint8_t register, manipulated with set, clear, toggle and check
operations.
Networking
๐จ UDP Packet Sender & Receiver
A connectionless UDP sender and receiver pair built directly on the sockets
API. The receiver listens on a chosen port while the sender fires messages at
any IP and port โ exploring how datagrams move without a pre-existing
connection.
Graphics
๐ Analog Clock
A real-time analog clock rendered with raylib. Hour, minute and second hands
and all sixty minute markers are positioned with trigonometry from the system
clock, drawn each frame in a 600ร600 window.