CMP

•

Three bugs I found in my own BaseViewModel

A small UDF base class for Compose Multiplatform: one state, one-time events and central error handling

CMP

•

Three bugs I found in my own BaseViewModel

A small UDF base class for Compose Multiplatform: one state, one-time events and central error handling

CMP

•

How to build a solid dark theme switch on Compose Multiplatform

Persisting a light, dark or system theme in Compose Multiplatform with multiplatform-settings, Koin and StateFlow

CMP

•

How to build a solid dark theme switch on Compose Multiplatform

Persisting a light, dark or system theme in Compose Multiplatform with multiplatform-settings, Koin and StateFlow

About Me

Hi, I'm Ben. I build mobile software forged for the real world—where hardware disconnects, edge cases happen, and apps actually have to work.

I started on Android, and it's still home. These days I work across Android and iOS with Kotlin and Compose Multiplatform, and I care about the parts of mobile development that tutorials skip: apps that stay connected to hardware through a full shift, recover when the network or Bluetooth drops, sync in the background, and survive whatever the operating system throws at them.

What I do

  • Architecture and development of production Android and cross-platform apps

  • Bluetooth Low Energy: reliable connections, reconnection, command queues, background sync

  • Offline-first apps that behave well on bad networks

  • Turning messy, real-world requirements into maintainable code

What I'm building here
This site is my workshop. I'm building EdgeKit, an open Compose Multiplatform app with production-minded architecture, and writing about the decisions along the way: what worked, what broke, and why.

How I work
I prefer small, testable pieces over clever ones, and I write down why I chose something, not only what. I'd rather ship a plain solution that holds up than an impressive one that doesn't.

Get in touch
I'm open to conversations about mobile roles / consulting / collaboration.

About Me

Hi, I'm Ben. I build mobile software forged for the real world—where hardware disconnects, edge cases happen, and apps actually have to work.

I started on Android, and it's still home. These days I work across Android and iOS with Kotlin and Compose Multiplatform, and I care about the parts of mobile development that tutorials skip: apps that stay connected to hardware through a full shift, recover when the network or Bluetooth drops, sync in the background, and survive whatever the operating system throws at them.

What I do

  • Architecture and development of production Android and cross-platform apps

  • Bluetooth Low Energy: reliable connections, reconnection, command queues, background sync

  • Offline-first apps that behave well on bad networks

  • Turning messy, real-world requirements into maintainable code

What I'm building here
This site is my workshop. I'm building EdgeKit, an open Compose Multiplatform app with production-minded architecture, and writing about the decisions along the way: what worked, what broke, and why.

How I work
I prefer small, testable pieces over clever ones, and I write down why I chose something, not only what. I'd rather ship a plain solution that holds up than an impressive one that doesn't.

Get in touch
I'm open to conversations about mobile roles / consulting / collaboration.

Create a free website with Framer, the website builder loved by startups, designers and agencies.