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
Live

2026

Canny Cart

A shopping list you talk to. It sorts what you said into aisles, reads your receipts, and works out where the money went.

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

Polish pass #3: store-release edges and platform traps

The third montage, from the weeks around launch: the Android alert that silently drops its fourth button, a keyboard trap hiding in one prop, an HTTP 431 caused by cookies, sessions that survived a failed refresh badly, and the day the app got a space in its name.

reactnative
mobile
debugging
buildinpublic

5 min read

MUI vs Tailwind: the cascade-layers war story

Two CSS systems, one cascade, and two one-line changes that each silently erased every input outline in the app. How CSS cascade layers make MUI and Tailwind coexist, why 'prepend: true' inverted the layer order, and why the bug only appeared behind the login.

css
react
nextjs
debugging

6 min read

The admin console: a web app on a mobile app's Cognito pool

The web console shares the phone app's identity pool — so a valid sign-in proves nothing about belonging there. Building the front door that sends non-admins straight back out, the deletion queue with its runbook inline, tables that share one set of defaults, and the dark-mode fix that lived in a colour-maths exception.

nextjs
aws
react
buildinpublic