LIVE IN PRODUCTION
PinDey
Find your friends in a crowd, phone to phone.
“Where you dey? We go find you.”
~/donald $ cat intro.md
product engineer · mobile at heart · AI in the loop
Zoom out
For years my whole world was the thing in your hand.
Flutter, Swift, Kotlin, mostly fintech, where a rounding error ruins someone's day.
Then I kept following bugs past the screen, and the map got bigger.
How the job got bigger than the screen
// follow one bug far enough and you meet the whole system
started in the middle. still love the middle.
The thing I'm building
LIVE IN PRODUCTION
Find your friends in a crowd, phone to phone.
“Where you dey? We go find you.”
You're at an owambe. Your people are “by the bar”.
There are five bars.
Calls drop, and a pin on a map is tens of metres off and won't tell you which way to walk. So PinDey gives you an arrow.
Drag yourself around, or tap anywhere to step there.
Finding Tolu
32m
keep walking
When the phone can't tell which way to point, it doesn't guess. The arrow steps aside and it says “very close, look around”.
Always showing an arrow would look better in a demo. But a confident arrow pointing the wrong way is worse than no arrow, because people follow it.
Walk right up to Tolu in the demo and you'll see it.
One gathering, one Space. Join with a six-character code, or tap a WhatsApp invite that signs you in and drops you straight inside.
Smaller groups inside a Space. You choose who can find you, crew by crew.
Need a minute? Pause being findable.
Rings a friend's phone and turns your screen into a bright beacon.
Your crew around you, with rough distances.
No
location history.
~2 min
after your last update, your position is gone.
Nothing
sold. Ever.
Lagos first. Built for anywhere people gather.
Every ring from earlier, one person.
How I work
AI is part of how I work every day.
Not a party trick. More like a very fast pair who never gets tired of my questions.
It's why one engineer can carry what used to take a small team.
learn something
Right now
And right now, on any given day:
donald@earth:~$ whoami
product engineer · mobile at heart · AI in the loop
donald@earth:~$ ps
PROCESS STATUS
day-job running
pindey running # in prod. go look.
side-projects running # some may never see daylight
writing running # poetry, prose, long thoughts on software
Open source
A few things I’ve left lying around on pub.dev.
Writes SKILL.md files for AI assistants, because good tooling should teach the robots too.
Point it at a Flutter project and it reads the pubspec, the lib folder and the Dart sources, works out how the codebase is put together, and writes SKILL.md context files so an assistant shows up already knowing the architecture and conventions instead of guessing from whichever file it opened first. It writes for Claude Code, Cursor, Copilot, Windsurf and a few others, splits big projects into a core file plus smaller domain files, and can keep everything current through watch mode, git hooks or CI.
Lays out image grids so you never do that maths by hand again.
Give it one image or a dozen, network or local, and it picks a sensible layout for the count. Over the years it has grown video in the same grid, a fullscreen viewer you can swipe and zoom through, loading placeholders and optional captions. It's been on pub.dev since 2022 and is now on its second major version.
side projects, some shipped, some just for finding out
I built this one alone, start to finish. It lets people read and listen to Lagos State law in English or Yorùbá, and it keeps working without a connection. Every statute can be read aloud, any law or bookmark can be opened from a link, and it's live on both the App Store and Google Play.
A TypeScript service that scrapes job listings and serves them through a typed API to a separate frontend. Express and Prisma sit over PostgreSQL on Supabase, and Redis with BullMQ runs the scraping queue. It's mostly an excuse to spend time with the parts of a system that don't have a screen.
A small notes app with one shared Kotlin domain layer and two fully native interfaces, Jetpack Compose on Android and SwiftUI on iOS. I wrote it to find out where the Kotlin Multiplatform seam really falls once you build something, rather than where the docs say it does.
A device that measures the level and temperature of a fluid and streams both to a Flutter app in real time. Looking back, it was the first time I built a whole system rather than a screen: sensor, transport and interface, all mine. It took me a few more years to notice that was the part I liked.
Earlier work
Before PinDey, years inside other people's products, mostly where money moves.
Four I still think about, each told through the call I made and the one I turned down.
01 · ExtraCash · Zedcrest Group · Zedvance
02 · Encrypted networking · SnapPay
03 · POS · Platform Channels · Zedcrest Group
04 · MedPal Provider · MedPal
Writing
When I'm not building, I'm writing.
Poetry, prose, long thoughts on software.
Finding the right word and finding the right abstraction are pretty much the same muscle.
I have always lived with the misconception that a star shines. But I have come to learn that it burns, with every moment of burn bringing it closer to its end...
I stared into the Sea today and it stared back into me. It felt like a minute but was twenty...
Both of those took longer to get right than most functions I’ve written.
and on software, lately
Contact
Want the whole story first? Got five minutes? The long version.
Think about the problem, see the system, build the thing. Then make it quiet.