Skip to content

Instantly share code, notes, and snippets.

@aaronmdjones
Created May 19, 2021 10:20

Revisions

  1. aaronmdjones revised this gist May 19, 2021. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions freenode-resign-letter.txt
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@
    ```
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512

    @@ -380,4 +379,3 @@ kCVrNzK1NKPmBchnu8Yhf2h0RcAUL3euK31w2Cw7hYF4qwa4ZIybycmZtgJrRdQZ
    TwbnCkFPkIbP7slmQ1iTWislhjSfsc+3yvexM/2XY4yLoL8up8o=
    =uJP8
    -----END PGP SIGNATURE-----
    ```
  2. aaronmdjones created this gist May 19, 2021.
    383 changes: 383 additions & 0 deletions freenode-resign-letter.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,383 @@
    ```
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512

    My resignation from freenode staff
    ==================================

    I joined the freenode staff in March 2019 [1].

    Before I joined the staff, Freenode Ltd was sold [2] to a person named
    Andrew Lee as part of a sponsorship deal. The informal terms of that
    arrangement, discussed with staff and users at the time, included that
    Andrew would neither obtain nor exercise operational control over the
    network, and that it would continue to be run independently by the
    volunteer staff, and this was communicated to users clearly [3].

    What has become clear to us in the last few days is that we were lied to,
    by both Andrew and christel. Contrary to public and private statements, the
    sale included the network as a whole, something christel should not have
    had the ability to relinquish, as most of the infrastructure is not owned
    by her or any of us. However, Andrew has more money than us, and so we
    cannot fight this.

    It should have been disclosed to us, and you, that for the last 3 years (and
    then some), we have not in fact been working with a team of volunteers, but
    rather that we have collectively all been doing unpaid work for a company.


    Timeline of critical events:


    1) In early 2021, the freenode website was altered to begin prominently
    mentioning Shells, a company that Andrew co-founded [4].

    This was not discussed among staff at the time. This caused some
    disruption and considerable confusion among staff for months afterward,
    as to how to handle user inquiries about it, of which we received many.

    Ultimately, christel chose to resign rather than explain the situation to
    us.

    As an addendum, this is *extremely* irregular. All website advertising is
    usually only found at [5].


    2) In early April 2021, Andrew insisted that we remove a blog post [6],
    which was created after christel's resignation. This was also not
    discussed. I cannot give an accurate timestamp because the history of the
    website was rewritten to never contain the blog post in the first place,
    so there is no commit removing it.

    The blog post outlines a change of leadership, as we, the collective
    staff as a whole, decided that we needed a new head of staff, and we
    elected tomaw to that position.

    Andrew should have no right to be concerned about who we put in charge,
    as it was promised that he would be hands-off and let us continue to run
    the network as we always have.

    The blog post also outlines that we were continuing to develop a
    replacement IRCd, Solanum [7], which we started back in September 2020.

    Before September 2020, the development effort was being spent on upstream
    Charybdis instead, since at least December 2019 (see [8] through [41] for
    details, inclusive), with edk (head of our development team) doing almost
    all of the work. The intention was that freenode would be migrating to
    Charydis when it was ready. That plan fell apart because of unrelated
    drama, and Charybdis was forked (again) at that point.

    The work being done on Charybdis, and Solanum since, was in an effort to
    make the network easier to administer, and allow for the implementation
    of new IRCv3 features, such as message IDs (necessary for message
    editing and deletion) and BRB/RESUME support.

    If Andrew had concerns about what we were doing with the IRCd, he has had
    since December 2019 to raise them. I can confidently say we've heard
    nothing on that front, except wild delusions, such as that we were doing
    this to merge with OFTC, which is frankly prepostorous.


    3) In the final few days of April 2021, the freenode testnet (which was
    being used to ready Solanum in preparation for the network's migration to
    it) was shut down, again without discussion.

    Attempts to discover a reason why were met with silence. Tom has not been
    able to talk about it, but I strongly suspect that Andrew is behind it,
    and given Tom's silence on the subject, I suspect Andrew used the threat
    of legal force to ensure it. I have also heard rumours that a gag order
    was sent to a large collection of OFTC staff, of all people? I cannot
    state concretely whether that is the case, but it would not surprise me.

    While I have not had much interaction with the IRCd side of things beyond
    code review, with my development focus being on services instead [42], I
    have submitted pull requests to improve it [43]. I was also one of the
    Charybdis IRCd maintainers [44], of which Solanum is a fork. Seeing this
    effort just disappear, and seemingly the entire line of Charybdis
    development as a whole, is highly discouraging.


    4) At the same time as the testnet shutdown, Andrew registered the channel
    "#freenode-board" for unknown reasons, without prior discussion.

    This was in the wrong namespace [45], as he was not a freenode group
    contact, nor was he authorised to act on behalf of the freenode project.

    However, we do not routinely enforce that only group contacts can
    register channels in the primary namespace, and to make an exception in
    this case would be counter-productive.


    5) An associate and employee of Andrew, Shane Allen ("rdv" / "nirvana"), was
    observed boasting on another network that they were soon going to become
    a member of the freenode staff, which was unknown to freenode staff at
    the time.

    We elect staff members at our own discretion, and always collectively
    discuss it first.

    A few weeks later, they were also observed asking around for volunteers
    to join freenode staff, an act which they did not have the capacity or
    authorisation to do.

    Finally, they attempted to bribe a prominent network user (and former
    staff member) into joining their cause [46][47].


    6) Andrew wrote the following message in the official network support
    channel:

    2021-05-11T17:54:16Z <rasengan> Hey Freenode Staff! Hope you're well. A
    message from the official board of Freenode Limited, owner of the
    freenode IRC network: kevinp is in charge of infrastructure and has
    been legally resolved into this position by the board of Freenode.
    Please work with him to get his access and credentials in place
    smoothly.

    This is as clear a violation of the agreement as any of the incidents I
    could have written about.

    This was followed by this private message to myself:

    2021-05-11T17:56:28Z <rasengan> Hey there, please review my message in
    #freenode -- this is an official notice from the board. Compliance is
    requested.

    This is odd, in that I do not have, nor have I ever had, the credentials
    and privileges necessary to act upon it, something he should have known.
    I've made it no secret that I am not an especially-privileged staff
    member.

    But to make this abundantly clear: Even if I could comply, I would not.
    It is not at all clear that he is entitled to access to any of our
    servers or user data, and he had repeatedly refused to provide proof of
    this when asked to do so.

    With these circumstances in mind, giving him (or his designated
    representatives) access would violate the trust of all of our users, and
    would also be illegal in many of the jurisdictions in which we operate.
    The founder of an information technology company should know this.

    After Tom was forced to burn thousands of pounds of personal money in
    order to respond to Andrew's attorneys, they *eventually* provided a
    sale contract (which I have not seen). The legal opinion is that the
    contract is valid.

    By the way, when he mentions "the board of Freenode", he really just
    means himself. This kind of toxic self-aggrandisement is most unwelcome.


    7) Andrew then followed on with these messages, again to the official
    network support channel:

    2021-05-12T16:18:27Z <rasengan> Hi Staffers - wanted to write you all a
    thing trying to clear up the lies going around recently, but dont want
    to flood, so:

    2021-05-12T16:18:28Z <rasengan> Message regarding recent events at
    Freenode:
    https://gist.github.com/realrasengan/88549ec34ee32d01629354e4075d2d48
    and Message received from tomaw:
    https://gist.github.com/realrasengan/f569c5e4727d21eb939fff99cb9dc84c

    2021-05-12T16:18:28Z <rasengan> Thanks for taking the time to fully
    understand the truth.

    None of us responded to this, as Tom was in consultation with lawyers at
    this time, and we received advice to not interact.

    The claims laid out in the first link are as follows:


    A) "Shells sponsors freenode providing 3k/mo"

    This is the first we're hearing of any money being involved.

    Furthermore, since Andrew is the only person left in the company,
    isn't he sponsoring himself? I'm sure there are interesting tax
    implications in that ...


    B) "Tomaw's team attacks christel [...] and she resigns, unable to deal
    with the persistent harassment"

    I was a first-hand observer to her departure. This is entirely
    false. She left us with a 14-paragraph e-mail about it, and signed
    off with us on good terms at the time.


    C) "Rather than allow for a usual grace period after resignation [...]
    Tomaw's crew abruptly cuts christel's access"

    There is no usual grace period. When a staff member resigns, their
    credentials and privileges are revoked. This is just good infosec
    hygiene, and is yet again something that an information technology
    company founder should be capable of grasping.


    D) "Rather than wait until we speak again, Tomaw turns around and
    changes up the staff and website."

    Tom didn't do anything. We, the staff as a whole, collectively
    decided that we needed a new head of staff after christel's
    resignation, and we chose Tom for that position.

    Furthermore, the only website change was the innocuous blog post
    that he insisted we remove, and it wasn't written or published by
    Tom; Fuchs is our community and social outreach person, and they
    authored and published that post. This is indicated on the post.


    E) "Given the millions I have injected into freenode thus far"

    I cannot keep a straight face while reading this. The server
    hardware is sponsored free of cost; we will occasionally receive an
    invoice for $0, but that's only because of how the accounting
    systems at some of our sponsors operate. I can't possibly imagine
    that the few freenode live conferences cost more than 50k; and all
    of the other miscellaneous expenses (like the renewal costs for the
    domain names) are well under a few hundred pounds per year.

    Anything he would have donated before Freenode Ltd's acquisition is
    unknown to me, but that would have been from the position of a
    benefactor, not a supposed owner. To try to twist this in his favour
    in this manner turns my stomach.

    In the interest of full disclosure (something Andrew appears not to
    be capable of [48][49][50][51][52][53][54]), I did receive a
    reimbursement in the amount of £41.99 when I joined freenode staff,
    to cover the cost of a hardware multi-factor authentication security
    token. This was used for, among other things, securing access to our
    GitHub organisation. This money was provided by christel [55]; where
    she obtained it from, I do not know. This is the only money that I
    have ever seen, let alone received, that is in any way related to or
    connected with freenode.


    2021-05-12T16:33:17Z <rasengan> As I'm sure you have taken the time now
    to digest the messages -- as you all know, I am the man of second,
    third, and infinite chances. I love this world, I love freenode and I'm
    going to continue doing everything I can to stay true to who I have
    strived to be. This won't make me waiver. If any current or former
    staff wishes to talk this through, don't hesitate to send me a message
    privately. I believe a lot of what's happened here is forgivable and I
    am more than willing to give second chances and move on. If you would
    love to keep freenode running, we would love to have you. Please let me
    know!

    Andrew, we do not need your forgiveness, for we have done nothing wrong.



    This situation is intolerable, and I suspect it is only going to get a lot
    worse in the immediate future.

    The freenode user base should consider very strongly that a hostile entity
    is now in operational control over the network, and is in posession of your
    data.

    Given the bad faith on the part of Andrew & christel (not disclosing to us
    the nature of ownership of the network, not providing a contract of sale
    until forced to do so, public inflammatory statements and lies about staff
    on the part of the former, etc.) I hereby resign from my volunteer position
    with freenode staff, with immediate effect. I am not willing to work under
    Andrew Lee.

    To the remaining staff; it has been wonderful to know you all, and work with
    you these last few years, and I hope to join you in future endeavours.

    Please perform the usual immediate revocation of my staff credentials and
    privileges across the network, the webserver, and the GitHub organisation;
    and remove my subscription to the staff mailing list. I promise to not whine
    publicly about it.



    As a parting gift, I leave you all with this little nugget:

    2021-03-15 21:21:47 <rasengan> I have not, am not, and will not interfere
    with the operations of freenode outside of when asked for help



    Sincerely,
    Aaron Jones (amdj)
    Former freenode staff / Development Team
    PGP [56]: 97D5 8E60 7188 C8C9 8648 1CB7 6A2F 8980 0051 9052



    [1] https://github.com/aaronmdjones?tab=overview&from=2019-03-25&to=2019-03-28
    [2] https://find-and-update.company-information.service.gov.uk/company/10308021/officers
    [3] https://web.archive.org/web/20170412203731/https://freenode.net/news/pia-fn
    [4] https://www.shells.com/l/en-US/team
    [5] https://freenode.net/acknowledgements
    [6] https://web.archive.org/web/20210423231439/https://freenode.net/news/freenode-reorg
    [7] https://github.com/solanum-ircd/solanum
    [8] https://github.com/charybdis-ircd/charybdis/pull/298
    [9] https://github.com/charybdis-ircd/charybdis/pull/299
    [10] https://github.com/charybdis-ircd/charybdis/pull/300
    [11] https://github.com/charybdis-ircd/charybdis/pull/301
    [12] https://github.com/charybdis-ircd/charybdis/pull/302
    [13] https://github.com/charybdis-ircd/charybdis/pull/303
    [14] https://github.com/charybdis-ircd/charybdis/pull/304
    [15] https://github.com/charybdis-ircd/charybdis/pull/308
    [16] https://github.com/charybdis-ircd/charybdis/pull/313
    [17] https://github.com/charybdis-ircd/charybdis/pull/315
    [18] https://github.com/charybdis-ircd/charybdis/pull/316
    [19] https://github.com/charybdis-ircd/charybdis/pull/317
    [20] https://github.com/charybdis-ircd/charybdis/pull/319
    [21] https://github.com/charybdis-ircd/charybdis/pull/320
    [22] https://github.com/charybdis-ircd/charybdis/pull/321
    [23] https://github.com/charybdis-ircd/charybdis/pull/322
    [24] https://github.com/charybdis-ircd/charybdis/pull/326
    [25] https://github.com/charybdis-ircd/charybdis/pull/327
    [26] https://github.com/charybdis-ircd/charybdis/pull/328
    [27] https://github.com/charybdis-ircd/charybdis/pull/329
    [28] https://github.com/charybdis-ircd/charybdis/pull/330
    [29] https://github.com/charybdis-ircd/charybdis/pull/333
    [30] https://github.com/charybdis-ircd/charybdis/pull/334
    [31] https://github.com/charybdis-ircd/charybdis/pull/335
    [32] https://github.com/charybdis-ircd/charybdis/pull/336
    [33] https://github.com/charybdis-ircd/charybdis/pull/338
    [34] https://github.com/charybdis-ircd/charybdis/pull/344
    [35] https://github.com/charybdis-ircd/charybdis/pull/345
    [36] https://github.com/charybdis-ircd/charybdis/pull/346
    [37] https://github.com/charybdis-ircd/charybdis/pull/347
    [38] https://github.com/charybdis-ircd/charybdis/pull/352
    [39] https://github.com/charybdis-ircd/charybdis/pull/353
    [40] https://github.com/charybdis-ircd/charybdis/pull/355
    [41] https://github.com/charybdis-ircd/charybdis/pull/359
    [42] https://github.com/atheme/atheme/graphs/contributors
    [43] https://github.com/solanum-ircd/solanum/pull/116
    [44] https://github.com/orgs/charybdis-ircd/people
    [45] https://freenode.net/kb/answer/namespaces
    [46] https://twitter.com/ariadneconill/status/1392995496403341313
    [47] https://distfiles.dereferenced.org/stuff/nirvana-log.txt
    [48] https://news.ycombinator.com/item?id=25575227
    [49] https://news.ycombinator.com/item?id=25892692
    [50] https://news.ycombinator.com/item?id=26332711
    [51] https://news.ycombinator.com/item?id=26357681
    [52] https://news.ycombinator.com/item?id=26443975
    [53] https://news.ycombinator.com/item?id=26570656
    [54] https://news.ycombinator.com/item?id=26879957
    [55] https://imgur.com/a/UNlVRkI
    [56] https://keys.openpgp.org/vks/v1/by-fingerprint/97D58E607188C8C986481CB76A2F898000519052

    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEEC4pX0E/RcMwy4/jVUMJbpZCuerQFAmCk41MACgkQUMJbpZCu
    erT8ow//Zdez9t9HcMWbjnMebkVSVvVdOl37e/PLxNsk5YWVPoU1AVVt4gSDwHij
    Qu+M2Uzvmeu4lwJn7h9V5fHxF2N67LhXXqd3zmxmAMKDT/IGDtto9AUDzpIUIC/q
    TIormTxm6SE4Fn2lwY+fQsv+ayVzUftqJjT9Oh6SDjrcDuJe65Ohuj5CCL/X2IpV
    KrRsg2axO2qv9Df7vK9j1wfjnOjthl90f5mBhfs47tSmf9qhjGKvddH5UBTv/YeP
    f8hwsjy0z8TLByOo2py5CG7rAEwwG1ruNTWH+R49Ic0FI29CXH1dRVel0z0Yng9r
    T1hxZoSf68GiQqzIaQTfAtXf/rrVOrtl0r5ircgUT/cTmwiYsqDcRj9iPlGQJH+5
    3BiuNW5yBSiryAfg5U6na8y5O8PJ4il/URocQxA5onUTscopdyj3foICFP0I10fU
    v1mTbLjvi9nh/50wiKdt+EI/KvZcMGpdgILPolhQZGaf1IJtSyNvPmo9Axw242J/
    kCVrNzK1NKPmBchnu8Yhf2h0RcAUL3euK31w2Cw7hYF4qwa4ZIybycmZtgJrRdQZ
    1wRRiKMyRO8/UNdH4bhJQz+nj4uWsCZ3V+vXHtb2bMfRrN+LWjy9Yjg4zNlYIOYa
    TwbnCkFPkIbP7slmQ1iTWislhjSfsc+3yvexM/2XY4yLoL8up8o=
    =uJP8
    -----END PGP SIGNATURE-----
    ```