Who's playing
I go by Spimy online, a username I grew fond of, but my name is William. I build full stack with Svelte and TypeScript, I enjoy working with Django, and I have been coding since 2016.
The journey so far
How I actually got here, newest first.
Full stack, and open to what is next
These days I build full stack with Svelte on the front end. On the back end I have mostly used Node.js with Express, TypeScript and Drizzle for the past couple of years, and I have just gone back to Django. This portfolio is my latest rewrite, now in Astro. I am looking for a remote, hybrid or on-site role and I am happy to relocate.
Self-hosting behind Traefik
I now run a lot of self-hosted services, including on my home server, and many of them rely on Traefik to route traffic to the right container. I also set up WireGuard through my VPS, so I can reach private dashboards over a VPN and connect remotely to my home server.
Finished my degree, after an internship
I completed my degree with first class honours, with my convocation in early 2027. Along the way I did a three-month internship as a web developer on a PHP and Laravel application, adding features, improving the performance and readability of existing code, and fixing bugs reported by QA and by real customers. The AI tooling I had got comfortable with the year before helped me learn the codebase and ship changes faster, and my manager and colleagues were happy with the results. This is also the year I started developing inside dev containers.
Learned to work with AI assistants
I started to properly learn how to use tools like Copilot and other AI assistants in my coding. I had been using the Gemini API in my own projects since 2024, but this was the year AI became part of how I write code.
Two hackathons
At KitaHack 2024, a Google hackathon where the project had to use Google products, I learned Angular and used Firebase, and I have not touched Angular since. Later that year I joined ImagineHack 2024, a local hackathon, built with SvelteKit, and our team won Best Pitch and First Runner Up, the only team to take home two awards. I used the Gemini API in what I built during 2024, including at ImagineHack.
Show earlier years (12)Hide earlier years
Learned Docker
It started with a free, open-source, self-hosted service I wanted to run on my VPS. Setting everything up by hand was tedious, but the project shipped a Docker Compose file, so I tried Docker for the first time. It worked so well that I decided to learn it properly, containerisation and all, and I have deployed my own projects with it ever since.
First portfolio in Nuxt 3, rebuilt in Svelte
I learned Nuxt 3 for the server-side rendering and contact forms, and used it to build my first portfolio. I was not happy with how it turned out, so I learned Svelte and SvelteKit and rebuilt it from scratch. Svelte is now the framework I reach for first.
A Spigot plugin for my own server
I played Minecraft with friends on a server and wanted some quality-of-life features, so I made QoLTweaks, a Spigot plugin that adds things like ladder warping. I published it on SpigotMC in January 2023.
Moved from JavaScript to TypeScript
A lot of the people I knew were starting to move from JavaScript to TypeScript. I had been writing Discord bots in plain JavaScript since 2017, so it felt like about time.
Vue and Django REST framework, with Eray
I kept working on Subtitles with Eray, using Vue and Django REST framework, until it ended in early 2021. We planned other projects together that year too, but none of them got past the planning stage.
Picked up Vue
I did not want to build only static pages with nothing dynamic on them. I had already done AJAX requests in plain JavaScript with Django earlier in 2020, but anything bigger meant writing HTML inside JavaScript strings, which got messy fast. I chose Vue over the more popular React because I preferred Vue's template syntax.
Went full stack with Django
From April 2020, because of COVID, I spent my time learning to code and started learning full stack web development properly, beginning with Django. I made Spuiz that spring, tried another project called Manime that never got anywhere, and started Subtitles in September.
Head down, taking commissions
A quieter year, mostly spent on commission work.
First freelance work
I started making Discord bots for clients, sometimes with a web dashboard for configuring the bot. That work technically never stopped: I no longer look for clients, but I still take jobs from existing clients and from people they recommend me to.
Built Discord bots with discord.js
Now that I could code, I wanted to experiment. Discord was where I talked to my friends and we all used existing bots, so I wanted to see how they were made and learned discord.js to build my own.
Learned HTML, CSS and jQuery
A friend wanted to publish a Minecraft server, and it needed a public-facing website. I got into web pages through Bootstrap, using a visual tool called Bootstrap Studio, and then learned the HTML, CSS and jQuery underneath it.
Wrote the first line
I started coding by making a Spigot plugin for Minecraft, which made Java my first programming language.
Outside the editor
The stuff that ends up shaping how I build things, whether or not it's obviously related.