Skip to content

Projects

A selection of projects from different stages of my development as a programmer — from mobile applications and backend systems to automation, game development and embedded software.

Featured case study

Glennergy

Glennergy is a connected energy platform combining a deployed Linux server system with an ESP32-S3 embedded client. The server processes electricity-price and weather data and produces recommendation data, while the embedded client adds local environmental sensing, connectivity, diagnostics and a touchscreen UI.

View full case study
Glennergy touchscreen Home view displaying local BME280 temperature, humidity and pressure measurements.
Home view on the physical device — local BME280 temperature, humidity and pressure measurements.
Earlier internship project · 2020

Båtramper

A 3–4 month internship project where I built a React Native Android client from scratch and expanded an existing minimal API into the application API used by a map-based boat-ramp platform.

The project connected the mobile client, backend/database and administration workflows. I implemented map-based browsing with marker clustering, ramp details, authentication, image and comment flows, user submissions, and adapted an existing admin UI template to the project's data and moderation workflows.

The functionality was completed and working, but the new app and web solution were not publicly launched.

Solo implementation with guidance from colleagues

Historical project screenshots — some were captured during development, and I no longer have screenshots from the final version.

React NativeAndroidPHPMariaDBNginxREST APIGoogle Maps

What I worked on

  • Built the React Native Android client from scratch, including Google Maps and marker clustering.
  • Expanded the existing minimal API to support ramp data, authentication, images, comments and user submissions.
  • Adapted and connected an existing admin UI template for data and moderation workflows.
  • Tested the system primarily through manual end-to-end integration checks across database, API, client and admin.
Båtramper Android app showing boat-ramp locations clustered on a Google Map.
Map view with clustered boat-ramp locations in the React Native Android client.
Båtramper Android app showing a detailed boat-ramp view with information fields and controls for user content.
Development-stage ramp detail view showing the richer data exposed through the application API. Some values are still shown in their raw/internal form before final UI formatting.
Båtramper administration interface listing submitted boat ramps with moderation actions.
Administration and moderation workflow for submitted boat ramps.
Solo project · 2022 · Raspberry Pi

Mercury_bot

A long-running personal automation service that fetches cryptocurrency data, stores user-defined alerts and sends Discord DMs when price or percentage-change conditions are met.

I built Mercury_bot in 2022 using Python, the CoinMarketCap API, SQLite and discord.py. Market data and alert rules are persisted outside the Discord process, then evaluated periodically so matching conditions can trigger direct-message notifications.

I deployed the service to my Raspberry Pi, where it has remained in use since 2022, with occasional interruptions and remote maintenance over SSH when needed.

Self-hosted on Raspberry Pi since 2022

PythonREST APISQLitediscord.pyRaspberry PiSSH

What it demonstrates

  • Integrated CoinMarketCap data with a Python service and persistent SQLite storage.
  • Stored user-defined alert rules and evaluated price and percentage-change conditions periodically.
  • Sent triggered notifications as Discord DMs through discord.py.
  • Deployed and maintained the service on my own Raspberry Pi, using SSH for remote administration when needed.
Mercury_bot architecture overview showing CoinMarketCap data acquisition, SQLite persistence, alert evaluation, Discord notifications, example interactions and Raspberry Pi deployment.
Architecture and real bot interactions from Mercury_bot, a Python service self-hosted on Raspberry Pi since 2022.
View full-size architecture overview
Solo C# game · 2024 · Published on itch.io

BattleBarbarians

My first game project began as a small OOP school assignment and grew into a complete turn-based RPG that I developed solo, with three playable classes, class-specific mechanics, progression and a final boss.

The original assignment only required a small demonstration of object-oriented programming. I expanded it over roughly four weeks with polymorphic character behavior, turn-based combat, inventory and rewards, a discoverable Bestiary and a local Hall of Fame stored in JSON.

I packaged the finished game and released it on itch.io.

Expanded far beyond the original assignment requirements

C#.NET 8OOPSpectre.ConsoleFiggleJSON

Technical focus

  • Used abstraction, inheritance, virtual behavior and polymorphism to give the playable classes distinct combat mechanics.
  • Built the turn-based game loop, random enemies, inventory, rewards and progression through a level-20 final boss.
  • Implemented a discoverable Bestiary and a local JSON-backed Hall of Fame for completed runs.
  • Used Spectre.Console, Figgle and adapted ASCII art to give the terminal game a stronger visual identity.
Play on itch.io
BattleBarbarians terminal combat showing the Berserker class during battle with its class bonus active.
Turn-based combat with the Berserker's class-specific mechanic active.
BattleBarbarians Bestiary showing discovered enemy information and ASCII presentation.
The Bestiary reveals enemy information after enemies are encountered during a run.
BattleBarbarians victory screen after completing the final boss and registering the run in the local Hall of Fame.
Completing the run registers the result in the locally persisted Hall of Fame.
My first published project

Pannkakskocken

The first software project I took all the way to a public release — a solo React Native Android app that scales a pancake recipe from the number of available eggs.

Alongside the calculator, the app includes views for the recipe, a gluten-free option and cooking tips.

I completed the app and published it on Google Play, making it an important early milestone in learning how to take an idea through implementation, completion and distribution.

React NativeAndroidGoogle Play
Pannkakskocken Android app showing the pancake calculator based on the number of available eggs.
The main calculator scales the recipe from the number of eggs available.
Pannkakskocken Android app showing its recipe instructions.
Recipe instructions included alongside the calculator.
Pannkakskocken Android app showing its gluten-free recipe guidance.
A separate view provides guidance for a gluten-free version.
Development journey

Different projects, a clearer direction

Together, these projects show different aspects of how I learned to build software: end-to-end systems, shipping an application, object-oriented program design, and automation running on real hardware.

Today, those experiences feed into the area I want to keep developing in: C, C++, embedded systems and Linux, represented most clearly by Glennergy.