Hi, I'm Tim.

I am a software developer based in Famagusta, Cyprus. At the moment, I am building Peaklingo, a language app for advanced learners. My main languages are Rust, TypeScript and Python.

Latest articles all

Using actors for more robust Stripe integrations

Applying the actor model to billing for a scalable and fault-tolerant Stripe integration

Configuring HDMI output on a Raspberry Pi 4

How to configure Raspberry Pi 4 servers such that an HDMI monitor can be hot-plugged

Forays into using Raspberry Pi 4 as a home server

Discusses disk issues encountered while upgrading a Pi 3 to a Pi 4

Latest updates all

Built a lightweight blog server in Rust over the past few weekends. The page templates are specified in a custom DSL inspired by styled-components which is parsed with nom:

component Favicon {
  style {
    all: unset;
  }

  {if page == "main"}
    <FaviconImage />
  {else}
    <a style="cursor: pointer" href="/">
      <FaviconImage />
    </a>
  {end}
}

All code changes are published with Woodpecker CI to a local Docker Registry instance. The templates, articles and posts are stored on Hetzner S3 as tar.gz archives, and loaded into memory on startup. Internal endpoints reload the archives and make new content or style changes available without downtime.