vgll@dev:~ls projects/

projects/

Things I build to understand something. Most are small, finished-enough, and documented in the blog.

snake-rl

playable
C · raylib 5.0 · wasm · 2026

A complete little game rather than a snippet: fixed-timestep game loop, ring-buffer body, grid collision, score and pause states. Built with raylib and shipped through Emscripten so the whole thing runs in the browser at 60fps without a server.

what it taught me

That a game loop is the smallest honest systems project there is — timing, input, and state all have to be right at once. Also how much of a wasm build is just deciding what the shell page owns.

gamedevraylibwasm
snake.wasm — 640×640
languageC
libraryraylib 5.0
buildemscripten
binary184 KB
demo — build/snake.wasm · raylib 5.0 · 60fpswasd / arrows · space to pause · r to restart
canvas 640×640 — emscripten module mounts here
Loaded on click so the page stays light. Bigger builds get this frame too — it is the same slot at any size.

ostep-homework

ongoing
C · OSTEP homework · ongoing

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, the C coding tasks especially teach fundamentals.

osC
ostep-homework — terminal output
languageC
sourceOSTEP
statusin progress

stm32-peripheral-demo

working
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
STM32F429 Discovery — LCD temperature readout
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.

pythonetldata
sound-of-the-seasons-dw — dashboard
languagePython
updatesweekly · GitHub Actions
dataSpotify + weather, DE 2020–2026
livevgll49.github.io/sound-of-the-seasons-dw