Skip to content

Software engineer

Ibukun Demehin

Most of my work lives in the seam between a serverless backend and the app sitting on top of it. I build both sides — and write down the part the docs leave out.

Selected work

All projects
In progress

2026

CannyCart

A shared shopping-list app for web and mobile, built on one Amplify Gen 2 backend.

Next.js
Expo
TypeScript
AWS Amplify Gen 2
+5
Open source

2026

claude-skills

An open-source library of distilled, reusable engineering practice for AWS Amplify, Next.js and Expo.

AWS Amplify Gen 2
Next.js
Expo
TypeScript
+1
Live

2025

Form Builder

A from-scratch drag-and-drop form engine — authoring, schema storage and a runtime renderer.

Next.js
TypeScript
dnd-kit
zod
+2

Latest writing

All posts

6 min read

The purchase ledger: when did you actually buy that?

Clearing the Done section felt like losing your history — but the record already existed as soft-deleted rows nothing read. One timestamp, three time semantics, and a documented exception to a house convention turned clearing into archiving.

aws
dynamodb
reactnative
buildinpublic

6 min read

Your app hardcodes GBP: currency as a first-class preference

A currency symbol is a user property masquerading as a constant. Unwinding one hardcoded £ touched state architecture (two kinds of readers, two stores, one setter), onboarding (guess, then confirm), and product honesty (relabel is never convert).

reactnative
i18n
mobile
buildinpublic

7 min read

What your receipts know: price history, "last paid", trends, savings

No price API exists, but after weeks of receipt scanning the user owns a dataset nobody sells. Three screens built on it — and the honesty gates, living in selectors not UI, that stop derived numbers from lying.

reactnative
datavis
mobile
buildinpublic