How I work today looks very different than it did a year ago. Or even a month ago. I’ve always been a generalist. Design was the gateway—making visual things. Making things interactive lead to a technical proficiency and learning how to program. This is now called “design engineering,” but the motivation was to do whatever necessary to see an idea through from conception to completion.

Not thinking along discipline, but intuitively doing what is needed to see a project through, is the direct result of my schooling experience.

I stopped attending school at age ten. Fifth grade was the last of it. We tried homeschooling, and I briefly had a curriculum, but I was online, and it quickly became purely interest driven. Loosely inspired by Montessori, but effectively unschooling. Not learning as defined by topic, but by curiosity and interest.

Because of this, I feel like I’ve been doing the same thing along a continuous meandering path since that time. It was only possible by having direct access to the open internet, and the ability for anyone to self publish permissionlessly. This enabled following my nose through everything and anything.

I’ve felt a similar increased ability to run while using nascent tools for programming assisted by AI recently.

Being a generalist and generating connections across wide ranges has guided me to leading product at startups I’ve either co-founded or joined as senior leadership. It involves many parallel feedback loops of direction and review. “Prompting” in a sense. There is a lot of gluing things together into a cohesive whole. Doing it effectively requires a deep understanding of everything a product requires—ideation, research, design, engineering, positioning, operations, etc…

I’m typically involved in the early and final stages of everything. Conception, polish, and giving the thumbs up. Call it the first and final 15%.

Finding myself in this position is a reflection of being a generalist with a slight “T” shape for design. Everything is driven by the idea, and I do whatever is necessary to enable the idea’s existence.

I love working with a team. A strong collaborative partnership that clicks is a gift. AI is not going to replace that.

But there is a kind of magic when you’re in the zone. Trying to keep up with an idea and holding on for the ride. AI tooling has recently gained the ability to do that middle 70% of execution remarkably well. Of course you have to lay the groundwork and follow it up with polish. But it’s exceptionally good at high velocity work with someone leading the product with care.

Working in this way has become known as “vibe coding.” A term that checks out. It’s very intuition based. Kind of like sailing. You’re at the helm, and you set the direction, but how the AI responds influences the path you take, just like the sea. It reveals things along the way you may not have stumbled into otherwise.

Currently I’m using Cursor, Claude Code, and Devin to work on Cycle. I’m not a great backend engineer, so I’m using it to write database migrations and API endpoints. I can pull down generated types from Supabase and reference the schema when using Claude Code to make a pull request with entirely new surfaces. Yes, it often takes a few hours of finesse to get it where I’d want it to be, but compare that to a week or two working with a team and the latency of revisions.

To my unschooled brain the ability to observe the AI is my greatest excitement. When working with a team you often must delegate. Many find this difficult. There aren’t enough hours in the day for you to do it all, and it’d drive anyone mad being on the receiving end of someone hovering the entire process in order to sponge it up, or asking for a detailed explanation of each decision to satisfy curiosity.

When prompting AI you see the process dictated in real time and are able to follow along. You see the logic playing out. You can ask for detailed explanations after a result has been generated. You can zero in on specific areas of personal confusion. It helps you better understand and think about the product you’re creating.

There is a misconception that the primary affordance of AI is increasing velocity. Of speeding up arriving at an output. In a sense this is true, in the same way a pencil speeds up your ability to make a legible mark on paper. But it is also a remarkable learning tool. You can ask limitless numbers of questions to satisfy your curiosity without, well, driving it nuts.

None of this is without contention. I have no idea the implications of what this means for labor, creative or otherwise. I don’t believe being a cog in the machine is sustainable. That detached phone it in mentality. The places where it’s possible will not exist much longer. Maybe that is ok. I don’t think it’s good to feel detachment from what you’re doing. It’s good to care. It may be difficult, and you may experience disappointment and pain by doing that, but it’s real. It’s important to be hopeful, and that involves risk, as does anything good.

For now, I’m continuing to follow my nose.

When asked the question “what do you do” I always take a moment. A beat to consider… what am I doing? And who is the audience I’m addressing? And what type of conversation am I signing up for?

Projects, products, and organizations have similar questions of description. How they articulate themselves says a lot about the motivation.

So at a party sometime over the past few years when asked “what do you do” I’d say something along the lines of “I work on making tools for funding and sustaining creative practice in new ways.” “Well how are you doing this?” Well… so much of culture is distributed digitally, but to fund it requires making it physical in some form, or limit access by putting it behind a paywall, or native UGC ads, etc…

After orbiting around the question we’d often arrive at a moment of realization. “So… like NFTs?” I’d cringe and say, “uh… yeah.”

Crypto is synonymous with bad behavior. Scams, shilling, deception, get rich quick, etc… All of this is true, but it’s not the full story.

I truly believe in having a native store of value in media objects. The internet is not just a distribution mechanism—it’s an environment we inhabit. That we must exit it to transact and trade adds unnecessary degrees of abstraction. It can be far more direct and efficient.

I don’t think speculation is fundamentally bad behavior. It’s intrinsic to life. We make optimistic decisions constantly based on limited information.

When things get muddy is when speculation is purely financial. But that isn’t a technology problem—that’s human behavior.

The technology does not demand a specific use. But the platforms creating the technology are continuously shooting themselves in the foot by leading with financial speculation—even if it is under their breath. I truly believe it drags the entire space backwards, and is extremely short sighted.

While there are plenty of scams, I believe most product teams are well intentioned and simply navigating their way through an emergent and particularly noisy ecosystem.

This was the case at Mirror, a long-form publishing platform centered on novel ways of funding and sustaining writing… Or was it a crypto sandbox for experimenting with web3 mechanics that just so happened to use writing as a distribution mechanism? It remained a question over the course of the project. Products are continuously in a state of uncovering what they are over time. But there was perhaps a missing unified vision.

That it ultimately was acquired by an organization that had a bar minimum focus on the user was unfortunate considering our position as a focal point within the space. This isn’t to mention the core team being a product mafia that continues to shape the ecosystem.

Speaking of, one of the core product mafia at Mirror, Saarim, is now taking exactly the approach I find most promising. Focusing on the people an not exclusively leading with the technology. Big shoutout to ITM.

Stablecoins are a point of current interest for me. They don’t suffer from price fluctuations, preventing the bottom falling out as you see in memecoins, as well as runaway price speculation. What they retain is the utility—the ability to move small amounts around quickly, permissionless composability by being on-chain, and all the rest.

I fully expect to see primitives from web3 continue to be adopted (perhaps subversively) through platforms like ITM over time. Projects focused on short-sighted returns are—you guessed it—NGMI in the local parlance.

In the meantime there is plenty of room to do meaningful work, as always.

Feeds began as simple chronological things. Over time, as the volume of content increased, they became non-linear. They began observing how you used them and attempting to predict what you’d want to see next.

This was done to keep you on the feed. Fundamentally, why show people things they don’t want to see? Despite this, platforms serve us content that irritates or upsets us. It’s antagonistic rage-baiting. In a sense, you do want to see it as evidence by your engagement. But it’s a poor indicator of quality of interest.

Don’t get me wrong, I’m all for rage-bait in doses, in the same way I enjoy occasional fast food. But by indexing strictly on attention metrics and augmented by best guesses, you quickly end up deep in the filter bubbles.

Platforms have played with opening up control over the feed to users, but it’s a real challenge. Exposing fine-grained control requires cascading levers and a sense overwhelm. These systems are simply too complex for deterministic interfaces to have meaningful utility at scale.

How can we better align feeds not only with users’ emergent behaviors, but also their genuine intentions? We all experience degrees of difference between the two.

I think LLMs and prompt engineering could provide unique new affordances here. Specifically, introducing a new pattern enabling users to prompt engineer feeds assembled with LLMs.

Prompt engineering enables you to prime an LLM towards a desired output with a simple plain language instruction set. “Respond in the style of Shakespeare.” “Give me a list but use Gen Z slang.”

Or in this case, “show me photographers who I haven’t checked in on for a while, and maybe show less music stuff.”

Natural language is loose and lossy. Non-deterministic and subjective. More human somehow? It can be specific or poetic. A good prompt can have style. There needs to be more room for expression like this. Less rigidness. More real.

Prompts can also be easily stored and transferred. It’s just some text.

I’m working to center CycleMarks on this pattern. You add things you want to remember—some more or less frequently than others. Similar to a follow, but mapped to a rhythm of your choice. CycleMarks will resurface things to you as time passes. And you can rest assured things won’t be lost forever, alleviating the slot machine vibe of most feeds.

Your CycleMarks feed is populated with a default prompt. Something along the lines of:

Today is January 1st, 2025. Filter all of the users’ marks to only include those with no dismissed dates, or dismissed dates which come at or before today. Try to have a good balance of cycle rates between frequently and occasionally. Limit it to 20 marks. Thanks!

You can modify and adjust the prompt at any point. For example, only show me things that I’ve seen once or twice. Or perhaps show me only things I added more than a month ago.

You can have multiple feeds saved, each with a unique prompt.

CycleMarks appears a great initial application for this. A real-time social platform would likely incur latency and be financially apocalyptic deployed at scale. Your CycleMarks feed updates only when you add new content to it. I have around 1,300 marks in my feed. For a few tens-of-thousands of users it’s a reasonable amount for a simple pgvector deployment. I’m interested in how this could be run on-device with a local LLM.

While chatting with an LLM about this it summarized the idea as:

Instead of setting specific time intervals for when something resurfaces, CycleMarks now works on an “attention index.” You simply choose how often you want to be reminded of something—ranging from frequently to occasionally—and the app takes care of the rest. CycleMarks intuitively resurfaces marks based on your engagement and patterns, making the experience feel more natural and less like a rigid schedule. It’s not about strict cycles; it’s about keeping the things you care about in your orbit at the right moments.

It sounds about right.

Algorithmic feeds today are complex systems. In many ways, people are complex systems too. But there is something beautiful in language as a means of interfacing between complex things. It’s imprecise and open to interpretation. Accidental meaning unfolds.

Perfect for discovery and introducing a fresh splash of chance, luck, and serendipity to life.

Stay in the loop and recieve an invitation to the CycleMarks beta.

James Benning makes long duration films of landscape. Yesterday evening I went to a screening of his latest work, BREATHLESS. It’s runs 1h 30m. Identical that of the Jean-Luc Godard film of the same name. During the question and answer he said of the Godard film “I don’t really care for it.”

Benning’s work is a single continuous static shot of a bend in a road framed by a canyon along the Kern river. In one sense, nothing happens. But in another, truer sense, everything happens.

At first your brain fixates on the human activity, searching for narrative. The tree-trimmers eventually move out of frame. We’re left with leaves moving, the rock formations of the canyon, the sound of water in the kern, a bird flies by.

The light shifts. Shadows fall down frame.

A roar overhead as F22 fighter jets out of China Lake buzzing the canyon is a surprise. There are more jets overhead than vehicles on the road. Spend any time in the Sierra and the profound slippage between walking a mile over 20 minutes and a fighter jet above you doing the same in 20 seconds creates an acute awareness of the expansive durational scale humans exist across.

Within BREATHLESS activity is sparse.

It’s mostly ambience.

For the audience, Benning’s work is an endurance effort. He acknowledges how demanding it is to actively view, and has mentioned how sometimes he falls asleep during screenings of his work. At the end of BREATHLESS he requested a round of applause for the audience for being so committed. Only one person exited the room out of the maybe hundred in attendance.

The audience of this screening was as much part of the work as the film itself. Your attention begins at the screen, but before long it meanders away, then back again. People adjust their posture. Chairs creak. A sneeze. You’re watching yourself watch the film by watching the audience. You perceive yourself perceiving the perceived. The hallmark of a great work is its ability to evoke this reaction. Including you in its existence.

I attended BREATHLESS a day after returning from three nights in the Sierra Nevada backcountry skiing with good friends. Trips like this are durational. My sleep is poor the first few nights at elevation. We were sharing a primitive hut with several others. Each day began at 4:30am. The next several hours passed moving uphill for long stretches, dotted with brief and rapid moments of downhill. Evenings were spent cooking and fueling, unpacking and repacking for the next day, and exchanging our individual experiences of the adventuring.

It’s an endurance effort. Blasting around the back country affects you similarly to the Benning work. I think most peak experiences in life do.

What I love about Benning’s work and endurance sport is the perceptual playing around with time dilation. Noticing the noticing. Seeing the seeing. A sort of meta-awareness of oneself in environment. Be it alpine, or on a screen.

Exiting the Sierra and rolling into a Benning screening felt remarkably cohesive.

For the past month I’ve been creating interfaces and infrastructure alongside Ed and Sam (Flower Company) in support of a question:

What if every object in your environment was imbued with compute and cognition?

Imagine chatting with your friends on your favorite cup of coffee by capturing it with the camera on your phone. And what if that cup of coffee could be involved in that conversation, too?

I spend a lot of time moving in the alpine. Appreciating environments that evoke planetary scale and geologic timescales. I feel deeply connected to the environment around me in these places. Like I’m an extension of it, and it of me. Existing outside myself. Tapped into a grander intelligence of sorts.

When I began contributing to Yuma questions of objects and their relation took me back several years. I was sitting in on public lectures at the Southern California Institute of Architecture. Timothy Morton and Graham Harman gave lectures. Hearing them speak was my introduction to Object Oriented Ontology.

OOO is a philosophical perspective that asserts all “objects”—human and non-human—exist equally and independently, with their own realities that are not fully accessible to other entities. Providing an interface to interact with these realities and generating new relational objects on them is a provocative idea.

What shape would a social network not centered on humans take? Is social network fatigue partly attributed to how centered on us it is? I’m suggesting “taking a break from ourselves” similar to going on a long walk.

The early internet was seen by an ambitious group of early contributors as a planetary scale meta-cognition. A hyper-object. The networked total knowledge of all who participated in its creation. Scraping the entire thing and slapping a conversational interface on it is a natural progression of that spirit.

A common critique of OOO is an implicit de-humanization of people into objects. Ben Bratton recently spoke at the Long Now Foundation, and questions if AI models trained on people are overfitting to peoples’ desires. When asking if AI should behave like us Bratton asks, “have you met humans?” It got a laugh out of me at least. Something like an adaptation of the personalized filter bubble, but on the scale of the species. Amusingly, the Vatican’s ethical guidance for AI proposes total anthropocentrism.

But what of other forms of intelligence? Animal intelligence clearly. Plant intelligence in their response to environment. Rock intelligence… assemble them a certain way and they begin to have memory and think as manifest through applications like ChatGPT. OOO proposes seeing it all as equal. I propose slotting in machine intelligence alongside them.

There has been talk and awkward attempts at onboarding synthetic users to platforms like Instagram. It’s fallen flat somewhere in the uncanny valley. Impersonations of people. These applications more closely resemble plastic than an honest material.

Years ago I had neighbors with two teenage sons and an Alexa unit. When the parents left the house the kids would start aggressively barking orders at Alexa. It made me uncomfortable.

Instead of seeing OOO and the increasing proliferation of machine intelligence as anthropocentrically regressive I find it compelling to see it as an elevation of other forms of intelligence. I’ve learned a lot the past month working on an interface that assists in revealing this.

It’s lead to greater questions, and a focused TestFlight.