Freelancers using Next.js in OttawaFreelancers using Next.js in Ottawa
Full Stack Mobile & Web | UI/UX Product Engineer | Devops
$25k+
Earned
7x
Hired
5.0
Rating
141
Followers
Full Stack Mobile & Web | UI/UX Product Engineer | Devops
Product Designer for AI & Digital Products
18
Followers
Product Designer for AI & Digital Products
Cover image for Contra Community Post
Day 17/30: COMMON
Contra Community Post Day 17/30: COMMON ROOM What if a library card could reveal belonging instead of simply proving access? I built COMMON ROOM, a speculative membership system for the fictional North Quarter Public Library. Instead of asking members to choose an identity or complete a personality quiz, the system lets their actual behavior inside the library leave the evidence. Read in the Stacks → leave a margin. Make in the Workshop → leave a registration mark. Follow a question through the Index → leave a reference path. Explore the Quarter → leave a civic trace. Those traces gradually build a unique Member Record. The card remembers in layers. Its physical Accession Aperture later becomes a lens into hidden library memory, and completed cards can optionally become part of a Living Collection that begins to reveal the shape of the neighborhood itself. The project eventually became a system about: BEHAVIOR → EVIDENCE → OBJECT → MEMORY → COMMUNITY And the line that defined the whole thing: You don’t receive a card. You accumulate one. I also built the launch film around the same visual logic instead of doing a traditional product walkthrough using the card’s traces, layers and aperture as the motion language. Would love feedback on one thing in particular: Does the relationship between behavior, the physical card, and belonging read clearly without needing the concept explained first? Day 17 of my 30 Days of Real Business Problems challenge. #ProductDesign #InteractionDesign #CreativeDevelopment #DesignEngineering #MotionDesign #CreativeCoding #ThreeJS #Remotion
3
2
52
Cover image for DAY 16: CONDITION TRACE
30 Days
DAY 16: CONDITION TRACE 30 Days of Real Business Problems Phase II I stopped at Day 15. Not because I ran out of problems. The format was becoming predictable. So I changed the rules. Phase II starts with a problem from museum conservation. Condition reports can document what was visible at different moments — but they cannot always prove when a physical change actually occurred. So instead of asking: “Where did the damage happen?” I reframed the problem: Trace when the feature first appears in the documentation. That became CONDITION TRACE. The prototype follows a fictional museum-loan case involving the same vessel across four signed condition records. Earlier examinations were completed under diffuse light. During the return-arrival inspection, the conservator introduces raking light. As the grazing angle changes, a hairline crack on the vessel’s upper-right shoulder becomes legible. That observation is preserved as OBS-04 and carried through a traceable evidence chain: SRC-03 → OBS-04 → CMP-01 → LIM-01 → FND-01 But the system deliberately refuses to overstate what the evidence proves. The earlier examinations were not performed under equivalent lighting conditions. So the conclusion remains narrow: FIRST DOCUMENTED APPEARANCE AUGUST 3, 2026 Not: “The damage happened on August 3.” Not cause. Not responsibility. Not liability. The interface follows the same principle. Light becomes an examination instrument. The observation persists through comparison. The evidence lineage remains visible. And the final finding must be deliberately sealed. The goal wasn’t to make an interface that looks forensic. It was to make the boundary of the evidence visible and traceable. TRACE THE RECORD. NOT THE BLAME. Live prototype: https://day16-condition-trace.vercel.app Day 16 / 30 Phase II begins.
1
45
Building full websites based on your design vision
Building full websites based on your design vision
Developing performant & accessible web sites.
Developing performant & accessible web sites.
Results-Driven Software Engineer 💻
Results-Driven Software Engineer 💻