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

7 min read

A template is just a list with a flag: reusable shopping lists

Reusable 'Weekly essentials' lists shipped with one new schema field and zero new tables. The design fork (new model vs status vs flag), the copy-both-ways helper, and the three ripple effects one boolean forced.

reactnative
aws
architecture
buildinpublic

6 min read

You can't GROUP BY in DynamoDB — so the client does the counting

The feature was one line of SQL: my most-added grocery items, ranked. DynamoDB doesn't have the clause. Here's the client-side aggregation that shipped instead — with explicit scan budgets, honest counts, and a documented exit ramp.

aws
dynamodb
reactnative
buildinpublic

Occasional notes, no noise

New posts and the odd build log, sent when there's something worth saying. Unsubscribe any time.