Things I build to understand certain topics and have fun with.
raytracer-c
ongoing
C · raylib
A CPU-only software ray tracer in C, built with Peter Shirley's Ray Tracing in One Weekend as reference. No GPU, no external math library. Vector math runs on my own (really rudimentary) Vector3 implementation. Raylib is only used to open the window and handle input; every pixel is computed on the CPU. I'm also planning to use this project to explore multithreading, something I'm currently reading about in OSTEP.
graphicsraytracingC
languageC
libraryraylib
referenceRay Tracing in One Weekend
snake-to-wasm
finished
C · raylib
Started as a first raylib project, then rewritten from scratch. My first approach kept the snake as a heap-allocated linked list I had to walk on nearly every state update: eating, collisions, basically everything. I replaced it with a fixed-size ring buffer, moved positions from pixels to integer grid cells, and the game now runs without a single allocation. Still not a 'perfect' solution, but I'm happy with it as a first raylib project. :)
what it taught me
Keep it simple.
gamedevraylibwasm
languageC
libraryraylib
platformnative + web (wasm)
emscripten build↑ ↓ ← → moveP pause
snake-to-wasm.wasm
ostep-homework
ongoing
C · OSTEP homework
Solutions to OSTEP's programming and measurement homework written chapter by chapter alongside the book. The solutions are written only with the informations the book gives me and the linux man pages.
what it taught me
The homework is great for understanding the topics and internalizing the principles like e.g. translating a VA to an PA. The C coding tasks especially teach fundamentals like just reading the man pages of specific functions.
osC
languageC
sourceOSTEP
statusin progress
stm32-peripheral-demo
finished
C · STM32F429 Discovery · embedded
A timer triggers periodic ADC sampling of the onboard temperature sensor, an interrupt-driven callback processes the reading, shows it live on an LCD, and trips an LED past a threshold. An independent watchdog (IWDG) resets the board and reports the issue if the ADC loop ever stalls.
what it taught me
I learned a lot of embedded basics in this project, especially how important timers and interrupts are for not blocking the cpu with busy-wait delays.
embeddedCarm
boardSTM32F429 Discovery
coreARM Cortex-M4
peripheralsADC · TIM · GPIO · LCD · IWDG
sound-of-the-seasons-dw
active
Python · SQL · GitHub Actions · 2026
An end-to-end pipeline: pulls weather and Spotify chart data, runs the analysis in SQL, and regenerates a static dashboard on a weekly GitHub Actions schedule, no server involved. Live at vgll49.github.io/sound-of-the-seasons-dw.
what it taught me
I learned how to handle rate limiting inside an ETL process, and how to design a data model that works for different kinds of data.