← Back to Show Notes

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.