Back to Blog

I Shipped a Fix. The PR Got Closed. And That's Exactly How Open Source Works Sometimes.

·2 min read
open-sourcesoftware-engineeringcareer

Recently, I worked on an open-source contribution where I:

  • Fixed a real production issue
  • Added unit tests
  • Handled edge cases
  • Opened a clean, production-safe PR

…and it still got closed.

Not because the code was wrong.

But because product + growth decisions beat engineering.

That's open source in real companies.

PR for context: trigger.dev#3014

The Problem

The issue looked simple:

  1. A user deletes their last organisation
  2. …but they still receive marketing emails.

Root cause: Their contact remains in Loops (the marketing platform).

From an engineering perspective, the solution felt obvious: if a user has zero organisations, remove them from Loops.

So I implemented exactly that:

  • Added deleteContact() to LoopsClient
  • Wired it into the org deletion flow
  • Guarded it so it only runs when the last org is deleted
  • Treated 404 as success (contact already gone)
  • Added unit tests
  • Covered edge cases

Clean. Deterministic. Production-safe.

The Result?

PR closed.

Not due to code quality. The maintainer explained:

  • Deleting an organisation is not the same as deleting a user.
  • Marketing should be tied to the user, not the organisation.
  • They don't yet have a full automated account deletion flow.

And then the most startup sentence ever:

We currently do this manually when users contact us.

What Actually Happened

I assumed: System exit → no more emails.

They're operating on: Org deleted ≠ user deleted ≠ lead lost.

This wasn't an engineering disagreement. It was a product + growth decision. Classic SaaS.

Important Distinction

This wasn't a bad PR. This was a product decision override.

The code was fine. Tests were there. Edge cases handled.

But the funnel mattered more.

The Real Win

Even without a merge, I gained:

  • Experience navigating a production codebase
  • External API integration
  • Testable client abstraction
  • Edge-case driven design
  • Maintainer feedback
  • A glimpse into startup product reality

That's value.

Takeaway

Open source isn't just about code.

Sometimes you learn:

  • How GDPR gets postponed
  • How growth beats engineering
  • How a "bug" can be intentional behaviour

And that's part of the journey.


TL;DR: I fixed the bug. The PR was closed. It was a product call. Still 100% worth it.