Stuff I Made

You could call it a Portfolio

This Website

Repository for This Website Link to This Website

The page you're looking at is made with SvelteKit, TypeScript and TailwindCSS and deployed on Vercel. It's entirely static through the SvelteKit's SSG feature. Posts are written in Markdown and converted to nice-looking HTML at build-time. It was originally built with Gridsome, then moved to NextJS and now to SvelteKit. It's an all-in-one blog, portfolio and pet project to try out new shiny things.


Repository for timberSentry Link to timberSentry

During my time developing native Android apps I found myself building the same setup with Timber and Sentry to implement seamless error reporting with contextual logging every time so I built a library to do it. It's written in pure Kotlin and simply exposes a SentryTree that can be used with Timber and will automagically log everything to Sentry. It is distributed using JitPack.


Repository for StatikGMapsAPI Link to StatikGMapsAPI

The Metsään Tie app needed to display a lot of static maps in a list and simply using the lite mode of the native GMaps View didn't work. The solution was to use the Google Maps Static API, which simply returns picture of a map base on the URL parameters given. Writing these requests by hand is error-prone so I wrote a library that let's you build API requests in a type-safe manner and runs some validation before returning a URL so you can be (reasonably) sure to get a valid request. The URL can then simply be plugged into an image loading library like Glide or Coil. Every commit to master triggers a build & test pipeline on GitHub Actions.

Metsään Tie

Link to Metsään Tie

Metsään Tie is an app developed by RoadsML for the Finnish Forest Center to track road conditions using phone sensors and user feedback. It allows the user to record their driving through GPS for location and the accelerometer for road condition. It can then be uploaded to a backend and viewed on a openly accessible map by the Finnish Forest Center. Note: App is no longer published as the project has been discontinued.