Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Olivia (00:00):
Hello, and welcome to
the Router, the official podcast
of the UQ Computing Society,where we explore the human side
of tech.
I'm your host, Olivia.
And on this week's episode,we'll be talking about open
source programming.
Katie (00:22):
Hi, I'm Katie.
I am currently a director of thePython software foundation, and
I've got, I want to say five orsix years now of active, open
source contributions in thePython and Django ecosystem.
Olivia (00:43):
So what got you started
there or six years ago.
And what got you interested?
Katie (00:48):
So I graduated many years
ago and I've been in industry
for a bit, but it was very muchlike I graduated with a bachelor
of information technology fromGriffith.
I did a whole bunch of differentjobs around just sort of
programming that it wasn'treally like fun programming
(01:09):
stuff.
It was just whatever job,whatever tech stack was there.
It's, okay, I'll do this for afew years.
And then I find something else.
And then I got to a job where Iwas in an engineering department
and the engineering manager atthe time said, we're going to
build this o pen s ource productand we're going to write papers
and give conferencepresentations on it.
(01:32):
And at that time, like I knewthat GitHub was a thing.
This is going back.
U m, I w ant t o say 2013, soquite a number of years ago, but
we started working on GitHub inthe open, u m, doing our normal
day to day stuff where everyonecould have a look at what was
(01:53):
going on.
And so that was a reallydifferent way of working.
And so I started connecting withpeople like, u m, like seeing
regular people pop up indifferent places on GitHub, and
then finding out that there wereconferences for this stuff and
attending those and it sort ofsnowballed from there.
(02:15):
And now I'm serving on the boardof a foundation that keeps P
ython going and I've served on,u h, the Linux Australia board.
And I served on the D jangosoftware foundation board.
U m, yeah, I think snowball isdefinitely the, u h, right
analogy here.
Olivia (02:36):
Um, sounds cool to be a
part of all of these incredible
projects too.
Like what what's kept youinterested, interested, I
suppose, like with the, is itthe switching projects, like,
uh, being part of new projectswhat's, um, kept you involved, I
guess if you previously switchedaround a little bit with like
tech stacks
Katie (02:55):
What kept me around is
the community Django definitely
has a unofficial motto of, um,come for the code stay for their
community.
Uh, Django for listeners is, isa web framework built on top of
Python, uh, that a whole bunchof places use such as Instagram
(03:16):
and Eventbrite, um, and a fewother, uh, bigger companies.
It's sort of, it's like Python'sversion of Ruby on rails.
If that's familiar, it's a veryrobust framework for building
complex web applications.
Um, but the community aroundDjango as a subset of the Python
(03:38):
community is absolutelywonderful and amazing.
And I actively want to keepworking in Django and Python
stuff because it means that Iget to hang around with awesome
people who are wonderful to bearound plus or minus actually
getting to see these people inperson because you know, we're
all indoors right now, but
Olivia (03:59):
Yeah.
Cool.
So I guess like working on theseprojects and having them be open
source versus just closed source, uh, what do you feel like is,
I guess the best benefit ingeneral, both on like your side
as like developer and like, justto the wider community,
Katie (04:16):
When you're working on
closed source things, you often
have to re-engineer everythingyourself or, um, you just don't
have the tools.
So if you're working in certainecosystems, you have like a
black box of a product that youjust have to try to fine tune to
(04:37):
meet your needs in open source.
You can see exactly what's goingon.
You can take the entire productand change it.
You can, uh, work from otherpeople's examples and you can
develop a whole lot faster.
You also have the opportunity tocontribute back.
(04:57):
Um, it's a little bit of a mindmelt where you realize that you
took a copy of someone's projectand changed it, but you actually
only changed two lines and itwould help the project in
general, if you were to putthose back into the main
product, and then your changescan be used by everyone, without
them having to go off and do themanual change, but it's just
(05:18):
like the next person thatdownloads it gets your fixes.
And it's that constant evolutionof products where it's not
determined by how expensive itis or how accessible it is
because it is accessible andit's free, and it is supported
by hours of volunteers just likeyourself.
(05:41):
So putting it back bit of timeback into the projects that you
use, help them continue.
And that's the first time you gothrough this, it's a bit of a
mind meld.
And so trying to explain that topeople, it's like, the first
time you go through it, it'slike, Oh, wow.
And then you kind of get it.
Olivia (06:01):
Yeah.
So I guess talking a little bitmore about the first time.
I know a lot of people can feela little bit daunted working on
open source projects, becausethey do have such a large scale.
Uh, like you said, such a largescale team of people working on
them.
How would you suggest peoplekind of start out on an open
source project?
(06:22):
Um, as, you know, just likeanother programming project for
them,
Katie (06:28):
This is where opinions
are going to differ.
Um, there are efforts likeHacktoberfest and other sort of,
um, let's all contribute to opensource that can seem like it is
an invitation to just mass spamprojects.
(06:50):
And there has been some pushbackfrom open source maintainers
about that.
Like a set month of the yearthat will just be people trying
to complete their mandatory fourpool requests to get a t-shirt.
But the top 1% of open-sourceprojects by popularity, uh,
(07:12):
very, very large, but there isstill the 99% of projects that,
uh, one or two people thatreally just want someone to come
in and help them out with theirproject.
Like they have pull requeststhat are actively saying first
time is up for grabs findingthese projects is hard.
(07:33):
Um, the motivation for why youwant to get into open source is
going to be one thing, but whichprojects you help out with is
going to be another.
Um, so just trawling GitHub forquestions, for, uh, open offers
for like, Hey, first time aswelcome up for grabs.
Like that might not be what youwant to do, but if you were say
(07:56):
working on a hobby project orworking on a uni project or
something, and you end up usingone of these packages or
projects, and you see that theyare asking for help, that would
be a way that, um, you have somefamiliarity with the project as
a user.
So why not contribute back?
So it's finding those thingsthat you're comfortable with and
(08:18):
, um, maintainers often, uh,overloaded and overburdened.
So they want help, but alsothey're overloaded and
overburdened.
So it's hard for them sometimesto be able to dedicate the time
to help new contributors intothe projects.
So, um, if you're going tocontribute to something, read
(08:38):
their documentation, read theircontributor guide, make sure
that you are, uh, working withinwhat structure the project
wants.
So if they want people todiscuss on, say a discord or a
Slack first, or they want peopleto discussing issues first, or
they're just like, send us allthe pull requests, we want all
(09:01):
the pull requests, just makesure that you look and check how
you're expected to behave inthese individual projects,
because every single project isgoing to have something
different.
A lot of them have a standardway of doing things, but a lot
of the more evolved projectswill have, um, different ways of
(09:22):
interacting.
And you really want to make surebecause all these people are
volunteers.
You want to make sure you'regetting up, getting off on the
right foot.
And at the end of the day, youwant to make the project better.
They want to make the projectbetter.
So making sure that you're allworking from the same set of
guidelines is super helpful.
Olivia (09:44):
That's, that's, that's
really good advice.
So I guess, like on a kind ofrelated note, what have been
your favorite open sourceprojects to work on?
Katie (09:53):
That is a big question.
I mean, so back in the day Imade the mistake of giving a
lightning talk at a conference,a lightning talk, being a five
minute talk, very short, you cansubmit the talking proposal and
(10:13):
presented on the same day.
And back at my, the firstconference I ever spoke at, I
made the mistake of giving alightning talk, saying, I want
to make a open sourcecross-stitch app.
And I will present my resultingproject, uh, here at this same
(10:35):
conference the next year thatdidn't happen.
But what did happen is now Ihave a, uh, fairly robust
project that does cross-stitchcharts.
Like you upload it image, and itwill make a chart that you can
make into a cross-stitch likethe stabby and the wool and the,
(10:58):
like the grandma knitting kindof things.
Um, but that project issomething I started, but I've
also now got a stitching circlethat we're all making the same
design using artwork fromanother person put into my app
and all this current is opensource.
(11:19):
And so I've given presentationson this.
Somebody else has given apresentation on like, uh, some
of the usability aspects of mything.
And it's this you can do, youcan write open source for things
that aren't also open source.
Like you can actually do thingslike art.
Um, so that's been really funand, uh, I I'm sure I'll, but
(11:41):
it's those kinds of things wherethe code is just one aspect of
the project.
Um, you end up getting like anart out of it or ended up
getting something else.
Um, it's very fun.
I met an alpaca pharma throughthis project.
That was cool.
Olivia (11:59):
That's pretty cool.
Yeah.
I guess as a source of, um,materials,
Katie (12:05):
Complete tangent, there's
an entire ecosystem of different
companies that produce thedifferent colors that you use.
And so having to map the colorswith computer colors is hard,
but our pack is like, normally,unless you dyed the wool, the
natural fibers don't have an RGBvalue.
(12:27):
So it's like there's an entirescience around trying to match
colors.
Um, but there is a standardalpaca palette that my project
now uses as a estimation of whatyour final result will look
like.
Olivia (12:41):
Nice.
Alpaca estimation.
What a fun like pool requeststhat would have been.
Katie (12:47):
It was very fun.
Olivia (12:50):
Did you get to get some,
a firsthand experience with the
alpacas just to make sure thosewere right?
Katie (12:56):
Uh, sadly not because
we're all inside, but one day,
hopefully,
Olivia (13:02):
Hey, it's say that, that
was a very lovely answer kind of
on that note.
So you developed your own opensource project.
How did you find that experienceand how would you, like, how
would you like pass on yourlearning starters?
Katie (13:18):
It is okay to fail.
Um, the alpaca project, shall wesay?
Uh, wasn't my first open sourceproject, but it's definitely one
of the first where I wasn'tafraid to have things wrong.
Um, I've developed other opensource projects where I didn't
(13:38):
know what I was doing.
And so when people would submit,pull requests in, which was
something that should have beenvery basic should have been, uh,
Oh, why didn't they think ofthat earlier?
The first couple of times youhave that, where it's like, you
are wrong.
This is right.
You need to step back andconsider that this person has
(13:59):
gone out of their way tounsolicitedly give you
constructive mentoring andadvice and improve your code.
So that is definitely the thingthat you need to learn because
you're working in public.
So you need to understand that,like people want to, most of the
time help, there are going to besome instances where they are
(14:23):
not helpful, but most of thetime people want to help.
So getting a random email sayingsuch and such wants to improve
your documentation.
That is a very, very good thing.
And you should encourage it.
And you are now an open sourcemaintainer because you're now
accepting contributions out, asopposed to previously where you
may have been puttingcontributions in.
(14:44):
So it's very much the other sideof that equation.
Be okay to be corrected, I thinkis the number one thing.
Hmm.
How,
Olivia (14:52):
How did you find, I
guess, cause personally I
haven't started an open sourceproject, but I'd imagine that,
would that be like somedifficulties in actually getting
comfortable use?
Katie (15:02):
Oh, absolutely.
Like, depending on what you wantto build, no one else wants to
build that same thing and that'sokay.
Like I have a whole bunch ofrepositories trees where it's
just me, but that's okay.
But there is an entire separateecosystem around how to get
(15:27):
contributions, how to build ahealthy community and everything
else.
But it's kind of like the samesort of things around.
If you want to build a startup,if you want to build a business,
you have to inspire and wantpeople like encourage people to
help, but in open source,there's no financial benefit.
So it's a little bit of a harderincentive, but there is like,
(15:53):
it's okay to work on your own.
People can find your stuff.
You can, uh, there are many waysthat you can encourage people to
help out.
Um, but it's not the goal thatyou like unless your goal is to
build a community.
There's going to be a wholebunch of thought about how you
do that, but it's okay to workalone if you need to, because
(16:15):
you are capable and powerful andyou are a good programmer and
you can only get better bypracticing and sharing and
getting people to take a look atwhat you're doing.
Olivia (16:29):
Yeah.
There's a lot really to be leftfrom developing an open source,
both with your own project andon other people's projects,
because of course you can leavefeedback on pull requests as
well.
So I suppose like working onopen sources are really great
option to like, not only applyyour skills, but also get
feedback on them in a way that,uh, you often wouldn't in other
(16:51):
applications.
Katie (16:53):
Yeah.
And in all of this, it's notjust the code part.
Like I've been talking a lotabout pull requests, but there's
also like talking aboutopen-source projects or what
you've done and teaching peoplethat way, or there's the
documentation side where, um,like if you know, a second
language there's translationsthat you could contribute to
(17:15):
projects, there's actually areally good book on this.
So I'll make sure that I link inthe show notes for your future
with open source, by VMBrasseur, it's from, uh, the
pragmatic programmers and onlysome of this entire 160 odd page
(17:36):
book.
Only some of that is about codebecause there are so many other
things that you can do tocontribute, to open source
projects.
There's documentation, there's asupport, there's maintenance,
there's a communitycollaboration and community
building.
There's so many things like youdon't have to be a programmer to
(17:56):
contribute.
Olivia (17:57):
Yeah.
I guess how, how do you find thedocumentation side of like
writing side of things for opensource?
Katie (18:05):
Oh, I have learned the
hard way that if you don't
document things, people will notdo the right thing.
I've had a person give a talk onone of my projects where some of
the talk was talking about howthey couldn't get my project to
work because I hadn't documentedit properly because I was making
(18:25):
assumptions about people.
People will already know how toinstall things and whatever, but
no, you won't, you can, you cannever, like there are some
things that you can assume like,um, if you say that a project is
available to download on acertain package repository, like
(18:48):
you can assume that people knowhow to click a link on a page,
but you can't assume that peopleknow how to install a package,
but there is a balance of like,here's how you set up and on
your, on every single operatingsystem.
And here's how you install mypackage.
And now here's how to use itbecause how to install Python
and how to install packages is acompletely separate readme, but
(19:14):
you can still link to thesethings.
Um, but yeah, documentation andtechnical writing is a
completely separate profession.
And I know when documentation isbad, it's bad, but when
documentation is good, it'sexcellent.
Like the documentation for theDjango project is phenomenal.
(19:37):
As soon as you get over thatbarrier of learning, how to use
the documentation and what it'stalking about and the concepts
around the project.
Once you get over that, you havethis entire ecosystem of all the
strange and wonderful things youcan do in Django.
You've just got to find thesearch bar and type in your
search terms, and then you'llfind it.
(19:58):
But there is an entire art, anentire separate community of
technical practitioners who talkabout documentation at events,
like, uh, write the docs andread the docs, meetups, and that
kind of thing.
That's an entirely separateprofession of like actual
editors and writers andlinguists, um, that developers
(20:22):
should at least get a level oneor level two in that sort of
multi-class system.
If you want to think about itlike a gaming thing, but, uh, it
is definitely, there areprofessionals that go full level
20 on, on writing that.
Yeah, they are amazing,wonderful people
Olivia (20:41):
On the more conference
side of things.
Um, how do you get involved withthose kinds of conferences and
what are they like?
Katie (20:48):
Uh, open source
conferences when we were allowed
to go outside where I thinkseeing a lot of conferences like
, um, Ruby conference, AustraliaPyCon, Australia will have
student tickets.
So if you have an active, uh, uh, tertiary or secondary mailing
address, you can get reallycheap tickets.
(21:10):
Um, they usually like the eventsare like, I'll talk about Python
specifically, which is PythonAustralia, which is a event that
I ran for a few years.
We typically run on a weekend.
So we, um, have accessiblestudent tickets.
So if you want to come to yourcapital cities convention center
for a few days and chat aboutPython, it's accessible.
(21:32):
Like it's outside of normalclass time, it's a cheap ticket
and you end up just gettingabsorbed into this community,
just attending these events andthen getting inspired by other
people, meeting people.
Um, some of these events have adevelopment sprints afterwards.
So, uh, all these people areflown into a city.
(21:55):
Why not hang around for an extraday afterwards and actually do
open source development and, um,meet the people that you might
only see on our pull requestsoccasionally.
And then you go back the nextyear and you go back the next
year, and then you end upspeaking at it, talking about
your open source project or apipeline Australia has had the,
(22:16):
um, education showcase wheresecondary students talk about
like how they've made IOT thingsas part of their schoolwork.
And from there, they then like acouple of years later, Mike gave
a talk.
Um, and then you might end uphelping organize the event.
And then you might end uprunning the event.
(22:37):
Or it's not just me, if youdefinitely want, like when we're
let outside again, if you want aweekend of just brain overload,
coding madness with a wholebunch of wonderful people do
check out your, uh, localconferences.
And a lot of them are stilldoing a monthly or weekly
(23:01):
meetups as well.
Um, either via zoom or othermediums, but meeting and talking
to the people that wouldotherwise just be on a pull
request is such a mind meld of,Oh, there are humans at the
other side of this.
There are people like me.
Um, it's a really wonderfulexperience and I'm very, very
(23:22):
much looking forward to whenwe're allowed outside again.
Olivia (23:25):
Yeah.
I think, um, everyone is.
Yeah.
I think that's all of myquestions for today.
Um, is there anything you'd liketo about the tool or anything
you'd like to add?
Katie (23:40):
Like when I went through
uni, there wasn't a lot of
things on open source anddepending on what you're
studying, there might not be,but you can explore this sort of
stuff in your own time, but dobe wary that if you're going
through uni or whatever, you canactually do things that aren't
(24:00):
always coding.
Like there is a balance ofthings that aren't coding and
like a lot of, uh, you'll,you'll hear the horror stories
about how, um, recruiters mightsay, Oh, you have to be doing
coding in your own time and doall these projects in order to
(24:21):
prove that you're a real code.
I know you don't have to like ifthis kind of thing interests you
and you want to explore it, yougo ahead and do that.
But no one should force you toprove your dedication by
volunteering your time, yourtreasure, or your talent.
Olivia (24:38):
That is very fair for
sure.
Like, I feel like a lot of, uh,little places seem to have this
whole attitude where if your,basically, if you don't program
in your free time, you're not areal program.
You're not actually interestedin it.
You not passionate about it, butright.
That's just not true.
Katie (24:57):
Django has a, uh,
incubator project called Django
girls where they run workshops,teaching, uh, women and
underrepresented minorities tocode Django.
And they used to sell t-shirtsthat said, this is what a
programmer looks like.
And every time I see like awoman, a person of color, um,
(25:19):
any sort of person saying howwearing this t-shirt that says,
no, no, no, really I am aprogrammer.
You believe them.
And if more people show thatthey can do this, but they can
also be a well-roundedindividual outside of coding.
Then we can slowly start toconsider that you can be an
(25:42):
awesome programmer and only do a38 hour week.
These people exist.
Olivia (25:47):
Yeah.
Thank you so much for joiningme.
And that's all we have for youtoday.
Please join us again in twoweeks from now, for our next
episode, until then feel free tojoin our community on Slack at
uqcs.org.