host.
Hey, welcome back to Community & Code.
I'm your host, Chris Reynolds,
and today's episode is one I've been
genuinely looking forward to.
My guest today is Juliette
Reinders-Fulmer.
She's been in the PHP and open source
world for close to twenty years,
and you've probably used her work today,
possibly multiple times, and had no idea.
That's kind of the whole thing.
The stuff that she maintains runs silently
in CI pipelines all over the world,
doing the thankless work that keeps
everyone's code from falling apart.
And most of the people depending on that
work couldn't tell you her name.
We talk about what it actually means to
give back to open source,
not in the abstract,
but with real practices,
and what happens when the people who built
the internet start retiring.
Juliette has some genuinely spicy opinions
about AI that are some of the more
coherent and technically grounded takes
I've heard on this show,
and definitely not the AI is going to
change everything in the best way possible
perspective.
We talk about her path into tech,
her philosophy on LinkedIn,
and the story of how she accidentally
became the steward of one of the most
widely used PHP tools on the planet.
This is Community & Code.
Let's go.
Welcome to Community Code.
Today on the show,
I've got Juliet Rainiers-Fulmer, who is,
I see her flinch at my pronunciation,
I'm sorry.
I'll let her pronounce it correctly.
If you have been in the open source
PHP world for any amount of time,
you've probably seen JRF,
kind of everywhere i see i feel like
i see your handle like literally
everywhere but for anyone who might not
know you juliet uh who are you and
and what do you do can i just
respond to what you just said first sure
yes a lot of the time i feel
completely invisible
And that,
because a lot of what I work on
are like the tooling people use,
which just silently run in your CI and
people don't even notice.
So I feel very invisible a lot of
the time.
So it's interesting to see that in your
perception, that's very different.
So yeah,
what I work on largely are the tooling
in the background,
things like PHP CodeSniffer, PHP Parallel,
Lint.
PHP CSU tells,
but also test tooling like PHP unit
polyfills, PHP compatibility.
There's a whole range of those tools you
use when you are coding to make sure
that your code complies with certain
standards,
can run on certain PHP versions,
can be tested on certain PHP versions,
et cetera.
So those kind of tooling is what I
mostly work on.
And you've been really,
really deep in PHP for a really long
time,
but I want to put a pin in
that and come back to it and start
off by hearing about,
I'd love for you to share how you
got interested in technology,
in computers, in software development.
What is the story that got you involved
in this stuff in the first place?
We're going back way back.
I did actually specialize in IT when I
did my business degree.
But to be honest,
I don't think anything I learned in that
specialization was actually useful.
Yeah.
So I wasn't interested in technology
anyway.
Yeah.
And then at some point I came across
this nonprofit organization and it would
have been really, really,
really hard to find them.
And we're talking nineteen ninety nine two
thousand.
So when I first met the people behind
this nonprofit, I was like,
why don't you have a website?
And they were like, yeah,
that's one of those things we still have
on our to do lists.
And I then uttered the unfortunate phrase,
maybe I can help.
Yep, yep.
Yeah.
So I've been playing around a little bit
with HTML, just experimenting,
seeing what it was.
I mean,
I used the Internet a lot in my
work already.
But that was it.
But at that time,
using the internet a lot for your work
was extraordinary already.
I was like way ahead of the curve
at that time.
So based on that,
I felt I could at least give them
some advice and help them a little bit.
And I ended up building their website and
then maintaining it for a number of years.
And that started off with HTML with SSI.
server-side includes,
something nobody nowadays has heard of
anymore.
Then changed that to JavaScript includes,
and then later added CSS.
And then at some point,
we switched towards a proper CMS.
But yeah, this was how I
got started and then starting actually
developing and contributing to open source
was like,
I was using things which were open source.
And to me,
and this is really old school maybe,
but I still feel that way.
If you use something which people make
available for free, you give back.
Whether that is by adding a translation,
or by funding the project or by adding
a new feature, I don't care.
Give back.
If you use something, you give back.
That is the premise of open source.
That's how it was built.
That was the idea of making it open
source so everyone could contribute and we
could all collaborate together.
And the fact that that isn't being done
anymore,
largely because the vast majority of users
have no clue what open source is,
let alone that they're using it,
is something which I see as extremely
problematic.
But let's talk about that later.
But yeah,
so one of the things I started doing
was contributing back,
partially by asking questions,
but then also documenting the answers,
whether it was in a JavaScript form or
translating a Firefox extension.
It was those little things and then that
sort of spirals and...
Yeah, went out of control a bit.
Out of control.
And maybe we'll talk about how in or
out of control it is currently with your
contributions.
But yeah, no,
that makes a lot of sense because for
me as well, like when I first,
like when I discovered WordPress,
the thing that kept me
like interested in using it was the fact
that there was all of this documentation.
There was like,
it was really easy to find answers to
questions.
There was back then the IRC channel that
you could drop into and ask questions.
And there is this community around it that
was really passionate and active.
And yeah,
when I felt like I knew enough stuff
or knew something,
Then I got involved in, like,
the documentation team.
I started speaking.
I started, like, you know,
writing stuff and eventually creating my
own, like, plug-ins and things.
And that's always been a thing that, like,
I mean, that just...
like, I don't even think about it really.
Like it's like, if I'm making a thing,
I'm probably making it open source.
Right.
Um, so, um, do you,
do you feel like with the growth of,
of the adoption of open source
technologies by, you know,
cause it's not just individuals that are
using it anymore.
I mean,
not that it like ever was just
individuals, right.
But like,
you know,
WordPress is forty three percent of the
Internet or whatever, right?
Like,
and a lot of that is driven by
a larger market sort of interest in using
open source as its tool,
as opposed to proprietary systems that are
closed source,
like Adobe Experience Manager,
that sort of thing.
Like,
do you see this rise of interest by
people with a lot more money than you
or me and organizations with a lot more
money than you or me, um,
contributing to the,
the dip in giving back in this,
this sort of like egalitarian,
like open source, uh, you know, community.
There is a term for it.
And that term is very apt.
It's called exploitative capitalism and
it's happening all over.
And it's definitely a part of why open
source doesn't have enough contributors,
let alone funding contribution.
I mean, on an average Android phone,
I think, seventy,
if not ninety percent of the software on
it, it's open source,
except the end user doesn't know it.
They are not being told that what they've
bought is actually
exploited on the work of on the shoulders
of people who have done this work for
free and not are not getting any money
from the fact that they're buying that
phone if you buy a car it has
coal inside and and coal is just one
example but there's so much more software
in that navigation system and in that car
system do you think those car
manufacturers give one penny back to open
source
Right.
Yes.
There is a term for it.
It's called exploitative capitalism.
And yes,
it's absolutely a large reason why open
source is struggling because the end users
don't even know they're using open source.
They don't,
they don't often don't even know what open
source is,
but they are using it every day and
they,
kind of like, oh,
but if that's the case,
then the car manufacturer will, you know,
put money towards the people who build the
software they're using and selling with
their cars.
They have that expectation and it's just
not happening.
And to me,
this is problematic and not just in the
day to day problematic.
I'm looking at the longer term future.
I'm looking at, you know, in ten,
fifteen years time,
a lot of the original open source
maintainers reach pension age.
So we're talking a significant number of
people reaching pension age or,
let's be realistic,
dying in the next fifteen to twenty years.
If we don't start training the next
generation of maintainers now,
open source is going to have a huge
problem.
because all those projects are going to go
unmaintained or semi-maintained by someone
who thinks they know what they're doing
but doesn't really.
And then we have the security issues which
get reported and
You hear what I'm saying?
Yes, yes, absolutely.
And I think this is very, like,
I have a screwball to throw in in
a second, but, like, even, like,
PHP lost its lead developer a couple years
ago, and that was a big deal, too.
So, like, this is, like,
already starting to happen.
PHP doesn't have a lead developer.
No, there never was.
Okay.
It's a group effort of a group of
volunteer maintainers
Some of them which are now partially or
completely funded by the PHP Foundation,
which is completely separate from the PHP
project, by the way.
But there is no hierarchy there.
There is a hierarchy of respect for people
who have contributed,
but there is no formal hierarchy.
There is no one voice has more value
than another.
I just want to make sure that this
is clear for people.
Yeah, no, I mean,
that's more than I know.
And that's also how it is in most
open source projects.
At some point, yes,
the people who have commit rights have a
bigger say.
But, and yeah, if you're like me,
the only one with commit rights in some
projects, that's problematic.
And I don't want to be the only
one.
I really don't want to be.
Yeah.
But a lot of projects,
including the PHP project,
have a lot more committers.
And then that hierarchy doesn't
necessarily exist.
This conversation about the maintainers
and lead developers of open source
projects sort of aging out of the system
and the need for new developers to learn
and be sort of trained up to be
able to take on, to carry the torch,
is...
It dovetails with another thing that I've
been thinking about that I'd love to hear
if you've thought about or what your
thoughts are on it,
which is the rise of AI.
Because the theory is...
The thing that I hear immediately in my
head of the answer that I would hear
from, I don't know, status quo, is like,
oh, well,
that's not going to matter in ten to
fifteen years because AI is going to write
all that code anyway.
Bullshit.
So so and and what I observe in
various places within the tech industry is
companies and maybe not so much now.
I think there is a really big move
towards this last year,
and maybe people are realizing that maybe
this this isn't quite ready yet.
But there's this idea that we don't
necessarily need to hire as many
developers because we can have
ai do the work of the junior developers
and the problem that i've been talking
about with various people and the thing
that i've been thinking about is you can't
have junior developers and have all your
senior developers be reviewing the code of
the ai if you don't hire the junior
developers to write the actual code
because they're never going to become
senior
if they never if they were never hired
as a junior yeah if you never have
you juniors you're never going to get
seniors right but there is this i mean
i i really rather we don't have a
conversation about a guy because that will
fill the rest of the time but let
me make some short statements about ai
first i'll be employed for life i will
have work for the rest of my life
Because the bugs AI creates are far more
subtle than the bugs most humans create,
which means that only real experts will be
able to find them and fix them.
And it costs a lot more time.
So I'll be employed for life.
Please do keep on coding.
I love you.
But having said that, AI,
the way it's currently trained,
It has trained itself largely on open
source code without permission.
What this literally means is if you use
AI,
you are legitimizing the theft of
copyrighted code.
For me, that is an ethical thing.
We are legitimizing theft if we approve of
AI.
Aside from that,
the AI does not take the license into
account at all.
So in PHP Coach Sniffer,
I have a very explicit section in the
contributing guide saying, do not use AI.
Unless you can guarantee that that AI has
not been trained on software which has a
license which is incompatible with the BSD
license which Coach Sniffer uses,
I cannot accept the code because
relicensing a twenty year old project
means getting permission of hundreds and
hundreds of contributors,
all of them which need to give permission
for the relicensing.
And so if something with if the AI
was trained on code which included GPL
code, GPL being a firewall license,
if that code would end up in CodeSniffer,
it would have it would literally force
Coach Sniffer to have to relicense and I
can't do that.
So this is a problem.
The second part of it is and seriously,
I've thought a lot about it and I
absolutely detest it.
The second part of it is if someone
sends me a PR created with AI,
It's very rare someone who actually knows
what they're doing is doing that.
So most of the time it's someone who
is basically saying,
I don't know what the hell I'm doing.
So I'm using AI to sort of frame
what I want.
And then you sort it out.
I've reviewed that PR as if it's someone
who actually knows what they're doing.
So I give them feedback as if they're
an equal.
they will not understand a word of my
feedback.
So they go back to the AI,
feed my feedback into the AI,
ask the AI to give me an answer.
Do you think that's a useful way of
spending my time?
I feel like I've watched meme videos that,
that, that are like this precise,
like interaction where you have like the
developer at the one computer and you tell
the developer, do this thing.
And he goes to ChatGBT and ChatGBT does
the thing and then submits the PR.
And then somebody else like looks at the
PR and like,
but the other person also doesn't know how
to write, how to write software.
So they write,
they put the PR into the AI and
then you have like just these two AIs
having a conversation with the humans as
the medium, like,
like sending the messages through like.
Which I think is the wrong way around.
Yes.
So yeah, it's a way of way.
I mean,
for me to coach an AI generated PR
to completion takes about ten times as
much time.
As if when a human would create that
PR.
Yeah.
In open source,
what's the most precious commodity?
Yeah, time.
Maintainer time.
Yeah.
Specifically, maintainer time.
What's being wasted with AI contributions?
Maintainer time.
Yeah.
If you then take that and extrapolate
this, that with AI, people can...
who are AI prompters,
not software developers, but AI prompters,
can generate far more PRs than a normal
human would do.
And every single PR needs to maintain a
time, even if it is just to say,
AI slop, reject, close.
It still takes time.
It still takes mental energy.
And it drains time.
mental energy from maintainers.
If you then say, okay,
I'm going to ignore anything that even
remotely looks like AI slop,
or I'm not even going to open the
repo to PR.
Okay, not very open-sourcey,
but say you do that,
what about security reports?
Security reports, again,
can be generated with
far more frequently and in far larger
amounts than ever before using AI.
The validity of those is barely,
most of those aren't valid at all.
But a security report cannot be ignored.
You must, as a maintainer, look at those.
That means what we're heading for is
maintainer gridlock.
Where maintainers,
instead of being able to maintain,
just have to spend all their time closing
AI slop.
That is the debt of open source.
And maybe that's actually what all those
AI companies would like,
because they are all funded by closed
source companies.
Yeah.
Sorry for ranting, but yeah.
No, it's a really good rant.
I end up talking about AI a fair
amount on this show,
and I'm always interested to hear
different voices.
And many of the people that have been
on,
I'd probably say the majority of people
that I've had as guests are very AI-yay.
So I'm very happy to have an AI-nay.
Because I feel like...
I don't know.
I definitely see the ethical concerns.
I've seen the ethical concerns from the
beginning.
You look at Dali and Dali as in
the image generation,
not Dali as in the Salvador.
It's easy to make things that look like
other things,
and it's easy to produce stuff that looks
like other stuff.
And there's, you know,
the argument within the folks that use AI
for software development is, well,
I was going to probably be doing a
Google search on Stack Exchange or
whatever anyway and copying code and half
of...
Half of open source is copied from
somewhere else anyway.
What's the difference?
But there is a really big difference,
and you bring up all the really good
points.
Licensing is one of them.
I mean,
licensing and the theft of creative works
is...
essentially like that is the model that is
that is the data set that is that
is what that is the foundation on which
all of these large language models are
built whether they're dealing with images
or text or software or whatever yeah and
and if if you let yourself be inspired
by other people's codes or even copy parts
of that code if you are a human
and you are a decent person,
you would add a co-author tag at the
bottom of your commit message and give
them credit.
And that way,
you also credit the original author,
even though you made adjustments and
adapted it for the code you want to
use it in.
You credit them,
you comply with copyright requirements,
you comply with the legal requirements.
One of the first encounters I had with
AI was actually a friend of mine who
DMed me and said, I was using,
you know, I was experimenting with AI.
We're talking two, three years ago,
very early days of AI.
I was experimenting with AI and a
WordPress plugin or something.
And they started a doc block and they
started with, I think,
an alter tag and the AI filled my
name in.
And they screenshotted that and shared
that with me,
which made both of us laugh enormously.
But it goes to show that it is
theft.
Right.
And without complying with license
requirements, just basically, yeah.
I mean, I, I have,
I have a similar,
I have a similar anecdote and then we
can shift off of AI,
but I have a similar anecdote.
Uh, I was, there's,
there's an AI platform that, uh,
does music called Suno.
And so a lot of there's, I've seen,
I watched a lot of stupid Instagram reels
where somebody would like made AI do, uh,
like a country song that was really off
the wall, like really wacky and stupid.
So I was like, okay,
how do they do that?
And I figured it out.
There's this thing called Suno.
And I was playing with it.
And I, as an experiment,
took the lyrics of Never Gonna Give You
Up by Rick Astley.
And I put it into Suno so that,
and just to see what it would do.
And, and you can, with Suno,
you can give it different genres of music.
You can, you know, do it, whatever.
And it gave back,
one of the things that it gave back
to me had the precise melody of
of the actual song.
And Suno says that they don't use real
music as their source, as their data set.
But it is not, I mean,
it's the idea that you can put a
thousand monkeys in a room and eventually
they'll write Hamlet.
Like it's that level of absurdity
To consider that there's no way that it
just accidentally stumbled upon Rick
Astley's melody, vocal melody,
without having that in the data set
somewhere.
You can have a lot of rules about
like, don't do that,
but like it has to be there somewhere.
Correct.
Yeah.
So a lot of this conversation has been
from the perspective of an open source
maintainer.
Let's switch to the things that you
maintain.
One of those things is PHPCS.
And I'd like you to talk about PHPCS,
like what the project is,
but also how you came to be the
sort of leader of this project,
because that's also its own sort of thing.
Yeah.
Well, to first answer your first question,
what is PHP CS?
Well,
PHP CS actually is PHP code sniffer and
combines two tools, code sniffing,
as well as code fixing,
the code beautifier and fixer.
So PHP CS and PHP CBF as command
line tools.
What it is,
is basically a framework for analyzing
codes.
analyzing PHP code primarily.
Originally, well,
at some point it also allowed for
analyzing CSS and JavaScript code,
but that's now been removed because let's
be fair, there are better tools for that.
And more, you know,
dedicated tools for those languages.
And when this was introduced in PHP CS,
those tools didn't exist yet.
Now they do.
So now it's time for PHP CS to
drop.
That's important for those.
So yes, we're analyzing PHP code.
That's not done by running the code.
No,
the code is literally read as if a
human would be reading it,
except it's a machine reading it.
And a human will write the SNFs,
the checks we're doing,
executing on the code,
tells the machine to say, okay,
if there is a space before it,
then we need to remove it.
Or if there is no space,
we need to add it.
And that sounds very code-styly.
And yes, it is.
That's the original premise on which
CodeSniffer was built.
Because it's a framework,
it allows for more.
And it allows for things which aren't
autofixable,
which is why something like PHP
compatibility could be built on it.
And PHP compatibility is an external
standard for PHP CodeSniffer.
So it builds on top of the framework
of CodeSniffer.
It uses CodeSniffer to be run.
But what it does is you can tell
it, OK,
I want my code to be compatible with
PHP seven point four until current.
Tell me everything you can find that is
incompatible with that.
And it's not a hundred percent.
I mean, there are changes in PHP,
which we cannot detect with this kind of
static analysis, no matter what we do.
But there are a lot of changes in
PHP, which we can detect.
Say,
seventy percent of the compatibility
things we can detect by static analysis.
And we will flag those.
And that's PHP compatibility and external
standard on top of code snippet.
So we can't fix those most of the
time because I cannot decide for you.
But I think PHP eight four,
it made implicitly nullable parameters in
function signature had to be made
explicitly nullable.
So if you had class name,
variable name is null.
that would now be flagged because the
class name type did not have the nullable
operator in front of it.
It did not allow for that null default
type.
There are different considerations on how
to fix that.
Of course you could add the nullable
operator,
but nullable operator was only introduced
in PHP seven one.
If your code needs to be compatible with,
you know,
you can't add the nullable operator.
Maybe the better solution would be to
remove the null time.
Or maybe what's allowed since PHP A two,
if you have a minimum of A two,
you could even have a new and then
the actual object and create the object as
the default value.
So there are different solutions,
and we cannot decide which solution is
best.
For code-style things,
PHP CodeSniffer and also a lot of the
external standards around CodeSniffer,
because there are quite a few,
most of those will have autofixes,
and you can just run CBF,
the code beautifier,
and it will fix your code.
There are strategies of how to do that
to still keep it reviewable.
I mean,
the patch we did for WordPress at some
point was over a hundred thousand lines of
code changed.
Maybe not the best way to do it.
Yeah, it makes life easier.
It can also find bugs.
It can find code inefficiencies.
So there's a lot it can do within
the framework of static analysis.
The one thing it cannot do,
and in those situations,
I recommend write a PHP stun rule,
is analysis cross file.
So it basically only has the context of
one file.
Right.
Which is a limitation.
But hey, within that, it can do shitloads.
Now, how did I get into it?
Well,
most likely because at some point I wanted
a custom rule,
and I kind of wrote a rule,
and God knows that's like,
years ago for a company I sometimes work
for.
And then at some point I found a
bug in the WordPress coding standards and
submitted a fix because open source.
So instead of reporting it,
I just submitted a fix.
And I'd known about PHP compatibility for
a while already and I'd been using it
and I wanted to contribute to it.
So I started contributing there.
And then when I started contributing to
WordPress coding standards and to PHP
compatibility,
I found bugs in PHP CodeSniffer itself.
So then I started contributing there.
And then I was very, very,
very shocked to discover that within six
weeks, two months of contributing.
And normally when I start contributing to
a project, I don't know,
I will start with, you know,
one or two small PRs.
Wait to see what the response is,
whether it's, you know,
whether you can actually talk and have a
conversation with maintainer to actually
get it merged or whether the maintainer
just ignores it and leaves it to rot.
So, I mean,
I'm not going to waste my time on
projects which aren't actively maintained.
In this case, they were being picked up.
They were being merged.
So then you get more PRs from me.
And within six to eight weeks time,
I was already a second most prolific
contributor to Coach Sniffer.
And that shocked me no end.
The fact that a tool which is,
I mean, I've done some calculations.
Basically,
it's used by about ten million people a
day.
The number is astronomically ridiculous.
Yeah.
And that's just a guess.
Yeah.
Ten million people a day.
And the amount of contributors is small
and that even with, you know,
I think it was ten, twenty PRs,
I was already the second most prolific
contributor is still incredibly shocking
to me.
And it's not gotten much better.
There's still very few outside
contributors and that is problematic.
I want to grow that contributor pool.
Yes, I'm an extremely critical reviewer,
but I try to explain everything so people
learn and grow,
and the next time I don't need to
explain it anymore.
And they do it right.
Yeah.
I'm not...
I have a feeling I'm not succeeding in
growing that contributing pool well
enough.
So, yeah,
originally I started contributing.
This is like...
nearly ten years ago.
I stayed next to the maintainer,
the second most prolific contributor.
At some point I was doing a lot
of the daily contributions with the
maintainer, the original maintainer,
having less and less time and less and
less interest in maintaining it because
you know, life, life happens,
different work interests,
different life interests,
and that's perfectly fair.
So in late to, in,
they messaged me and basically said,
I'm abandoning it.
And I was like, yeah,
but something that's used by this many
people on a daily basis.
I don't think abandoning it is a good
idea.
But there wasn't anyone else really who
could take over.
And I had other plans.
But yeah, as there wasn't anyone else.
So,
and at that point it shifted and it's
now a PHP code sniffer.
It now has its own organization on GitHub.
It's got its own suite of tools that
are under that organization.
Those already existed.
right right but but now they're under like
they're under a the same organization yeah
basically the project was originally in
the squiz labs organization which is a
company which is the company which
originally created it and and the person
who originally maintained it breck
sherwood worked for that company um
obviously that also made it difficult to
give anyone else commit rights because
they would need to be invited into that
company organization
But yeah,
there were some things where Greg and I
didn't always agree on how things should
go or extra tooling,
which I thought was needed.
And he wasn't so sure that was needed.
So I created that and I put all
of that in a separate organization already
when I started creating that like six
years ago.
And when I took over Coach Sniffer,
the repo didn't get moved,
didn't get transferred.
I had to fork it.
But it is a blessed fork.
So Greg has said, yes,
this is the official successor.
But forking it does have its drawbacks in
how people find the project.
A lot of people still sometimes comment on
issues in the old repo.
Or even open new issues in the old
repo.
And it's like, yeah,
did you read that bit that said this
is abandoned and moved elsewhere?
It didn't get archived.
It's just...
no but that's partially at my request and
and it might now be time to change
that uh now four point oh is being
released yeah the reason uh not to archive
it is that once it's archived you can't
comment on it right yeah yeah and if
um there were still quite a few issues
which were valid yeah or or even things
which were supposed to be addressed in
four point oh
But four point O was started in two
thousand twenty and then five years went
past and it still wasn't released.
So, yeah,
it was helpful to be able to inform
people that certain things were fixed and
in which release they were fixed or that
four point O was released at some point
and that those things
which have been long-standing issues have
been addressed you've uh since since
taking over uh really and assuming
ownership of of many of these uh things
but also just because of your active
contribute contributions across various
different projects uh i know that you've
been talking about the value of funding
open source about sponsoring development
What are the sorts of things that you
see as being sort of most important that
should be talked about more that aren't
being talked about enough that you bring
to these sort of like conference
presentations and things that you've been
going to?
We need to normalize funding open source.
I mean, I try to lead by example.
So I'm self-employed.
I have my own business.
I earn money.
And I earn money by using open source
tooling.
So every year at the end of the
year, because I'm open to Yeah,
I'm self employed,
my income in widely varies year across
year.
So I don't know what my income is
going to be.
So every year in the week between
Christmas and New Year,
I spent that week funding open source,
because by that time,
I know what my turnover was.
And I can say, okay,
I'm going to take a percentage of that
turnover and give that money to the
various open source projects,
which helped me do my job.
And I cast a very,
very wide net when I do that.
I also look at all those tiny tools
I use in continuous integration, in CI,
in the automated checks,
which most people forget because if those
tools stay silent,
you don't notice that they're running.
But I also use, you know, Irfanview,
a Windows graphic imaging program,
or I use Joplin.
And I fund those projects too.
I use Mastodon for communication with a
number of people.
I fund those projects too.
So I cast a very wide net and
I try to give all the projects which
were valuable to me,
which I didn't actively contribute to with
code.
I try to give them some money.
And I think things like the open source
pledge,
where companies pledge to spend a certain
amount of money for every employee on open
source,
are good initiatives and they should be
followed.
Every company using open source should do
this.
And we should also talk when we talk
with customers about, you know,
we're going to build your website based on
WordPress or we're going to build your
website based on Drupal or we should also
have a line item in the proposal and
in the invoice.
Five percent for open source.
To fund the project on which you've built
the project.
Yeah.
We need to normalize this.
Yeah, no, I totally agree.
And it's been frustrating for me
specifically within my own organization
trying to sort of like rally that flag
of... And it's not like it's not known.
It's not like we don't know and aren't
aware that...
a lot of the technology that builds the
thing that we built an entire platform on
top of is built on top of open
source and that we should be giving back.
It's just,
it never gets prioritized the right time
or like, you know,
Realistically,
like there's one person who's the champion
and then that person moves on to another
company and then nobody carries that flag.
And then that I mean,
and then everything just sort of sort of
dwindles.
And it's it's frustrating that it's it's
it it's such a hard conversation to have.
I keep repeating the term exploitative
capitalism.
Yeah.
And I mean, I know it's hard.
I mean,
I have a pretty good view of all
the things I use.
But I also know that a lot of
companies don't have that.
So there are tools which can help with
that.
There's Tidelift.
which can help distribute based on the log
files in your project.
There's ThanksDev,
which does a similar service.
Even GitHub Sponsors allows to say, okay,
check my projects,
check which projects out of all the
projects I use can use funding and will
be able to give you some clue of
where your money should go.
I'm not saying those projects are perfect
because they will still miss a lot.
They will miss the fact that I use
Joplin on my desktop, for instance.
Just as an example,
but they can definitely help at least get
started.
And getting started,
once you start giving to open source,
it becomes something which you can have a
conversation about, OK,
but are we funding that project or hang
on,
we are actually
well basically maintaining that project so
maybe we should fund that project but
because we're maintaining it yeah yeah and
then the conversation shifts to where the
money should go instead of whether money
should go down
Well, thank you so much, Juliet,
once again.
I'm so happy to have you on.
For anyone on the internet who might be
interested in the stuff that you're
working on or finding you wherever you
might exist on the internet,
where can people find you?
Yeah.
Primarily,
if you were interested in what I do,
go to GitHub,
github.com and then slash JRFNL.
That's me.
If you want to follow me on social
media, you can.
I'm on Mastodon,
and that's obviously one of those
addresses which people need to spell out.
So maybe you can post them in the
show notes and I will send you a
link.
I'm also on Xstill.
I don't post much on X at all
anymore.
because everyone I follow has moved to
Mastodon,
but there are still quite a lot of
people following me on X,
which is why I still post notices about
releases and such on X. I'm on LinkedIn.
Again, welcome to follow me.
Do not send me a link request unless
I know you.
That's a, that's, that shouldn't,
that shouldn't be an uncomfortable thing
to ask.
That is the thing that,
that is the rule that I have abided
by for most of the, I don't know,
time that I've used LinkedIn.
Like if I,
if I have not met you or do
not know in what context, because I, and,
and I'll, you know,
this is a total tangent,
but
When I started coming up with that rule,
it was when I was doing Pluralsight
videos.
And what would happen is people would find
my Pluralsight courses and then they would
want to connect with me on LinkedIn.
And at the very beginning,
I was naive and I was like, oh,
build your network, whatever,
more people is better.
because maybe I'll get connected to
somebody and that'll lead to something and
who knows what.
But what it actually meant was now that
I have this connection with this person,
they can ask me support questions about
the thing that they're building or the
class that they've taken that I did,
which was not really the intent.
What I also found is that especially
headhunters would try to then exploit your
network.
And I see myself
as the gatekeeper for my network.
I want to protect the people in my
network from being harassed.
So only people I've met get access to
that.
And yes,
I've done a Pluralsight course as well,
so that's interesting.
Well, again, thank you, Juliette,
for coming on.
And for everyone else on the internet who
may be finding or watching this,
thank you for watching.
Thank you for listening.
And we'll see you on the internet.