Jesse Adeyemi
Backend and data engineer in Lagos. I build the layer underneath — Postgres schemas, batch pipelines, and the matching logic that turns a pile of user activity into something worth showing back to people.
Most of what I ship starts as a data model. I like the part of the problem where you decide what a row means.
Currently building
Fumetica — a fragrance discovery app built around taste, not tags.
Users build a shelf; a nightly job reads it and computes a note-and-family taste vector per person, then matches "scent twins" — people whose vectors line up with yours. Catalogue seeded at 200 fragrances and grows through moderated user submissions. Postgres on Supabase with row-level security on every table, a follow graph, and service-role-only runtime flags. Currently in closed launch behind one-shot invite codes.
The interesting problem: cold start. A shelf of four bottles has to produce a useful match, so the vector is built from note and accord overlap rather than co-occurrence — it works from the catalogue's structure before it works from anyone's behavior.
Also in the workshop
Project What it does crawler Data ingestion — describe the source and what you do with it. lmu-navigator Campus navigation. One line on the routing or data side. shortlet-template Short-let rental listings. What problem it solves for hosts. heirloom One line. microblog One line. Tools
Python · TypeScript · PostgreSQL · Supabase · React Native / Expo · pandas · numpy
Postgres is where I do most of my thinking. Row-level security, computed tables written by scheduled jobs, and constraints that make bad states unrepresentable — I'd rather the database enforce a rule than trust five callers to remember it.
Reach me Email: adeyemijesse711@gmail.com