Icon for On Collaboration, Criticism, and Moving Forward

On Collaboration, Criticism, and Moving Forward

August 2025

In 2018, someone published a blog post titled "Why I'm Not Collaborating with Kenneth Reitz". It's been following me ever since—dominating search results, preceding every job interview, coloring every conference proposal.

Here's a Safari Reader summary of this person's essay:

The author recounts their experience working with Kenneth Reitz on adding async support to Requests. Despite initial collaboration and a successful fundraiser, Reitz's handling of the funds raised concerns. The author alleges Reitz misled donors about the use of funds, lacked a plan for implementation, and attempted to shift responsibility for fulfilling promises onto the author.

The Facts

We had 1–2 brief video calls about async in Requests. A few follow-up emails that I didn't respond to. That was our entire interaction. No code was shared. No collaboration existed to dissolveThe title itself—"Why I'm Not Collaborating"—implies an existing collaboration being terminated. This framing shaped how readers interpreted the entire narrative, creating the impression of a partnership gone wrong rather than a simple exploratory conversation..

I could spend this entire essay relitigating the past, but that's missing the point. This is about patterns in tech culture that affect all of us—how narratives crystallize into truth, how reputations become prisons, and perhaps most importantly, how we might do better.

The Reality of Requests 3

The Requests 3 fundraiser has become a touchstone for criticism.

Here are the facts:

I raised funds to support development work. I did that work. The funds went to supporting that labor—my labor, since I was the primary contributorWhile Requests had dedicated core contributors handling maintenance, none were interested in working on the major architectural changes planned for Requests 3. The fundraiser was specifically for that new development work.

The project didn't ship as originally envisioned. I've apologized for that. Communication should have been better. Expectations should have been managed differently.

I removed myself from Requests on PyPI of my own accord. Because it was the right thing to do for the project's future.

Here's the distinction that matters:

  • "Didn't deliver as promised" = failed project
  • "Misappropriated funds" = theft

One means I failed. The other means I'm a criminal.

The original post carefully avoided the word "misappropriation." But that's exactly how it gets repeated in every comment thread, every discussion, every time my name comes up. The implication becomes the accusation becomes the truthOnce "didn't deliver" becomes "misappropriated" in the collective retelling, the damage is done. It's the difference between "project failed" and "cannot be trusted with resources.".

The Timeline That Matters

The Calls: 1–2 brief video discussions about async implementation. I was transparent about my plans and the fundraiser. After these calls, I decided this wasn't a collaboration I wanted to pursue. My instincts told me no—the vibe was way off.

The Follow-up: Messages I chose not to respond to. In open source, as in life, collaboration is voluntary. No response is a response.

The Threatening Note: Between our calls and his essay, I received a note that landed as a threat. I don't remember the exact wording, and I don't care to dig it up, but it was something to the effect of: "I'd hate for everyone to think you misappropriated the funds…"This is a paraphrase, not a direct quotation. But the intent was unmistakable. It wasn't dialogue—it was intimidation. When someone sends you this kind of message and then publishes a public essay, it reveals the true dynamic at play.

The Essay: Published just as I was supposed to go on stage at an event at PyCon. The timing amplified its impact—a narrative detonated when it could do maximum reputational damageConference talks require tremendous vulnerability—standing before your community to share ideas. Having your character publicly questioned right before speaking affects not just the talk but your entire sense of belonging in the space..

The Aftermath: Years of that essay appearing first in search results. Recruiters, employers, and community members reading it before seeing my actual work. A single perspective crystallized into "truth."

How Narratives Form

Normally, one blog post would disappear into the internet's memory hole. But tech culture loves controversy:

  • Search algorithms prioritize engagement over accuracy.
  • Social platforms reward outrage over nuance.
  • Communities often embrace narratives without seeking multiple perspectives.
  • Once a story crystallizes, it becomes "truth" regardless of complexity.

Stop and think about that: A couple of brief video calls gave someone enough authority to define my entire character. His story about me became more real than years of actual workRequests, Pipenv, Maya, and dozens of other tools—used by millions daily. Yet one blog post often overshadows a decade of building for humans..

But here's the deeper issue: his perspective treats exploratory calls as if they created obligations, expectations, and a relationship that justified years of reputational damage. He presents himself as betrayed by someone he barely knew, over work he wasn't doing, funded by money that wasn't his.

The reality was simpler: we had a couple of brief conversations, I decided I didn't want to work together, and that should have been the end of it. Everything else—the fundraiser, the project, the money—was my responsibility to handle, not his business to police.

This is how tech takedowns work: an exaggerated frame, a sticky headline, and an incentive structure that rewards one person's frustration while erasing another person's humanity.

The Cost of Public Conflict

When developers write about each other rather than to each other, everyone losesI've watched potential collaborators' expressions change when they Google my name. The moment of recognition, the slight pulling back—the narrative preceding any actual interaction. This is how reputations become prisons.:

  • For Individuals: One blog post can define you for years. Every job application, every conference submission, every community interaction gets filtered through someone else's narrative about you.

  • For Communities: Trust erodes as people become afraid to collaborate, knowing that any interaction could become the subject of the next public essay.

  • For Open Source: The collaborative spirit that makes open source powerful gets replaced by defensive positioning and political maneuvering.

What I've Learned

Here's what years of this have taught me:

  1. Not all collaboration works: Sometimes people aren't compatible. After our 1–2 calls, I knew this wasn't a fit. That should have been the end of it.

  2. Private resolution first: Before public statements, try direct communication. Most conflicts resolve better in private than through public essays.

  3. Proportional response: One declined collaboration doesn't require a public essay with someone's name in the title. The response should match the situation.

  4. Consider lasting impact: What gets published online becomes permanent. Consider whether momentary frustration justifies years of reputational harm.

The Narrative Weapon

There's a difference between setting boundaries and weaponizing narratives:

  • Boundary: "I've decided not to work with this person."
  • Weapon: Publishing an essay that will dominate search results for years.
  • Boundary: "This collaboration isn't right for me."
  • Weapon: Framing someone's entire character based on one interaction.
  • Boundary: "I need to protect my energy."
  • Weapon: Ensuring others see your narrative first, always.

When "transparency" becomes a tool for reputational destruction, it's not transparency anymore. It's warfare dressed up as virtue. It's violence with a PR team.

Why This Was Malicious

Let me be clear: I don't criticize anyone for choosing who they want to work with. That's normal. That's human.

But this wasn't just declining collaboration. This was manufacturing a narrative about me, publishing it with my name in the title, quoting others who never contacted me directly, and timing it for maximum impact.

This wasn't reflection. This was narrative as weapon.

Beyond Tech

These dynamics don't stop with open source. They echo everywhere:

The same structural pattern: narratives > truth.

And when narratives outweigh truth, the cost is always the same: reputations destroyed, creativity eroded, communities fractured. It's another example of when values eat their young—the very values tech claims to uphold becoming weapons against the people who embody them.

Human Flourishing

Technology is supposed to expand human possibility.

It should foster collaboration. Creativity. Belonging.

But when reputations can be destroyed by a single essay, when imagery and ideas are taken without acknowledgment, when fear replaces dialogue—then what we're building isn't flourishing.

It's fear.

And fear corrodes everything.

A Challenge to Tech Culture

Before writing that public post about someone:

  • Have you tried direct communication?
  • Is public exposure proportional to the issue?
  • Are you addressing behavior or destroying a person?
  • Will this make the community better or just make you feel better?
  • Are you setting a boundary or launching a weapon?

We're supposedly building the future of human communication and collaboration. Maybe we should stop modeling the same toxic dynamics we claim to hate.

The person who wrote about me made their choice. Brief exploratory calls = public essay. Personal discomfort = years of reputational harm. Their narrative > actual dialogue.

That was their math.

I'm making a different choice. This essay presents facts, acknowledges mistakes, and proposes better patterns. Not because I'm perfect—I'm not, as I've openly discussed—but because we have to start modeling better ways of handling conflict in tech. My experience with schizoaffective disorder has taught me that narratives shape reality in profound ways. We need to be more careful with the stories we tell about each other.


Sometimes the best response to old conflicts is to build something better. That's what I'm trying to do.

But sometimes you just need to say the quiet part out loud:

We never actually collaborated. We spoke briefly.

That's the fact that got buried under all the narratives.

And that's why I never collaborated with this person—because there was never any collaboration to begin with.