Projects

Apps and tools I've made.

Handover

2026 Under development

An Android app and Linux service for sharing files, links, and clipboard text across devices. It brings phone notifications, media controls, calls, and contacts to the desktop. I built the Linux daemon and CLI in Rust, a native Android app in Kotlin, and a Quickshell desktop client. The native connection works without KDE Connect; releases are available for Linux and Android.

  • Rust
  • Kotlin
  • Android
  • Quickshell
  • QML

Handover Google Messages

2026 Under development

A Go adapter that connects Handover to Google Messages for Web. It relays conversations and messages to the Linux desktop, with support for sending text and supported media. Account sessions stay in the adapter process. It runs alongside Handover and requires a phone with Google Messages.

  • Go
  • Google Messages
  • Protocol Buffers

Fremd Maps

2026 Shipped

A web app I built to navigate Fremd High School across both floors. It supports fuzzy room search, cross-floor routing, nearby restroom lookup, and turn-by-turn directions. I built A* routing over a wall-aware visibility graph with configurable edge penalties. Graph construction runs in a Web Worker; route searches run on the main thread.

  • TypeScript
  • Astro
  • Leaflet
  • Fuse.js
  • Web Workers
  • Workbox
  • Vitest
  • Playwright

SketchFlow

2026 Shipped

A collaborative whiteboard I built for drawing and note-taking across devices. It supports real-time drawing and cursors, offline changes that replay after reconnecting, and automatic shape detection. The app uses a Node/Express backend, Socket.IO for synchronization, and PostgreSQL for persistence.

  • React
  • TypeScript
  • Socket.IO
  • Node.js
  • Express
  • PostgreSQL
  • Prisma
  • Redis
  • Docker

School Navigation App v1

2025 Shipped

A native Android app that helps students find classrooms at Fremd High School, with floor-aware routes and search-first navigation. Built in Kotlin with Jetpack Compose.

  • Kotlin
  • Android
  • Jetpack Compose

Tabroom Follow Blocker

2024 Archived

A small userscript that removes Tabroom follow buttons to reduce accidental follows. Distributed as a single JavaScript userscript.

  • JavaScript
  • UserScript