Transcript: Katie McLaughlin
Hello, and welcome to another episode of Django Chat. This week, we're joined by Katie McLaughlin,
who wears many hats in the Python Django world, Director of Python Software Foundation, also
Director of Django Software Foundation, Conference Director for PyCon Australia, and currently
at Google. Katie, welcome to the show.
Hi.
So there's so much we want to talk about. Maybe we'll just start with the classic, how
did you get into programming?
So, that is a story. One of the first things that really got me interested with computers and what they can do in general was I had a Windows 3.1 machine in my garage that my dad had for reasons. And I worked out that you could change the colors of the theming to be glare-ish colors, which is now known as hot dog theme.
But from there, I didn't really get started into any programming stuff until really high school, where one of the end of year classes they offered was a intro to HTML programming in Microsoft Word.
But next year, I picked up a book on HTML, learnt tables, and from there just started getting involved in like working out how JavaScript works, taking the ICT class in final years of high school.
Then finding a way to be able to do a university course as part of high school and then getting a bachelor of information technology and then getting a job and then jumping to so many different languages.
And now I am apparently one of the directors of a foundation or two foundations to do with technology.
And OK, this is fine.
So what's that what's that path like?
I mean, again, because you you are so many hats in the community.
How how did that come about? I mean, how does you know, among the other people who are directors and conference organizers, is there a similar path of how they get there or is it really very for everyone?
For me, it started out with helping carry beer and setting out tables at the meetups that one of my previous employers hosted at the time.
And from there, going, huh, maybe I could speak at one of these things.
And then, huh, maybe this is interesting.
Maybe I should give a talk about this.
And then, oh, I got accepted for a talk in New Zealand.
Okay, this is fine.
And then just being around and volunteering to help, something as simple as making sure
that a speaker is introduced and that I make sure that people ask questions in the form of a
question and then realizing that there's a whole lot of opportunities around helping on boards and
councils and making myself somewhat popular because popularity voting is absolutely a thing.
I mean, is there an infinite list of people who want to donate all the time and energy, though,
that that you and these other organizers do because i mean that's something i hope we can
talk about um today is just how much work and how many volunteers are involved in any conference
because i i was just at pycon for the first time and that's overwhelming but there's an overwhelming
amount of yeah work behind the scenes to make it so smooth that you you know more than anyone since
of all the hats you wear have have a sense so how does like how does that break down
for example as a conference organizer what's what's the sort of ratio of um you know attendees
to volunteers to like how do you keep track of it all in your head right because there's so much
going on at any one conference it's hycon us in cleveland in like the last week as we record this
going off into um pittsburgh next year there is an entire horde of volunteers everything from
the session chairs and session runners to the people who help stuff the swag bags to the people
who help organize any of the summits all the way up to the paid staff because people get paid
in the python world and they are funded by the psf and the psf has actual staff members because
one of the things with volunteering is that there are some tasks that you really cannot get a
volunteer to do and financial accounting for a non-profit with how many millions going in and
out is not something you dump on a volunteer and paying people for that like professional work
is absolutely a thing but it's also a case of many hands make light work and volunteering for
a three-hour session sharing thing and a couple of dozen people doing that just makes the entire
thing runs so much smoother because it would be great if we could give everyone compensation for
their time but we can also give a hearty handshake and a strong felt thank you which is for some
people more than enough but yeah right yeah well and it's and I mean for me at PyCon so I
volunteered to do conference check-in and that's also just a great way to meet people for for
anyone if it's your first conference or you're new to a conference um you know you're all it's
there it's there to meet people so stuffing bags you know just there's always going to be a list
of volunteering opportunities which is as good a chance as anything to uh to meet a lot of people
so encourage people to do that um well before we get more into conferences uh you mentioned you've
done a lot of different programming languages can you talk about the shift to python and django
which is where um you i think you still are or talk about you know in a professional sense
how are these things used right what's what's the vibe because everyone listening knows python and
django but they probably also use different programming languages yeah so um my first
professional job i was working with oracle application express oh wow which sounds very
enterprise and it is um but due to a series of events i have been employed as a software
developer in a not a junior not a senior but as a oh i can eventually learn the language and then
get stuff done um so i was doing powershell for a while and then i was doing ruby for a while
but the first conference talk i gave internationally was at linux conference australia
and linux conference australia is part of linux australia and linux australia runs other events
including WordPress, WordCamps, including DrupalCon, and including PyCon Australia,
which it was strongly suggested was a very good event that I should attend.
Not having a lick of Python in me, I submitted a talk and it got accepted.
Oh, wow. Good for you. Yeah.
I even like somehow, and I'll need to check my own Git commit history for this,
i did submit and publish a package in python before my first pycon by reading the docs and
working it out and then some very marvelous people made sure that my code wasn't terrible
and ported it to python 3 for me and i did not know a lot back then but i still don't know a
lot but i know a little bit more um yeah you know what you don't know yeah the community is really
what's kept me in the python world and i've also given a keynote about how literally the community
has kept me in the python world because i deal with a whole bunch of brain chemistry issues
and the people that i've met in the python community have kept me going and are wonderful
people and i enjoy getting to see them a lot and making sure that i'm around is a thing that helps
Yeah. And so when professionally were you able to work with, let's say Django, right? Have you
been able to do that for a while? Or that was, I think, only at Divio most recently?
Technically, I've never been employed to work with Django. At Divio, I was a site reliability
engineer. So I was paid to help keep the Django's running, but I have not been paid to professionally
develop in Django. And yet I am a now two-year serving board member of the Django Software
Foundation. But that's also okay. You don't have to be Carlton to be able to serve on these things,
to be able to help the community. I mean, every community needs a Carlton or 12, but
not everyone has to be a Carlton. Yeah. Do you remember, so learning Django, this is a
question i like to ask people because you know most people whether people have come from a
previous web development background or not tends to have a big impact on how they view django i'm
curious for you i assume you you've done some other web stuff before you touch django for the
first time yeah i mean um i have developed in ruby on rails before i have been paid to do that
um i've also done the odd sinatra app or flask app here and there but most of the way that i
learned how to use django i mean i still don't know a lot about it but the bits that i had to
learn was the stuff that helped me in a system administration sense so literally there is a
django app that's playing up how do i go in and work out what's wrong and oh there's a django
shell? What is that? And what is an ORM? And how do I manipulate this? And I gave a talk at Django
Con US 2018, where I described literally going from my Oracle roots and my SQL knowledge into
how that maps to the ORM, which is a learning process that is absolutely valid, being able to
use generic skills like SQL and being able to apply that to domain specific information like
the Django ORM and knowing that there are similarities and how that maps to each other
as a diving board into the great unknown. Exactly yeah we'll link to that that talk
because that I would say that yeah the ORM the more time I spend with Django that's the part
that is the most interesting, but still a little mysterious.
I feel like that in some ways maybe has the greatest depth.
I mean, even Tim Graham, who we had on as a guest,
said that was the one area that he felt he didn't have mastery,
though, you know, take that with a grain of salt when Tim says that.
So another thing you've talked about is deployments,
which this is something Carlton and I often talk about.
So I'm curious, you know, you've done some talks.
What are your thoughts on Django deployments before I give mine?
so i mean i've worked at divio where their product is hosted django as a service i now work at google
where there are many different ways that you can host your django um i was accepted but sadly could
not attend django con europe where i was going to give a talk entitled what is deployment anyway
so i haven't actually written that talk yet um but there is absolutely a stepping stone from
i've completed the django girls tutorial to so where do i host this now and going from there
what is the best way to host production level ready and scalable django and what is 12 factor
and what is serverless and why do i care and because i have a very strong operations background
not just a development background i am able to talk both languages and be able to help convey
the tldr from the operations world for developers because hopefully in most situations it's not just
the developer having to do all this stuff but when it is you don't need to know the entire
spectrum you just need to know enough to get your job done and hopefully if if that talk gets
accepted anywhere we'll be able to update these show notes to a link to it once i give it um yeah
now well and i think that's part of the the thing that's confusing for people learning django is
that they're just assuming they have to do everything so they have to handle all the
deployments you know if it's full stack django they have to learn javascript and all these things
and they're you know the reality is most django engineers are focused on django focused on back
end apis and have an awareness or can dive in as needed but do not have all of this in their head
um at all the levels required so and that is absolutely fine you do not have to know everything
i hope that anyone listening to this doesn't have to be in that position where they are
the one-stop shop that they have co-workers and colleagues who have the specializations to help
them with that however it is also very useful to know what those folks are doing and so this is
devops um there's a reason there's a reason it exists too that's why i always tell people like
sometimes i'll i'll be out of my depth on some production thing that's like well you know devops
is a career for a reason like yeah and i mean speaking of devops i've helped to run a devops
days before as well as i've been employed as a devops which is an interesting job title because
clearly devops is a plural i am but a single person so obviously i'm a devop oh that's true
I hadn't thought about that.
Yes.
Well, that's like with a lot of language.
If you think too much about it, it doesn't make sense.
One thing that I thought might be interesting to talk about is what you see as the similarities
and differences in these various communities that you're so involved with.
So PyCon Australia, and then maybe even the DSF versus the PSF.
Because even for me, I only have a vague sense of what these organizations are and do.
But you have that experience.
I'm curious what, you know, not pros and cons, but just what are the sort of similarities
and differences that you've noticed?
Conferences are all about providing a platform for people to share ideas.
And for very successful conferences, it turns into a space that turns into a annual pilgrimage
for the community to join together and fly halfway across the world.
to listen to people, to share ideas, to learn. And it is absolutely something that a bunch of the
languages that I've used don't really have. I'm not aware of a lot of such events like PyCons
for the Java world. I'm sure they exist. I'm sure that there are many people who attend
like oscons or all things open where it's not language specific but just the sheer scale of
how many pycons there are around the world yeah means that there is nearly always one close to you
which is so important especially for those who can't travel yeah it's interesting because i
always think i largely think of how software is being used so like there's rails conf and stuff
but maybe there's a RubyConf.
There is a RubyConf in Australia.
There's a RubyConf in New Zealand.
There has been a RubyConf in Malaysia,
and that's just in my little neck of the woods.
There are RubyConf's around the place,
but there are.
There's the PyCon.org is a newly relaunched
and revamped website from the PSF
that lists all the PyCons,
including a calendar of all the PyCons.
And just in June alone, there is one, two, three, four, five, six events
and at least one Django Girls event in Israel, in London, in the Czech Republic,
in the U.S., in Switzerland, in Colombia, just in June.
Yeah, it is out there if you want to find it.
Yeah.
One thing I'm still, again, trying to understand is where does the Python world see Django
fitting in?
Because my sense is that Django used to be more of a first pillar of Python, and now
it's more of a utility, which is a good thing.
I mean, certainly the excitement at PyCon was not around Django, it was around data
science and async.
I'm curious what your take is on that.
The Python world is so much broader than Django itself.
is and that's a good thing django has proven itself to be a very stable boring platform on
which to work on which is extremely good because having putting all your eggs in one basket on a
beta product and then having that disappear is not good business practice no it is not i
no yeah or even one that's just transforming itself so much i i spent a year and a half
working with MeteorJS, which was fantastic and I think is still an active framework, but was
changing more rapidly than our business needs would have liked at the time.
Yeah. And Django itself is so mature and the DSF is in a position where it can
fund a person to help be a full-time or part-time or i'm sure carlton will correct me yeah carlton
will correct me on it but the dsf can now pay someone to work on django which is incredible
in itself the dsf has money to be able to put towards helping conferences happen towards
ensuring that Django continues to exist. And the PSF does that at a larger scale,
which is absolutely incredible. But there is still so much more that goes underfunded,
unfunded, volunteer effort. The PSF has a grants program, the DSF has a grants program,
but those aren't at the scale that would provide a salary or 12 for professional software engineers
is to be able to fix all the problems in just one little bit of CPython, for example.
Yep.
But that's an entire other conversation.
And I highly suggest that you get Dr. Russell Keith-McGee on board
because he has a lot to say about funding.
And if you can't, or if you have only 45 minutes,
I strongly suggest you watch his keynote from PyCon 2019 in Cleveland.
It is a very good talk.
It is, yeah.
I was fortunate enough to be there in the room for it.
I was in the front row.
I was fangirling the entire time.
Yeah.
Sometimes it's hard to make a technical talk interesting, but he never has that problem.
We'll link to that one, but he's given a lot of talks.
You should check them all out.
So actually, speaking of Russ, you've also done a number of open source stuff, including Beware, which maybe you could speak a bit about that project and your involvement.
Yeah, so at my very first PyCon Australia, I stuck around for the sprints, the development
sprints, which normally tack on to the end of a PyCon where it's a case of everyone has
traveled anyway, stay an extra day or two and just jam on things and muck around with
projects or have an actual development sprint and work on a project with people that you
may not have met before or with the rest of your open source team. I happened to be at these
development sprints and ended up sitting next to Russell and he was mucking around with this thing
and I'm asking well what was that? Oh I'm trying to get Python to run in the browser. I'm like huh
can I try that? Well no I haven't got it up on GitHub yet. I'm like well could you do that and
then I can try it. And turns out his code wasn't exactly installable at that point. Um, but I was
able to help debug that because anyone knows it's like, it works on my machine is not a good, uh,
unit test. Um, no, unfortunately not. But from there, after that PyCon in Australia, in Brisbane
in 2015 i kept in touch with russell and i helped out a bit with beware and i ended up seeing him
again at django con europe in budapest where i'd received the first challenge coin so what is what
is that what is what is the challenge coin if you contribute to the beware project in any way
it doesn't have to be code you get a yak shaver challenge coin it is a um one and a half inch
very hefty coin made of nickel um which has the beware logo on one side and a yak on the other
and this has been an amazing factor in getting people interested in our project because people
like shiny and people will contribute to your project for shiny um but we don't just have one
coin we have a second one if you help two or more people earn their yak shaver coin you get a yak
herder coin because we also like our puns and it's the same form factor of coin it's just that the
yak on the other side is on a wonderful green grass on a beautiful clear blue sky day um i'm
sure that we will also link pictures to these particular beauties in the show notes um but
That's part of Russell's attempt to get engagement and also a use case of some of our donations and funding support.
So a bunch of those pressings were done directly by folks like Travis CI and Max CDN and GitHub giving us money to make coins.
But a pressing of coins is not a developer's salary, sadly.
no it's it is a way to yeah it is something and the logarithmic factor in which this
has to scale in order to support full-time development is math and well or maybe it's
or do you think it's maybe and this is always the issue of if there is a company or a corporate
sponsor who uses it and is able to make a business out of it and then from that can contribute
resources i mean that would help but then of course let's pick you know some benefactor they
would inevitably want it to be custom to them right that seems to be the sort of tension whenever you
have successful companies using open source softwares they they want to use it but they
inevitably want something that may not align with what the broader community directly wants
exactly and to take it away from beware for a moment and go to say another large bit of software
that is production ready and stable that has helped many businesses make many hundreds of
millions of dollars jango for example there's some bees on their instagram there is many many
hundreds of millions of dollars are being made off the backs of volunteer sweat and there is
nearly not enough not nearly enough um paying it back to that and i totally get why it's it's
it's like this is open source software it's got to be free right but there is a point where you
need to start thinking about the sustainability of what you are using to literally make your money
And if you don't secure what you're using, you are being negligent.
You are not ensuring that the product that you use, that you depend your entire platform
on continues to run.
If you do not ensure that that continues to exist, then you have a major liability.
So it's not just a case of kicking back a few hundred bucks to a project.
It's a case of being an actual sponsor about giving back in a financial significant way
that doesn't just serve your interests, but the interests of the project in general.
And I understand this is really not the best thing to be saying when I work for a company
that is as big as Google, but it's one of those social things where free and open source
software is so new.
And we're still working out what it all means. And we are seeing now the retirement of some of our founding fathers in this space, like with Guido stepping down. And it's incredible and amazing and fantastic, but also brutal at the same time. And we live in interesting times.
Well, and I think part of the reason for this show is to talk about the people behind this software, because I think it is possible and easy to think it just exists on GitHub and things happen, but it's really not my concern, even if you are using a professional setting when, in fact, there are these volunteers, there are people who get burned out, there are people who get tired and move on.
And I mean, one thing that I've seen, it's interesting, the different funding approaches out there. I mean, for example, at PyCon, there's a company Tidelift, actually based in Boston, where I am that is trying to do like a subscription for open source stuff. There's even one of my one of my friends, he works in the PHP world. And Laravel is interesting, because that's a web framework that is for profit, largely run by one person.
And that person, for example, sells a $99, I believe, SaaS off-the-shelf, you know, like third-party app.
And that alone contributes greatly to the community.
So I hope that it's a business problem, not like a culture or social one, to find ways to make open-source projects like Django sustainable.
But it is interesting seeing what other people.
out there are doing. I mean, for example, Django, I think last fall for the first time had a
sponsorship with JetBrains where for a month there was some donations. Yeah, something needs to be
done, but it's tricky to balance, as you said, the nonprofit and community aspect with finding a way
to get the funding that the project needs to go on. I've just listed a whole bunch of things. I
wonder if any of those that I mentioned to you seem interesting or if you've heard of other
approaches um that you know make it make a combination of easier and also like oh we have
to do that um for um the companies that are using and relying on this software specifically django
so the wordpress community does this extraordinarily well there are multiple people who can
survive as an income off WordPress plugins, paid WordPress plugins. Automatic is an entire
company based off this. WordPress have their own hosting models. There is a lot of money going in
and out of WordPress. And even though it might seem as someone who has always been able to just
download packages for free, maybe if you have to have a subscription, which makes sure that
your particular package gets patched maybe that's not a bad thing right that would be what tidelift
and others are trying to do yeah but i mean there are like there's git store there's um there was
git tip there is so many people trying to spin up these sort of things but it's always a case of
we're software developers we're not economists there is yeah that's so true yeah yeah well it
does take some some of the just the magic and the the goodwill of the community away when you put the
the business hat on and i mean for me because i i came from the business world before i got
into programming so the idea of stack overflow that certainly does not exist in the business
world i mean there's just there's no way that someone would freely help you with something so
that's one of the things i i love about engineering and yeah you don't want that to go away i mean
with python 2 now being deprecated in 2020 i believe it's red hat is going to offer some sort
of support for it but you have to pay for it the idea being that you're a large company do you know
more specifics on that what can i say what can be reported well we don't have to get into it
no no it's um community support for python 2 is ending and python 2 will not be community
maintained post-January 2020. The reality is that enterprises cannot meet that deadline.
So there are a number of providers who, for a fee, will continue to make sure that Python 2
at least remains with security patches. However, that is a big risk because when the entire
community is no longer looking at Python 2, no one's going to be trying to find security
vulnerabilities anymore no one is going to be pushing it as hard as they once did so we're not
going to know if things are still broken it would be a very very good idea that if you have any
python 2 code running that you do migrate it to python 3 preferably before january 2020 yep
yeah now that three is very good now python 3 is marvelous python 3 supports emoji
please migrate to python 3 well and to your earlier point about wordpress we had um tom
dyson on who's involved with the wagtail project and you know something about django traditionally
is it seems it's it wasn't used as much for agencies um in the way that certainly wordpress
is but with wagtail that's i think wagtail is the second most popular um third-party project now
that really is becoming a use case and so that might be a way that it's easier for django to
look at i guess some of these wordpress monetization techniques though as we as you've said
there is a danger there and losing the magic of open source one of the funding models that
can work well for some demographics is we will give you the code you can spin it up yourself
if you have the resources but if you don't here pay us and we'll do it for you what would be an
example i mean an example i mean beyond wordpress that django could look to for that because i think
with python there's starting to be some of this there's i mean python anywhere has this um replit
has this are there other good examples out there of in the python world of people doing hosted
options divio divio i know i i don't have personal experience with divio which is why it doesn't come
top of mind to me but yeah Divio has their own opinionated Django called Aldrin and you can find
it on their github repo and you can host it yourself or you could pay them to host it for you
and then you can just focus on the code you can also use Django CMS and host it all yourself or
you could pay them and they will host it for you and then you don't have to worry about having to
do all that which sounds nice yeah yeah so how does that uh i i haven't heard of that the altered
django how does that work sorry aldrin as in as in buzz aldrin um oh okay sorry i should say django
cms aldrin django is their code name for their opinionated django which works in their setup
up but they made Django CMS and they will host Django CMS for you with a you can go on to a URL
that I can't remember right now and it will spin up a copy of Django CMS for you give you 15 minutes
on it and if you like what you see you can click continue and pay for that particular instance to
continue for you oh interesting yeah yeah but Django CMS is also a free and open source project
but for a small fee and probably cheaper than what it would cost you in engineering hours
they will host it for you yeah and so that seems very much geared towards agencies but is that
incorrect they're also hard or maybe startups as well larger companies because that's the
at least my perception is at a certain point people need to go custom in the past but um
certainly well you're you're at google now i mean google that's not the case if you use google um
the django cms and divio product if you go onto their web page um there's a really cool
they rebranded less um agencies can use it which with it which is a case of i know how to use
Django CMS. I just want a new one. It also scales to enterprise because Divio have expert DevOps
people behind the scenes who can make sure that your stuff will scale. And it can also just be
for the developer because it comes pre-configured with Django CMS or Wagtail or Oscar out of the
box. And so if you don't want to have to worry about the hosting, you can pay someone to host
it for you however not everyone has that as a valid business model yes well said well personally
speaking i don't like doing devops so i'm happy to pay a bit of money and not have to deal with
this myself um but it is uh not everyone feels that way are there things we haven't talked about
that you want to cover pycon australia is happening in august in sydney uh tickets will be on sale at
the beginning of june and if you happen to like the thought of coming to australia perhaps convince
your boss that you should learn more about django and python by going to a conference in australia
the weather's nice and there are no drop bears in the cbd and there's uh and there what one day of
that conference will be dedicated to django is it is that correct yes so django con australia
is a legit DjangoCon,
but it happens to be a one-day single track event
which we've rolled up into PyCon Australia.
Your ticket will cover access to both events
and also any other talk at the conference.
Great. Awesome.
Well, we will link to that, of course.
Thank you so much for coming on the show
and sharing your experiences in the Python and Django worlds.
No worries. Thank you for having me.
All right. Bye.
Bye.