More from Allen Pike
One problem with AI is that it’s pretty stupid. I mean, sure, the current models are wildly useful. But out of the box, they overcomplicate, take undue shortcuts, and compound deficiencies to the moon. To get from default Claude or ChatGPT to a fast, affordable software loop – one that reliably zaps bugs, backlog items, and security vulnerabilities in your product in particular – it takes some real work. Increasingly, this is the work. So it’s past time you shared that work with your team. Guidelines and guardrails There are two main ways to get coding agents to behave consistently and correctly: steer them with guidelines, and redirect them with guardrails. Basically a union of “Please go do the good thing” with Error: You did the bad thing, try again. Sometimes, this means fighting models’ non-determinism with better non-determinism. We build and refine Markdown instructions: rules, docs, skills, and the like. Then at PR time, AI reviewers, classifiers, and human review workflows can non-deterministically ask Claude to go back and do better. But while this informed guidance is helpful, deterministic rules are gold. Instead of “PLEASE don’t make 10,000 line files”, a lint script can simply reject overlong files before they’re pushed1. When practical, moving Markdown rules, checks, and guides into deterministic code like this is a big level up. Checks in code are harder, better, faster, and stronger than prompting – and a hell of a lot cheaper. Similarly, if you set up a local environment so models can verify how their code works in practice, you’ll get less speculation and fewer unnecessary fallbacks. Step by step, you can tune your laptop into an instrument for turning brilliant slash idiotic tokens into good PRs. Before long, you’re building at a pace never before seen, with architectural consistency no less. Your team is in awe of your productivity, and… wait. Your team. Some of them need to understand your work too. And you still need to review their agents’ work– OH GOD WHAT IS THIS PR?! Sharing is caring The history of software development is the story of sharing. At first we shared just code, once its author was done with it. Then we grew into sharing commit history, say with SVN. We’ve seen with everything from Makefiles to Jira, Slack, GitHub Actions, Terraform, and more recently code formatters and linters, that engineering improves with more sharing within teams. But when coding agents debuted, it made little sense to standardize how they were prompted. Hell, they barely worked in the first place. Nobody had any idea what it meant to use them well, and they lent themselves to experimentation and highly custom setups. But 2024 was a long time ago. We’ve learned a lot about good agent guidance and guardrails, and models have gotten far better at working within them. Yet many teams still work in repos with no shared agent instructions at all. These teams still use AI. But they rely mostly on models’ instincts, developers’ prompting skills, and reviewers’ discipline to keep agents in check. More industrious team members might email around skills they find helpful. Using their personal setups, a few folks on these teams elicit well-engineered PRs from Claude – but these get jammed up alongside other developers’ mystery slop in the review queue. Fortunately, this is beginning to change. In-repo AGENTS.md files are now common. Reproducible dev environments, consistent for every team member, are including more lints, sandboxes, MCPs, and other tools that make agent output more consistent. CI, previously the realm of unit tests, often now runs review agents – preferably steered by in-repo instructions. And teams are putting checks, constraints, and formatting rules on PRs, making them easier to review and trust. As Thoughtworks’ Rahul Garg said on martinfowler.com: A prompt on an individual machine is a personal productivity hack. The same prompt in the team’s repository is infrastructure. So from this, we now have two primary goals: work to make our agent instructions more deterministic, and more useful for the whole team. Before the work: Setup and guidelines After the work: guardrails Deterministic, shared 😀 Reproducible dev environments and sandboxes, verifiable structures (types, schemas, boundaries), shared tools and hooks Typechecks, lints, tests, builds, CI, blocking hooks, ratchets Nondeterministic, shared 🙂 AGENTS.md, in-repo docs, shared skills, existing coding patterns, guidance returned from shared tools, shared agent sessions PR review agents, shared classifiers, human reviews Deterministic, personal 🙂 Personal tools and MCP servers, local permission setups, local env config Personal lints and hooks, local pre-commit Nondeterministic, personal 🫠 Your prompt, local memories, personal skills, CLAUDE.local.md, a bespoke dev environment only on your laptop Yelling at Claude for being a complete doofus The job, increasingly, is not producing code. It’s iterating a system – guidelines, guardrails, and tools – that helps your whole team produce good work. And as more teams run coding agents in the cloud, spun out of Slack conversations, Linear tickets, or incident reports, ensuring your agents do the right thing regardless of where they run is even more essential. While a tuned software factory like this is a boon to generalists working in it, working on the system is where domain experts – perf wizards, database pros, and so on – can really shine. Instead of just running interference, trying to review and reject problematic PRs in their domain of expertise, they can iterate docs and guardrails that improve how every change, whether kicked off by a PM or a principal engineer, is written. PJ Onori, a design systems veteran at Sanity, responded to an increase in agent-authored code that didn’t comply with their design system not with derision, but with a spec. Basically, in-repo rules turn expertise into leverage. Note: The shared rules need to actually be good In 2024, models’ worst failures were not following instructions. In 2026, we also get agents failing because they do follow instructions, even overly absolute ones. Many a CLAUDE.md (or, now, AGENTS.md) has collected slop like: IMPORTANT: Every fix must start not with code, but with failing tests. Make the fix, then honestly verify it against the new tests. This is not busywork—it’s discipline. 1000 PRs merged later, agents have gifted you 9999 new unit tests, many of them useless, like a cat delivering its owner dead birds. “Oh great, thanks Codex, tests that enshrine every copy edit we’ve ever made to the UI, how thoughtful of you.” Let this herd of tests run on hundreds of pushes to GitHub every day, and in time your CI bill will gain an entire digit. While having at least some agent docs and guidelines in-repo has become standard, there is wild variation in how well-maintained these instructions are. Often they get so long, agent harnesses truncate them. Multiple teams I’ve helped have said they still required humans to read and review code changes, but not AGENTS.md instructions. That is, the root set of rules followed by every agent working in their codebase.2 Now, you definitely want to add in-repo guidance and guardrails for your team’s agents, but with great leverage comes great responsibility. If your one doc or tool can now affect thousands of nondeterministic coding runs across a team, it’s worth the effort to iterate and improve it over time. At the minimum, this means building a culture of standards for this shared infrastructure, and people who own its effectiveness. How do we actually do that? Closing the loop While surely you tested your AGENTS.md overhaul personally, how is it working for everyone else? You see that your agents aren’t adding overlong comment blocks anymore, but this new PR from Steve did. Had he pulled your new instructions before he wrote this? And come to think of it, is your new guideline now causing places where explanation really would have been merited to be under-commented? Of course, to maintain code well that runs on various other machines requires a measure of observability – doubly so when the flows are non-deterministic. What skills are people using? Are they working as intended? Are agents spinning needlessly on missing context or verification capabilities? Are they now yelling at Claude when it was actually your doc or skill that caused the problem? You need to be able to fix mistakes and waste. Not just on your laptop, but across your team’s agents. On some teams, this just means having developers send bug reports and traces to team members when a skill or doc goes wrong – if they notice it and know who can fix it. Other teams move to a coding environment like Amp that shares session transcripts and their telemetry by default, or our Powerplant tool that supports session debugging in a harness-agnostic way. Meanwhile, Entire wants to be GitHub but for agents’ session logs as well as code. Session sharing comes with its own challenges. As with observability tools like Honeycomb and Datadog, giving your coding agents access to log and telemetry data from other agents is both very useful and potentially risky. Shared context needs thoughtful security, privacy, and accountability controls. Meanwhile, social conventions on teams around working with agents in the open are still developing. Some companies are overtly skeptical of transparency with agents, while others are all-in. No matter how this all plays out, one thing is clear: the early scramble of siloed experimentation is ending. It’s time for teams to be building shared agent infrastructure, guidelines, and guardrails, and to be iterating them together. To be learning not just from some confident poster on X, but from how one another are working with AI. And to help us all do less yelling at Claude, and more building useful software. While simply failing lints for a file that exceeds limits is helpful, we can do better. If your lints emit graduated feedback, e.g. flagging when a file is close to, at, or beyond the threshold, then you can give models useful feedback without halting a critical change because a file got pushed one line too long. Another useful graduated approach is the ratchet: if you find a bad pattern in your code you don’t want agents copying, a ratchet counts how many instances of the pattern currently exist, and only fails if that number goes up. A helpful tool for longer-term migration projects. Also worth noting: deterministic checks can give agents just-in-time remediation guidance. It’s better to put “New endpoints should use the typed Result pattern instead” in the lint error when somebody copies the old pattern, rather than in global AGENTS.md clogging every session’s context. ↩ /claude-api prompt-audit may be helpful if you need to dig out of this hole. ↩
Forestwalk’s CTO Jenn Cooper shares what she’s been learning about tests, after a couple years of increasingly coding with agents: Most discussions about AI-native development jump from this problem – agents’ tendency to accumulate tech debt – directly to tests. … Tests verify that code does what it did before. Whether what it did was even the right way to do it is a separate question. She argues that while agents make it easy to have rigorous traditional test coverage, at best unit tests maintain local code cohesion. At worst, they can actually make it harder to improve what agents are worst at: the wider coherence of the entire codebase. So far I’ve been impressed with how effective the broader automated checks she describes can be to guard against agentic nonsense.
Recently, Andrej Karpathy argued that the ideal interaction pattern for AI models is voice in, visuals out: Audio is the human-preferred input to AIs, but vision is the preferred output from them. Around a ~third of our brains are a massively parallel processor dedicated to vision; it is the 10-lane superhighway of information into brain. The claim is that while “text in, markdown out” is the mode most people use LLMs today, what we should be building toward is a Jarvis-like mode where we primarily speak to AI – and it primarily responds with UI, video, or other visuals. Let’s check in on where we’re at for both halves of this claim: visuals as output, and voice as input. Visuals Out Humans love looking at things! While it can be convenient to be able to listen to our computers speak, waiting through a voice response feels kinda… ugh. You can increase the speaking rate, but fundamentally, the fastest way for a computer to give humans information is to display it. We’re faster at reading text than we are at listening, but that’s just the start. There’s a good reason computers long ago evolved past text-only terminals: richer interfaces are often faster, clearer, nicer, and more useful. The power of human vision has facilitated a rich history of computers showing people stuff. At first, LLMs weren’t great at producing visuals, often spending many tokens to produce half-baked results. However, Anthropic’s Thariq Shihipar recently wrote how HTML is increasingly a viable output format to supplant Markdown, for certain model responses. This is great, since HTML is a powerful way to show visuals. Going beyond text can give us dynamic: Hierarchy (sidebars, columns, navigation) Exploration (drill ins, filters, expansion) Direct manipulation (scrolling, dragging) Data visualizations (graphs, charts, dashboards) Mockups and prototypes (show, not tell) Illustrative images and video (pelicans, bicycles) Thus the DOS era of AI begins to end. While it will be a while before general-purpose agents consistently return compelling HTML in response to arbitrary requests, visual responses are already practical for vertical agents – it helps to do one thing well. Recent months have seen a noticeable uptick in AI features producing useful diagrams, charts, sliders, and so on. So, yep. Visual output is a natural fit for AI, and we’re already going beyond plain text. Voice in On the other hand, most people are ambivalent about the idea of talking to AI. We were promised the Star Trek computer, or Jarvis, but so far we’ve gotten Siri and automated spam calls. There’s merit to the skepticism. Fundamentally, voice is never going to be the only input mode for computers. Just as we sometimes need voice because our hands are occupied, other times it’s impractical to speak aloud for social or confidentiality reasons. And even when we can speak, voice alone isn’t enough – effective computer use will always require more precise inputs, such as mouse clicks and drags. However, voice is a deeply human and useful input mode. For example, it’s excellent for getting out our not-yet-organized thoughts and observations. While ChatGPT voice mode is substantially dumber than its text mode, it can still be useful for organizing your thoughts – advanced rubber-ducking. Compared to text, speech also contains additional nuance and detail. Voice is not just words – it’s intonation, timing, tone, pitch, energy, and emphasis. Where a transcript would only see okay, how you voice the “okay” might convey “Sounds good!”, “Tell me more”, “I kind of doubt that.” or “Get the hell out of my office.” This is why we call somebody if we need to have an emotional conversation, rather than sending misinterpretable text messages. We speak faster than we type in terms of WPM, so together with the additional details in our voice, we simply put out more information per second via voice than from a keyboard. The Tyranny of Latency So, great. Talking to AI and having it respond with visuals are both natural and highly useful. Why aren’t we doing this all the time? If you’ve actually used AI voice systems, you’ve probably noticed that they’re usually slow, dumb, or both. In order to feel fast, we’ve known since the 60s that computers should respond within about 100ms, and that in order to keep users’ sense of flow, they need to respond within about 1000ms (1 second). Even before networks and giant neural nets, it could be a challenge to hit these bars. But voice AI adds a substantial new hurdle. Humans are more sensitive to lagged voice than we are to lagged visuals. For a fully fluid voice conversation with interruptions going both ways, the latency bar is about 200ms. More than that, and interruptions feel janky and annoying. You’ve experienced this on voice calls with other humans: if there’s a noticeable lag and you’re stepping on one another’s words, you back off into a more stilted turn-taking conversation style. At best, this is what we get with common AI applications today: slow, single-duplex turn-takers. They listen until it seems like you’ve stopped, generate a response, then stream until it sounds like you’ve started saying something, at which point they abruptly stop. While 200ms is a long time in traditional computing terms – a smooth animation frame needs to render in just 16ms – you’ll find 200ms is not a long time to do the complex work of sending a user’s voice over the network, making sense of it, generating a voice response, and sending it back. In order to achieve the required latency, applications generally do voice inference with rather small models. The most advanced voice model most people have tried, ChatGPT’s rather outdated voice mode, is profoundly dumb compared to GPT 5.5 or Claude Opus 4.8. Even if you understand why this is the case, it’s fun to watch that guy who awkwardly gets it to misadvise him1. But there is hope. Earlier this month Thinking Machines gave a preview of their approach for realtime voice models, which they call Interaction Models. These are full-duplex systems, which means we’re finally getting simultaneous perception and generation. Rather than switching between generation and listening, these streaming models slice time into 200ms chunks, interleaved continuously. While 200ms isn’t enough to generate a very smart response, that fast streaming model can call slower, smarter models to do things like lookups, reasoning, and generating artifacts – then return the results in 200ms chunks when they’re ready. Now, this is all very exciting, and I’m excited to see where it goes. But despite the claim “The model instantly reacts to visual cues”, even their demo videos show a noticeable and sometimes awkward lag between stimuli and voice responses. This is partly because it’s early – Thinking Machines was only founded last year. But it’s partly because humans are just that sensitive to voice delays. It’s a fundamentally difficult problem. However. Humans are less sensitive to laggy visuals. Since visuals are less intrusive than a voice response, you get the more permissive 1000ms response budget that we’re used to when building computer programs. This is convenient, since voice → visuals is a great interaction mode. Voice In, Visuals Out The good news is that you don’t need to wait for Thinking Machines or any other model advances to build useful voice in, visuals out experiences today. Here’s a quick example of what voice in, visuals out can feel like: not a chat, but a live visual representation of what you’re working on. The Cedarloop voice agent can help outline notes, file bugs, and do other in-meeting work. Here are a few latency approaches to keep in mind if you’re working on voice-in, visuals-out agents: The underlying model needs to be very fast. Any slower than p50 latency of 700ms and p95 of 1200ms will feel janky. Meanwhile, it’s common to see small requests on “fast” models that have over 5000ms of p95 latency 🫠 You need to send uncomfortably short time slices for inference. Err on the side of sending incomplete text rather than waiting for two-second pauses, and use context engineering to have the model heal any errors. Keep your context prefixes stable, so they can be well-cached. 90%+ of our input tokens are cached, and thus far faster (and cheaper) than if we were sending fresh context every request. Tokens are slow, and HTML is token-heavy. Realtime visuals-out needs to use efficient formats out of the LLM, which can then be displayed in a rich web or native view. Get it dialled in right, and you can build delightful-feeling experiences. If you’re working on these kinds of realtime apps, I’d love to chat – happy to share what we’ve been learning, and hear what others have been finding. GPT-Realtime-2 recently launched in the API with “GPT-5-class reasoning,” but is not in ChatGPT yet. And so far, Claude has no realtime multimodal model at all. ↩
Years ago, back when I was leading a mobile dev team, my friend had an idea for a business. You see, back then the most frustrating thing about mobile dev was the final step: getting your app on actual phones. Builds, provisioning, and code signing made for a harrowing trial, festooned with obtuse errors and other sharp spikes. So, Dennis had a pitch for me. “What if,” he asked, “we did all your apps’ builds and provisioning and signing for you, in the cloud?” I raised an eyebrow. “Well, obviously that would be great. In theory. But it would be too annoying to build that. Apple drops Xcode versions and switches submission requirements with no warning. And you’d need to make sure that…” He stopped me with a wave. “Right, but: if we did it, and it worked. Would you use it?” “Well, of course we would. But I don’t think you want to run this.” My attempt to discourage him didn’t work. Perversely, the idea that this was a hard problem got him more excited. He immediately dove in. Three years later, Buddybuild was acquired with fanfare. They’d accomplished what they set out to do, made a tidy profit, and they were even able to keep theirgreat team here in Vancouver. Wisely they ignored me, and chose to do the hard thing. The Nice Thing About Hard Things Doing something hard yet pointless is foolish. But doing something hard yet valuable has a lot of benefits. It’s easier to recruit a great team to tackle hard, worthwhile problems. It leads to less competition, due to schlep blindness. It’s a great way to hone your ambition and discipline – over time, working on hard things feels less hard. Consider that. If you have a great team, less competition, but more ambition and discipline, then you’re set up to do well. These days are well suited to attempting hard things. Our tools are improving so fast that a project which seemed straightforward last year might be trivial next year. Better to dial up the ambition a bit. Of course, there are a few pitfalls to trying hard things. You’re more likely to burn out, for one – it’s very important to sleep, exercise, and manage your own energy when your work is kicking your ass. And it can sometimes be difficult to tell when the “hard and purposeful” parts end, and when the “overcomplicating things” or “naive folly” begins. I highly recommend having a co-founder that finds hard and purposeful problems motivating, yet takes a dim view of overcomplication. Doing hard things is best not attempted alone. But, all in all, it’s a good default. We can do hard things. So, let’s.
More in startups
hr:after { content: "𓃰" !important; line-height: 1.5; } In March 2025, I went on a Jhourney meditation retreat that was one of the most profound experiences of my life, and deeply reshaped how I related to myself. If you had told my pre-retreat self that this was going to happen, I wouldn’t have believed you. I’d done some meditation before—including a 10-day vipassana retreat—and while it didn’t do nothing, I was underwhelmed. I felt pretty resistant to spending that much time staring at the inside of my head: it seemed really hard to actually trust anything I learned that way, because it was such a complicated system. And besides, my brain seemed to work fine the way it was. I’d read some writing by serious meditators who seemed to be having a different experience, filled with insights and bliss, but it wasn’t one that I felt particularly drawn to. That much navel-gazing and wireheading felt self-indulgent, and anyway they seemed weird enough that whatever they were doing probably wouldn’t work for me. Then, in a moment of life imitating Bay Area House Party, we got Jhourney, a meditation retreat startup promising to speedrun you to the bliss part (tagline at the time: “Life-changing meditative bliss used to take thousands of hours to learn. We teach it in a week.”) When I heard them strongly recommended not only by the serious meditators I’d been reading, but also by a couple more hard-nosed coworkers, I decided to see what the hype was about. Jhourney teaches a style of meditation nominally focused on altered states called jhanas. Jhanas are blissful-feeling states that you can “relax into” if you release enough of what you might call tension or clenching or tanha, and then focus on an enjoyable open-hearted sensation like smiling, a joyful memory, or feeling care for a loved one. If done right, you can start a feedback loop of enjoying the enjoyment, and end up in a state of deeply absorbed euphoria. I say Jhourney is nominally focused on that because the jhanas are actually kind of a Trojan horse for improving your life and relationships, which somehow doesn’t sell as well as wireheading. Jhourney’s unofficial motto is “come for the bliss, stay for the personal growth.” The growth happens because a lot of the tension you’re trying to release in jhana meditation is downstream of repressed or “stuck” feelings, either small ones (“I don’t want to be hearing that sound over there” leading to micro-clenching the head and neck) or big ones (“I can’t let myself feel this sadness or I’ll cry and that would be shameful” leading to tensing the various face and chest muscles that would otherwise be helping you cry). In order to get into jhana states, a lot of people (like me!) end up having to work on untangling knots of emotional clenching, and this usually leads to a lot of growth. My first experience of my Jhourney retreat was showing up and being handed an 80-page handbook of meditation instructions. This already blew my mind a little, because I had never read anything about spirituality or emotions that I considered good. The “best” stuff I’d read about the mind was vapid pop-psychology, padding out truisms with engaging fluff until the result somehow became a marketable book. The rest was indistinguishable from astrology—it was never clear enough that I could tell whether it applied to me, which meant it didn’t seem to make falsifiable predictions. As for spiritual writing, it mostly felt like word-association mumbo-jumbo, with authors throwing around words that had the right vibes but that I wasn’t sure they themselves even really understood. Heck, the previous meditation retreat I’d been on had included watching an hour-long recording of the now-dead founder talking about how he could sense quantum vibrations. The Jhourney handbook didn’t have these problems, because it was written by software engineers. It was epistemically conservative and shockingly lucid, completely mumbo- and jumbo-free. To help with the inherently fuzzy language, they explained everything from multiple angles. They gave clear gears-level explanations of why they thought things worked the way they did. They even took a detour to explain their teaching philosophy so that students were oriented about why they were doing what they were doing. It was masterful pedagogy. Between the written instructions and the teachings from live meditation sessions, pretty soon I could get to a point that felt like the “on-ramp” to a jhana. But every time I got there, I would get stressed and “grabby” about what to do next, and “fall off” the ramp. By the time I got to day 4 of the retreat, I was feeling really frustrated about this, in a way that was starting to loop on itself. I was frustrated that I couldn’t reach jhana, and frustrated that the frustration was making things harder. I tried Jhourney’s recommended way of working with negative emotions, which was a self-compassion meditation. But no matter how much I tried, it didn’t really resonate; I couldn’t cultivate any emotional experience of self-compassion. In fact, I realized I couldn’t remember ever having had a real emotional experience of receiving compassion, and that that was probably kind of fucked up. A bunch of my friends were on the same retreat. Since I had no access to self-compassion, of course I used this realization to start worrying that they would judge me for having a hard time meditating because I was fucked up, adding even more layers to the feedback loop of doom. Days 4–6 were pretty bad. Every day Jhourney gave us a survey of “how was your day on a scale of 1-10 with 5 as a normal day?” I rated day 6 a 1.5. (To their credit, Jhourney knew this meant I needed extra help and offered lots of 1:1 time with different facilitators, although none of it made that much difference.) At this point, in one of my desperate attempts to think myself out of my feelings pickle, I started thinking a lot about the metaphor of the elephant and the rider. The idea is that people usually identify with everything that happens in their mind, but this is actually a confusion; it’s more accurate to think of “you,” the conscious part, as a small human rider perched atop a large lumbering elephant that often does its own thing. The only things that are actually in the rider’s action space are things like “say words to the elephant,” “visualize mental images to the elephant,” “direct attention to a particular aspect of experience,” etc. Everything else—including all emotions and many thoughts—is the elephant’s job. In this frame, the fact that the self-compassion meditation wasn’t working for me wasn’t really “my” fault. Whether the emotional experience of self-compassion happened was up to the elephant, and the only thing “I” (the rider) could do was to keep gently saying the words or doing the technique or whatever, and wait for the elephant to steer, at its own pace. Around that point I decided to give up on the Jhourney curriculum and just do whatever seemed like it would feel nice.1 I broke the rule of silence to ask for some reassurance from a close friend who was also on the retreat. When I got back to meditating, I made up a technique for myself where I imagined sending love and compassion to the elephant instead of to “myself.” This turned out to be a cheat code: I immediately felt an outpouring of warmth, and the reassuring things I was telling myself started to emotionally resonate. I really wish I could describe better what happened after that, but unfortunately it was a while ago and involved a lot of subtle mental movements, plus it’s hard to track what’s happening while a chunk of your psyche is liquefying. I remember a sort of sense of “going inside” the feeling of compassion and love for the elephant, having it take up more and more of my attention, and feel more and more deep, rich and meaningful. Then some kind of rush of energy and a full-body frisson that I’ve learned often happens when my brain has rearranged itself.2 When I got up and walked outside, I gradually noticed that the world felt pretty different. I realized that I’d always carried a “refrigerator hum” of subtle body tension that was now gone. Walking around the retreat center looking at the views felt amazing, like I could have spent days just melting into the landscape. The Lipton peppermint tea at the hot drink station tasted unreasonably good. I would sometimes tear up with joy or gratitude for no reason. I felt much deeper care and connection with my friends. Maybe that makes it sound a little gooey and impersonal, like I took a drug that replaced my normal self with a puddle of love or something. The actual experience was the opposite; somehow it felt like this was all happening because it was easier to be myself. The care and connection wasn’t coming from some foreign love puddle; it came out because a bunch of psychic gunk had sloughed off and made it easier for the real essence of Ben-ness to shine through. And then I used my newfound mastery of emotions and self-compassion to live happily ever after flailed around trying to integrate everything back into normal life. One of the big changes I noticed after the retreat was that my emotions got 2–3× more intense. I think this was net positive in the end, but it made coming back to work hard—I had a stressful role managing a large team, and I also needed to catch up from a week of being incommunicado, which was extra stressful. And it wasn’t exactly helpful that suddenly, if someone was annoying on Slack, it would sometimes make me want to shoot flames out my ears. Over the next couple weeks, the intensity settled back down and the changes in my moment-to-moment experience went maybe 80% of the way back to normal (e.g., I stopped spontaneously tearing up in normal circumstances). Some of them stayed, though: A lot of my shame/cringe reflex turned into a self-compassion reflex. I used to get super embarrassed by minor mistakes (things like, I don’t know, forgetting to lock a public bathroom door and having someone walk in). Now those things come with a very clear sense of “gosh, what a normal-person type of mistake that millions of other people have also made, it probably didn’t even register for the other person.” I became much more easily moved by art. I went from being moved to tears by a poem or piece of music maybe once a year to once a week. I stayed much more aware of my more subtle emotional responses. I remember listening to some instrumental folk music I’d probably listened to 100 times before, suddenly noticing that the melody felt deeply nostalgic and then realizing that was two levels further out on the feelings wheel than I’d ever felt for music. I still felt much less of a need to be distracted or stimulated than before. I used to listen to podcasts at 2× speed whenever I wasn’t fully focused on a task (e.g. if I was doing chores or walking). Now I have no desire to do this, and when I do listen to podcasts, 2× speed feels unpleasant. Similarly, I started to dislike a lot of restaurant food, and to really enjoy very simple home-cooked meals that I would have considered too bland before. Friends continued to mention that my body language was different. One noted: “more upright posture, more open shoulders, more fluid and gentle.” Another described me as “‘leaving less,’ as in, spending less time ‘out of the room’ in interactions.” These were great changes, but even better, a bunch of mindset and relational shifts also stuck around. Mindset-wise, I guess I’d just say I got feelings-pilled. If you’d asked me what the deal with emotions was before the retreat, I probably would have said something like: Positive emotions are nice, although you shouldn’t let them distract you too much from your long-term goals. Painful emotions are responses to stimuli that are part of our evolutionary inheritance, but are largely maladaptive today because we’re in an environment so different from where they arose. Assuming you have good enough self-control not to act out on them, their main effect is to make you dumber, which you should mitigate by not engaging with whatever makes you emotional until you’ve chilled out. My new view is more like the following (this is still an oversimplified strawman and reality is a lot messier): All emotions are important and beautiful components of unconscious/intuitive cognition.3 However, they sometimes create impulses to do things that aren’t actually good ideas. In the process of socializing ourselves not to follow those impulses, we’ve been trained to try to make the emotions themselves go away in painful ways, by repressing them or clenching up around them. Unintuitively, repression and clenching actually cause the emotions to “stick around” in some sort of partially metabolized state, which has negative side-effects, like anxiety, thought-looping, numbness, blind spots, impaired reasoning, bringing up secondary emotions as defenses, etc. A different way of working with these emotions, that’s better for you in the long term, is to figure out how to welcome and accept them. This eventually leads to them feeling less bad, and giving you more impulses that are good ideas and fewer bad ones. But it’s not as simple as “just stop repressing.” Welcoming emotions requires fully feeling them; if they’re strong, that can be too overwhelming to work unless you have a deep felt sense of safety. That safety can be provided in many different ways, e.g. a therapist, friends, some kinds of meditation, etc. If you don’t have access to enough safety, repressing or clenching temporarily might be your best option. The main thing that changed my view here was spending days at the retreat paying close attention to my own emotional experience. For example, near the beginning of the retreat, one of the facilitators claimed that thought-looping was usually a sign of a stuck or repressed emotion. I was really skeptical, but then I had several very clear experiences of thought-looping around something, going off to a private place to cry about it, and immediately stopping the thought spiral and relating to it differently.4 Similarly, I’d ended a long-term relationship right before the retreat, which I’d felt a lot of internal conflict and self-doubt about. My therapist had often told me things like “if you felt enough of your feelings you’d feel clear about this decision,” which sounded crazy to me at the time (uh, it’s a really hard call and there are a lot of tradeoffs that I don’t know how to weigh!). But on the last day of the retreat I noticed that I felt much clearer that a lot of the things I didn’t like about that relationship were real and important, and felt much more confident in my choice to end it. Of course, I’d already heard plenty of people say things like “you can’t make this kind of decision logically, you have to listen to your heart,” but I never really understood what they were talking about. In retrospect, I just didn’t have the ability to do the “listen to your heart” internal move, because the pipes were clogged by too much repressed gunk. I wish those soundbites had included a second sentence like “of course listening to your heart can be much easier said than done, so if it feels hard or unclear for you, here are some first steps to get started with, and be prepared for it to take you many hours (or years) to figure out what your heart is trying to say.” This new mindset really shifted the way I related to my emotions. While I still often experience them as painful, it’s much less than I used to, and now I start from the assumption that they’re not “actually” painful or bad, and that the best thing to do with them is to figure out how to accept them, welcome them, and find the wisdom or beauty in them. Overall this feels a lot better—when I run into something stressful or hard, instead of just flailing around not knowing what to do about it, it feels more like I have some kind of sense of direction or overall orientation, which is really comforting and grounding. I also noticed that a lot of these ways of thinking about emotional difficulty within myself were also useful metaphors for thinking about emotional dynamics between people. Just like resisting your own emotions is a common coping strategy but ultimately doesn’t work very well, resisting other people’s emotions is also a really common but damaging pattern, which I would guess is very involved in a lot of (most?) relational damage. For example, I realized that a big part of the root problem of the relationship that I had just ended was that both of us were missing the capacity to accept a bunch of each other’s emotions, which was something I hadn’t been able to articulate clearly at the time. I now think practices explicitly focused on welcoming each other’s emotions are a really valuable tool for nurturing relationships over time. In fact, I started to notice that a lot of sticky problems—both in my personal life, but also the type that I ran into as a manager—were partly downstream of people resisting emotions of one type or another. Alice is hard to communicate with, because she frequently monologues about unimportant details, because she wants to prove she understands everything, because she has a bunch of stuck fear/resentment about not being taken seriously. Bob and Clara have a persistent disagreement about strategy, because Clara doesn’t care enough about Bob’s opinion to engage, because Bob was cruel to her once; Clara never complained because she’s avoiding the feeling of having been hurt by it. Dave’s team is underperforming but Erin, the exec sponsor, doesn’t want to manage him out, because she’s scared of the conflict and of making Dave’s reports, who like him, angry. Of course, just because a problem is caused by stuck emotions doesn’t mean that unsticking them is the best way to solve it; but it was still a really useful lens to view what was going on. The other shift that stuck around was in my relationships. I made a huge improvement in my friendships, which a few different things contributed to: I felt a lot clearer about what I wanted from close friendships—mainly, a strong felt sense of safety and care—and that this felt like a big missing piece in my life. I also started getting better at feeling those. With a lot of my shame reflex dissolved, I felt generally safer with people overall—my intuitive predictions about how they’d respond to things I did felt more positive. I also got a lot better at noticing and appreciating the different ways people expressed care for me. Because I felt generally safer, I also got more willing to take risks or be vulnerable, which helped build closeness faster. A friend reflected that I seemed more courageous. This also meant that my “friend type” changed—I cared more about emotional connection and less about intellectual connection. Luckily, even though I live in a really heady milieu, I was still able to find a lot of big-hearted people and gradually build up a set of close friends who are wonderful at both. So far, this is the change I’m the happiest about. My dating life changed a bunch as well: I started being able to feel much more strongly attracted to people. For example, later that year, I got a crush on someone that was stronger than any crush I’d had in high school. I had a run of anxious-attachment-ish experiences, which I’d never had before, although they got way milder over time.5 The extra safety and courage I mentioned above were helpful in dating too: I got much more comfortable with communicating tricky things or being in weird situations (e.g. ones outside the standard script of “meet someone on an app, go on some dates, become exclusive”). A friend commented that it seemed like I had more degrees of freedom. These changes have been really wonderful overall, but also kind of intense. Becoming much more emotionally aware solved a bunch of my problems, like wanting deeper friendships or not understanding why my relationship was unsatisfying. But it turns out winning that boss fight just made all the enemies level up. My old problems got replaced with horrible new problems, like that sometimes my newly deep friends and I would have conflicts, or that I would be more into the person I was dating than they were into me. The part of my life where I feel the most mixed about the impact is work. About six months after my retreat, I got a pretty bad case of burnout and left my role managing a big team for a significantly less ambitious IC role. I don’t think the retreat was the main cause of my burnout—the main cause was that I didn’t have enough background in the area I was managing to have the type of impact that I wanted to, with a side helping of some difficult working relationships. But it turns out my new psyche had also gotten worse at repressing or avoiding emotion, and that made everything harder. I think of repression as the emotional equivalent of technical debt or deferred maintenance: a way of avoiding an immediate cost, in this case feeling uncomfortable feelings, in exchange for paying a higher cost later to clean it up.6 My role exposed me to a constant stream of low-grade painful things, like people being disappointed or annoyed at me, me being disappointed or annoyed at other people, projects not going well, office snacks being replaced with worse snacks, and so on. With less ability to avoid or repress, I had to feel more of them fully as they came up, and that was really draining. It also required enough time and attention that I had to defer a bunch of maintenance on my personal life. Even now that I feel like my energy levels have mostly recovered, I’m still not sure whether I want to go back to the center of the vortex. It’s not just that I would have to start deferring maintenance again; I’m also much more aware of a lot of maintenance I’d already deferred and really want to clean up—things like investing in friendships, like I mentioned above. If I were only working toward my personal growth and happiness, I’d say this change was clearly good. My life feels much richer and more whole, and taking a less ambitious role forced me to release some layers of ego attachment to having a “shiny” job or career, which was deeply freeing. But… I also care a lot about my impact on the world, and I think the next few years will probably be a critical period where my work could be especially high-leverage. From that perspective, it’s sad to feel resistant to maxing out on work right now. I feel pretty unsure about what to take away from all this. Here are some disconnected reflections. I would never have said that I had a problem with self-compassion or self-esteem before doing this retreat, because I was able to say the right self-compassionate words when I directly asked myself things. But from my point of view afterwards, it’s clear that I did have a big self-compassion problem; even though I could say the words, I wasn’t really feeling them or acting like they were true. Having the actual embodied experience and habits of self-compassion is the closest I’ve come in real life to The Vitamin.7 Jhourney is doing something really cool and is way better than most/all other meditation retreats on several axes (amount of support available, pedagogical excellence). That said, you probably shouldn’t expect to have this life-changing of an experience; I would guess I had something like a 95th-percentile-plus outcome in terms of long-term effects. I still think it’s awesome as an introduction to both meditation and embodied emotional awareness. I feel like I got really lucky on timing: if the retreat had ended one day earlier, I don’t think I would have gotten to the life-changing part. That freaks me out a lot. At first I concluded from this that I should get super into meditation. Then I did two more retreats (another Jhourney retreat and a Dustin DiPerna introduction to mahamudra retreat) and neither one of them had nearly as large of an effect. The second Jhourney retreat was really helpful in reinforcing my daily practice, and I do think a daily meditation practice was helpful in stabilizing the changes that became permanent, but I’m not even totally sure about that. Jhanas are definitely real. Also, it was kind of wild hearing somebody tell me something that sounded totally fake (“achieve bliss on demand using nothing but your brain”) and then back it up with an 80-page engineering manual and meticulous data on success rates. Overall this made me much more likely to believe that various other types of “woo” phenomena are real, at least in the sense that people are accurately describing their experiences. (I still believe the universe runs on physics, but a lot of woo things have physics-compatible explanations, especially if you buy that people’s intuitions can sometimes do spooky things.) I described this as “chang[ing] my personality” in the title, but I don’t want to oversell the magnitude. I do have a lot of conversations where someone asks me “so how come you’re so <like X>” and I tell them “I did this weird meditation retreat a couple years ago.” But also, there are a lot of different aspects of personality, and even though a bunch of those completely changed for me, most of them are still the same, so I’m still very similar to my past self in an absolute sense. What flags should tip you off that you should maybe be staring into your emotions more? Here are some things that I think might be clues (a lot of which described me, in retrospect): You often get stressed and stuck in thought loops You’re easily annoyed or frustrated You have too much scarcity mindset—you often worry this is the best job or relationship or whatever that you’ll ever have, in a way that’s not justified by the fundamentals You seek out a lot of distraction or stimulation; it’s not very enjoyable to just exist in the present You feel a lot of internal conflict or uncertainty about what you want There are parts of yourself that you really don’t like or wish were different You feel some missing depth, richness, or meaning in your life but can’t put your finger exactly on what I’m also just left with a lot of questions: Was this set of experiences… good? I’m really confident that it will be good for my own long-term life happiness. But the timing meant that I feel less willing to sign up for intense work during what might be one of the most critical periods for humanity, which feels bad even if the change was positive. I feel kind of unsure how to balance these. My shoulder Jeremy Bentham says I should have just kept playing push-pin. My shoulder, uh… deva? says if I follow my heart my impact on the world will be higher, even if it’s less predictable or legible. I don’t really feel like I buy either of these. It seemed like before this I was in a personality attractor basin with a lot of numbing and repression. How exactly did this happen, and more importantly, how can I/we avoid having it happen to as many people in the future? I have some sort of fuzzy leads on this (e.g. when I was young it was really easy to make me cry so I got picked on a lot in school), but not a particularly complete picture (e.g.: does this happen to everyone who has that experience? If not, what makes the difference?) Mechanistically, what did the elephant meditation do? Why did it work so suddenly and create such a lasting shift? (Was that in fact what was responsible for most of the lasting shift? How much of it was instead about what I learned at a cognitive level?) Is the glowy, “easier to be the essence of Ben” state that I ended up in right afterwards something that can be stabilized (or have aspects stabilized)? If so, how? More generally—where do I go from here? I’m convinced that doing the right type of introspection or meditation type thing for a week can unlock amazing things, and it feels like there are more amazing things out there to unlock, but I wish I had a better way of navigating towards them than semi-randomly trying things. A draft reader asked what I would tell my past self, or someone like me, about this arc. Ultimately, I’d boil it down to: There are probably a bunch of feelings that you’re refusing to welcome into your experience, and this is probably involved in a bunch of the things that are unsatisfying about your life and relationships. You can improve this by gradually, in a safe context, paying loving attention to the uncomfortable parts, from a place of wanting to know and care for yourself rather than to fix yourself. When that’s hard, remember that it’s not your fault. You’re just the rider; elephants gonna elephant. Let it go where it needs to and keep loving it as best you can. Thanks to Alex Allain, Catherine Olsson, Elena Lake, Jess Ocean, Rahul Dalal, and Sasha Chapin for feedback on a draft of this post. Ironically, Jhourney more or less recommends doing this in various parts of the handbook, but I was too into following rules to follow the part of the rules where they told me to stop following the rules. I don’t think this strictly qualifies as a jhana by Jhourney’s rubric, because it wasn’t stable and self-sustaining, but it otherwise felt close to how they describe first jhana. I do mean all, even ones that our culture really doesn’t like—for example, anger is a sign that something you care about is threatened and needs protecting, and fully welcoming it can help bring clarity about what exactly needs protecting and how. If you’re curious to learn more about the beautiful and constructive aspects of negative emotions, I recommend the book The Language of Emotions, Joe Hudson’s podcast (search for the emotion you’re interested in), or here are some specific articles summarizing his views on anger, fear, and shame. It was a lot easier to see this clearly on the retreat than in normal life: doing lots of meditation both made it easier to notice my own thought processes, and also faster to “unstick” or welcome the underlying emotions. I’m not totally sure what was up with this; I think it partly had to do with calibrating to the new level of attraction I could feel. Like tech debt or deferred maintenance, sometimes repression or avoidance can be the right strategy, if you’ll have more resources to deal with the problem later! “My deepest darkest fantasy is that I collapse on the street and I am rushed to the hospital. They perform a bunch of tests and find out I am severely deficient in some kind of vitamin. Then I start taking the vitamin and I become the happiest cleverest person alive because all my problems were caused by this one deficiency.”
Scarcity and survival keep you from being your best.
An old playbook is back for the deepfake era. Is it working?
If you haven’t subscribed to Where’s Your Ed At, now’s the best time. I’ve extended the sale — 10% off of the $70-a-year subscription for life (click here!) — for new subscribers for another week. It’s a