Skip to content

Instantly share code, notes, and snippets.

@aaronmdjones
Created May 19, 2021 10:20
Show Gist options
  • Save aaronmdjones/1a9a93ded5b7d162c3f58bdd66b8f491 to your computer and use it in GitHub Desktop.
Save aaronmdjones/1a9a93ded5b7d162c3f58bdd66b8f491 to your computer and use it in GitHub Desktop.
My resignation from freenode
-----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-----
@doczkal
Copy link

doczkal commented May 22, 2021

Thanks for the heads up and I wish you all the best for the future.

@Romulus968
Copy link

"I believe a lot of what's happened here is forgivable and I am more than willing to give second chances and move on."

That sentence says everything I need to know about Andrew Lee.

@sudoharshita16
Copy link

Good

@unsurethinker
Copy link

Thank you for the details and the timeline! It helps a lot in understanding what happened and why you left.

Just curious... When did you decide to leave Freenode and start another IRC network? And what happened on that date to cause that decision?

@aaronmdjones
Copy link
Author

aaronmdjones commented Jun 2, 2021

Just curious... When did you decide to leave Freenode and start another IRC network? And what happened on that date to cause that decision?

When we started to see the writing on the wall, some of us formed the replacement network with the intention that we would migrate there if the worst-case were to happen: us being unable to wrest control of the network back to where it should have belonged: with the network's staff. That eventually became the reality, so we opened the replacement network to the public on the 19th of May.

@unsurethinker
Copy link

When we started to see the writing on the wall

What was that? Was that some specific action, that made you think about the worst case for the first time?

@aaronmdjones
Copy link
Author

What was that?

I don't recall precisely; it would have been some time in the middle of April. I don't retain channel logs, and I disconnected from freenode last week, so I have no channel buffers to scroll back through.

Was that some specific action, that made you think about the worst case for the first time?

It was when it became clear that Andrew had some kind of legal claim to the domains, and we weren't comfortable with that. In the event that he started trying to press for control we wanted somewhere to go.

@Algorithmus
Copy link

I found the post that got removed.
https://web.archive.org/web/20210420073548/https://freenode.net/
If you look on the may entries, you don't see it anymore; just the previous entry from January.

It's that one, isn't it? So that would be April 18th.

@ansiwen
Copy link

ansiwen commented Jun 12, 2021

@aaronmdjones

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.

If you compare https://freenode.net/people from Dec 25 and Apr 23 you can see that this is not true. Actually all four team heads have been replaced with other names, not only christels, and the following text has been modified.

Can you comment on that?

NB: I'm not affiliated with any side in this conflict. I just want to understand what happened.

@aaronmdjones
Copy link
Author

aaronmdjones commented Jun 12, 2021

Can you comment on that?

I was talking about the changes made since Andrew's first conversation with tomaw (EDIT: Because that's what Andrew was complaining about). Naturally, christel would have been removed, as she resigned. That was before all this kicked off.

@RokeJulianLockhart
Copy link

Volunteer work without pay for a company without any knowledge of such is not new: http://blog.jwf.io/2020/04/open-source-minecraft-bukkit-gpl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment