A selection of projects I have worked on.

Cove — 16-bit Fantasy Console

A complete 16-bit computer system built from scratch. CPU, assembler, graphics, audio, debugger — all in Rust. Problem I wanted to build something that touches every layer of a real system: CPU architecture, assembly language design, graphics, audio, memory mapping, interrupts, debugging tools. Constraints are what breed creativity. When modern games ship at 80+ GiB, there’s something refreshing about stepping back and working with only 64 KiB. Approach I designed a custom instruction set architecture (ISA) with mixed 16/32-bit encoding, 8 general-purpose registers, deterministic cycle timing, memory-mapped I/O, and interrupt handling. The system is split into three independent crates: core (CPU, memory, 21 syscalls), assembler (multi-pass with labels, forward references, and automatic short-to-long expansion), and emulator (SDL2 with REPL debugger, breakpoints, disassembly, and basic backtrace). ...

28 June 2026 · 2 min · Jimmy Berlund

Energiöversikt — Swedish Energy Dashboard

An interactive energy dashboard for Sweden that aggregates electricity prices, weather data, solar production estimates, and EV charging optimisation in a single interface. Problem Swedish electricity prices differ across four bidding zones and update every 15 minutes. For EV owners, this means manually tracking prices, weather forecasts, and grid tariffs to know when charging is cheapest — a tedious process that few have time for daily. Approach I built a full-stack application with Python FastAPI on the backend and Vue 3 + TypeScript on the frontend. The backend aggregates data from multiple sources: Nord Pool day-ahead prices via ENTSO-E, weather and solar irradiance from Open-Meteo, and historical prices for statistical calibration. An EV charger optimizer scores each time slot based on spot price, solar generation, grid tariff, and tax to find the cheapest charging window. The frontend presents everything on an interactive MapLibre map with colour-coded bidding zones and Chart.js graphs. ...

01 June 2026 · 2 min · Jimmy Berlund

Honest Slot Machine

A miss is as good as a mile, as the saying goes, and nowhere is that saying more tangible than in a casino. This project examines the effect of deceptive design, making people believe they were so close, when in fact they were nowhere near. ...

25 May 2026 · 3 min · Jimmy Berlund

ParkInspect

A safety inspection management system for amusement parks, built with Flask that helps organisations digitise and streamline their daily equipment inspection workflows. Problem Many organisations still rely on paper checklists or scattered spreadsheets for equipment inspections. This leads to lost records, missed inspections, and difficulty demonstrating compliance during audits. There was a clear need for a centralized system that could track inspections with proper audit trails while being accessible to frontline workers. ...

01 April 2026 · 2 min · Jimmy Berlund

URL Shortener

A lightweight URL shortener service built with Go and Gin, featuring click analytics and flexible database support for self-hosted deployments. Problem Public URL shorteners like bit.ly come with privacy concerns, usage limits, and reliance on third-party services. For those wanting to self-host their own short links, whether for privacy, branding, or control, there was a need for a simple, configurable solution that could run on modest hardware while providing useful analytics. ...

16 March 2026 · 2 min · Jimmy Berlund

Booking and Calendar System

A centralized booking and calendar system built for a small organization to eliminate double bookings and reduce administrative costs. Problem A small organization lacked structured planning for their pickups/deliveries, relying on manual scheduling that led to double bookings and high administrative costs. Staff had to manually coordinate bookings across multiple channels, resulting in conflicts and wasted time. There was a clear need for a centralized system that could manage all bookings automatically. ...

01 January 2026 · 2 min · Jimmy Berlund

Job Search Companion

A Firefox browser extension for job seekers in Sweden that integrates with Arbetsförmedlingen.se to track applications and enhance the job search experience. Problem Sweden’s primary job platform Arbetsförmedlingen.se provides job listings but lacks personal tracking tools for job seekers. Applicants often resort to external spreadsheets or scattered notes to track where they have applied. This fragmentation makes it difficult to maintain an organized job search campaign. Approach I built this as a Firefox extension using modern JavaScript (ES6+) and the Browser Extension API. The key design decision was to use content scripts that inject directly into Arbetsförmedlingen.se pages, allowing users to save job applications without leaving the site. Data is stored locally in the browser using the extension’s storage API, keeping it private and under the user’s control. The modular structure separates background scripts for data management, content scripts for page enhancement, and UI components for the popup and settings pages. ...

01 October 2025 · 2 min · Jimmy Berlund