Skip to main content

Engineering notes

A CV with an unnecessarily explorable galaxy

This site has two jobs: make the experience behind my CV easy to evaluate, and show the kind of engineering I enjoy. The content is prerendered and usable without WebGL; the galaxy is a progressively loaded enhancement built with Threlte, Three.js and custom shaders.

How the galaxy works

Every marked star is a seed. It resolves to the same star class, planets, biomes and moons for everyone, and the hover label, the orbital view and the surface you land on all read that one generated result.

The part I like most is the least visible: terrain height and biome blending are implemented twice, once in GLSL for rendering and once in TypeScript for placing plants and keeping the camera above ground. They have to agree, or plants float and you fly through hills. Unit tests compare CPU samples against recorded values so the two cannot quietly drift apart.

Source and lineage

The source for this SvelteKit iteration is available on GitHub. Earlier versions were built with Next.js and Gatsby.

The original galaxy study was inspired by Bruno Simon's Three.js Journey lesson. The current scene extends that starting point with navigation, generated star systems, planet surfaces and a free-flight mode.

Measured first-load performance

The June 19, 2026 PageSpeed Insights report recorded 100 in all four categories on mobile, throttled to slow 4G on an emulated Moto G Power. This is a historical snapshot: scores change with deployments and test conditions. Initial-load audits complement runtime profiling and manual accessibility testing.

Open the recorded PageSpeed Insights report

The full Lighthouse report

Open the report in its own tab