The Changelog: Software Development, Open Source - Five years of freeCodeCamp (Interview)
Episode Date: November 15, 2019Today we have a very special show for you – we're talking with Quincy Larson the founder of freeCodeCamp as part of a two-part companion podcast series where we each celebrate our 5 and 10 year anni...versaries. This year marks 5 years for freeCodeCamp and 10 years for us here at Changelog. So make sure you check out the freeCodeCamp podcast next week when Quincy ships our episode to their feed. But, on today's episode we catch up with Quincy on all things freeCodeCamp.
Transcript
Discussion (0)
Bandwidth for ChangeLog is provided by Fastly.
Learn more at Fastly.com.
We move fast and fix things here at ChangeLog because of Rollbar.
Check them out at Rollbar.com.
And we're hosted on Linode cloud servers.
Head to Linode.com slash ChangeLog.
This episode is brought to you by DigitalOcean.
Guess what?
DigitalOcean recently added MySQL and Redis to their list of managed databases.
Their full managed databases
lineup now includes the three most popular databases out there for developers postgres
mysql and redis eliminate the complexity involved in managing scaling and securing your database
infrastructure and instead get back to focusing on building value for your users learn more and get started for free with a $50 credit at do.co.changelog.
Again, do.co.changelog.
Welcome back, everyone.
This is the ChangeLoggle podcast featuring the hackers, the leaders, and the innovators of software development.
I'm Adam Stachowiak, Editor-in-Chief here at Changelog.
Today, we have a very special show for you.
We're talking to Quincy Larson, the founder of Free Code Camp, as part of a two-part companion
podcast series where we each celebrate our five and 10-year anniversaries.
This year marks five years for Free Code Camp and 10 years for us here at Changelog, so
make sure you check out the Free Code Camp podcast next week when Quincy ships our episode to their feed.
But on today's episode, we get to McQuincy on all things Free Code Camp.
Four years ago, four years ago, we talked to you.
And since then, you have literally blown up in many good ways.
Now, if he literally blew up, wouldn't he have exploded and his guts would have worn out?
Okay, figuratively, literally.
Jared's always my word police.
I always do that to him.
He is.
Although, technically, you're right.
Literally can mean the exact opposite.
Right.
Well, it depends on what dictionary you write.
In this case, blown up meaning that...
Let's start over again.
Gosh.
I was digging that flow.
Oh, you were?
Yeah.
I will keep it then.
We'll keep it.
Jared likes it.
We'll keep it.
But seriously, four years ago, we had a conversation with you.
Much different Free Code Camp today than four years ago.
What are you doing that's so great?
What are you doing that's so well that has gotten you to where you're at?
Not just you, but the rest of everyone, the contributors.
We were pretty skeptical, were we not?
I mean, we tend to be, at times, skeptical.
We're paid to be.
Yeah, we're paid to be skeptical.
Well, there's lots of stuff that comes out and certain things last.
I think we were talking about that earlier in the other show.
By the way, kind of a companion podcast going on right here,
so definitely listen to the other one as well.
Links will be cross-posted.
That's right.
Show notes, check them out.
I mentioned that lots of stuff hits our radar and some things last
and other things don't.
And I know one of the things we were talking about then, four years ago now, links in the show notes to the original Quincy Larson episode.
Apologies, by the way, it's been four years for us to get you back.
It should have been much faster.
Yeah, we usually have the B-backs back sooner.
You're still here.
You've blown up.
You did not fail to sustain.
So now you agree that he blew up.
I do.
Okay, good.
I do.
Well, I think the different stuff I'm
guessing is that then
was just one pillar.
Right.
Now you've got many
more pillars.
Lots of things that
happened.
How's that work?
Yeah, so 2014, almost
exactly five years ago,
we launched just the
curriculum itself.
We had a chat room.
Right.
So people would come
to Free Code Camp and they'd work through the curriculum and they would ask questions in a chat room. So people would come to Free Code Camp and they'd work through the
curriculum and they would ask questions in a chat room, which was originally HipChat and then it was
Slack and then it was Gitter. We still use Gitter, but now the main thing is the forum. So the
curriculum was the original pillar of Free Code Camp. And now we have a second pillar, which is
the forum, which is growing really rapidly. And we've got a lot of exciting things going on there that I can talk about.
And then the third pillar is the publication, freecocacamp.org slash news.
You find it interesting that forums are cool again?
They're always cool.
Or cool-ish?
I mean, to some degree, sure.
Aren't forums kind of the quintessential community of the internet to a certain degree.
Yes, but then you have social networks and you've got groups within those networks.
So it's like, what is truly a forum?
So you're saying, in this case, a literal forum.
Yeah, a self-hosted place where people can have threaded discussions over long periods of time.
That's indexed by Google.
That has its own search tools, that has accounts,
that has moderator tools, all those things
where the organization who's hosting that forum has control.
Complete control.
Yeah, if you contrast this with a subreddit
or if you contrast this with a Facebook group,
a forum gives a lot more power to the organization.
And it also means that the data stays on that server with that organization.
It's not being used for advertising.
I'm curious how you host it.
What do you do?
Yeah.
So we use Discourse, which is a really popular forum tool created by Jeff Atwood and his
partner, Sam.
I can't remember Sam's last name.
Safran.
Sam Safran, thank you.
And they are really solid developers.
They are.
And they also know a lot about online communities,
Stack Overflow being one of the bigger ones.
So a lot of the same defaults that they bring to the table
are what we use.
What about literal hosting, though?
Do you host it yourself?
What's your architecture?
It's a Docker image
and we have it on DigitalOcean.
We use a lot.
We publish this whole
visualization
of FreeCodeCamp's architecture
and Discourse
supports
our instance.
They pay like 80 bucks a month
for us to have a hosted DigitalOcean.
I was asking that because Discourse does have
like a service version, right?
Yes.
So you're not hosted by them.
You host your own, but they support it.
They support it.
Well, in the sense that like we,
every six months that there's some huge thing,
I start messaging them on their own meta discourse.
Yeah, like, hey. Yeah, exactly. Yeah, and we have SSH access. But if there's some huge thing I start messaging them on their own meta discourse. Yeah, like, hey.
Yeah, exactly.
Yeah, and we have SSH access.
But if there's something catastrophic, we can ask them to go flip the switches.
Right.
So the buck doesn't stop at you in terms of the, you host it, but you got help.
Well, Free Code Camp, the forum is one of the bigger ones.
I think there are probably some bigger, like I know Blizzard and Apple.
Describe big.
We're getting about 5 million views a month on the forum.
Nice.
That's pretty big.
I assume that's a lot of recurring active.
There's lots of conversations.
Some people are just Googling and they find a solution in a forum.
But there's a lot of people that are actively part of the community.
Posting answers, posting questions on the daily.
Yeah, at any given time, there might be 60, 80, 100 people
logged in using the forum.
Let me go back and clarify the skepticism.
Because it wasn't that we were skeptical of the concept
or the idea of Free Code Camp.
It was really just the will it continue to last.
Because you're a nonprofit, there's lots of startups
that are also non-profits.
They're just,
they don't want to be non-profits,
but they are.
But we talked about the sustainability of like
you pouring yourself into this.
We didn't know.
It was pretty new at the time.
All you had was curriculum.
And it was like,
is this going to be around
five years from now?
We're also putting
a ton of time into
and it seemed like
a lot of work.
And anytime you see
those things,
it's just a recipe for maybe yeah for
burnout yeah or or uh goat farming in the horizon right right but you're still here you're still
standing so i guess that's maybe the question is not just any he's thriving fair enough striving
what have you found what's working what how did you get to this point you know you have a probably
a team you have lots of i know you have lots of people that are working on it. So what did you figure out that way?
Yeah, well, last time I was on,
you two were both asking lots of very good questions about sustainability.
As we do.
Yeah, and since you've had the whole Request for Commits series,
which is phenomenal, I recommend everybody check it out.
And I listened to that and Nadia Eggball and Michael Rogers.
And that was really helpful
for me as well, just thinking about
open source and sustainability.
Since I visited,
we finally got the 501c3
status, which is the U.S.
government's tax-exempt
status code. It's the same one
that Doctors Without Borders
and the Red Cross and all these big
NGOs have.
Now, if you donate to Free Code Camp, you can
deduct it from your taxes. And we, ourselves,
don't have to pay taxes, which is a huge
savings.
It makes a big difference.
We were able to
shift from just selling
merchandise, which was the only way we were
sustaining Free Code Camp,
which, spoiler alert, it was barely covering even the servers,
let alone payroll and other things.
And I put a lot of my savings into it.
I put about $150,000 into Free Code Camp,
which, keep in mind, I was a teacher and a school director.
I was basically saving half of everything I earned for like 10 years.
That was the money that I had.
We were going to use that to get a house
or a down payment on a house in California.
Did that keep you up at nights?
Were you confident you were going to find that thing that works?
Or were there nights where you're like,
you know what, I'm just wasting my savings away?
I never thought it was wasted because
people were benefiting tremendously but i was worried that it was not going to work out and
i was going to have to go get a job but really that's like that's a very nice first world problem
to have like oh my gosh if this fails then i'll just have to go out and get a nice job as a software
engineer right but i mean 10 years of your savings gone is beyond that. What he's saying is that that doesn't outweigh the risk of loss.
And I guess to some degree the belief in what you were doing enough to keep going, which you've done.
Yeah.
To keep up the nice though.
That kind of risk, that kind of – any fear, anything like where you were like twitching?
Oh, yeah.
It was a long – and I had my first child about one year in.
It gets deeper.
So, you know, that was,
and we were living in a,
we were living in the Bay Area
in a one bedroom apartment.
It was like 700 square feet
and we had a baby in there.
And I was just on my laptop all day long,
every day, just crunching,
trying to reassure my wife
that we would pull through and everything
would be okay. Now she had a job at a tech company doing accounting and she, as a result,
we had health insurance. So our position was already better than a lot of Americans and we
both had lots of options. So I just want to emphasize that like we were coming from a
position of great flexibility and privilege that a lot of people do not enjoy. So I don't want to emphasize that we were coming from a position of great flexibility and privilege that a lot of people do not enjoy.
So I don't want to sound like at all, because really, I mean, worst case scenario, I had standing offers from different companies that would have probably hired me and all those things.
But Free Code Camp was doing great.
People were using it.
People loved it.
And I knew that we could make it work. Where's use there's usefulness yeah so what what financially made
it work finally like it's working now right yeah yeah we're we're break even essentially so
what we did was uh as soon as it became clear that we were gonna get our tax exempt status
not that we actually got it quite yet,
but before that we'd always been just shifting.
If you want to support Free Code Camp here,
donate money instead to Women Who Code
or donate money to Hack Club
or donate money to Hacker Dojo
or some of these other nonprofits that are helping in developer education
because we really wanted to make sure that people were able to deduct things and the money was going to a proper nonprofit.
So once we got the nonprofit status retroactively,
all the donations to us were tax deductible.
And I remember just holding my newborn son
and holding up the certification that I got from the U.S. government.
And that was kind of the light at the end of the tunnel.
And from there, we just worked really of the light at the end of the tunnel.
And from there, we've just worked really hard to get a whole lot of people doing monthly recurring donations to us,
which is beneficial not only because a lot of people can afford,
you know, even $25.
We had a few people giving like $250 a month.
A lot of people can afford that.
And since it's monthly, it gives us the ability to project out and budget.
And for an organization like us, we just need to be able to budget.
We're not trying to make huge fixed cost investments.
We're just paying for servers.
We're paying for people to be working on FreeCodeCamp full time.
So let me throw a number at you here.
This comes from your five years of FreeCode post, which is on ChangeDog News, also
in the show notes for those who missed it.
More than 40,000 free code camp graduates are now working in tech at companies like
Apple, Google, Microsoft, Amazon, and Spotify.
Surely many other companies as well.
That's an astronomical number, 40,000.
Those are people who've been certified through the program.
Many of them have gotten certifications. That includes
everybody who's in our LinkedIn
alumni network, which is like 60,000
ish people
who are working now in technical
roles. Not
everybody ultimately
got the certification because if you get a job
you're a graduate.
That's the graduation. Certification would be a means to an end. Once you have the job, you're a graduate. The certification
would be a means to an end.
Once you have the end, you're not going to be like,
well, I really need my FCC certification.
A lot of people get the job
and then they'll come back and gradually try to finish it.
What's that? Not that FCC.
This FCC.
Yeah, of course.
Not the Federal Communications Commission.
Just in case we were thinking,
when were you FCC certified? This is audio and this is the internet airwaves. That's right. I mean, of course. Not the Federal Communications Commission. Just in case we was thinking like, are they certified people? What? Yeah.
When were you FCC certified?
Well, this is audio and this is the airwaves,
the internet airwaves.
That's right.
Yeah.
Okay.
So, but still, I mean, 40,000 people,
that is, to me, a huge amount.
I mean, what does that feel like?
Do you feel those numbers?
Do they get so big at a certain point
that it's kind of like another drop in the bucket?
I mean, some numbers are hard to actually,
like, I don't know,, reify in your mind.
Well, I'm extremely blessed
and I just feel incredibly grateful
that there are so many people out there
who bother emailing me or tweeting at me
or sharing these stories of their transitions
from working in accounting, being a trucker,
working in manufacturing,
all these different fields that they've gone from
to doing software development.
It contextualizes those numbers.
Practically every day I get an email from somebody saying,
hey, I just was able to do this, thanks again.
And then I'm able to follow up and say,
oh yeah, can you tell me a little bit more
about how you made this transition?
Or can you post it on the forum?
Because a whole lot of people are in the process of trying to make this transition.
And so the number isn't abstract.
I mean, it's abstract that it's that large.
But I have so many concrete examples of that every day that drive home to me.
And so for me, it's a dream come true.
I never would have imagined that we would have anywhere near the scale
of people being able to accomplish new things
and provide for their families in new ways
and actualize themselves and be creative in new ways.
So yeah, it's just been a huge honor and a huge blessing.
So one of the challenges that we've seen people facing coming out of
non-traditional education backgrounds,
such as I have a free code camp certification or some sort of other boot
camp,
or I'm self-taught is that that hiring process is difficult for them for
lots of reasons.
One of the reasons is that companies and organizations aren't always on board with hiring. I mean, more people are looking for senior developers than junior
developers. And people who are going through Free Code Camp, it sounds like they're having success
getting hired. Do you help them on that side of things? Or is there like a community support?
I'm wondering if there's like tips and tricks or how are people having that level of success of
like, yeah, I got through the program and I got a job.
Because like you said, the job is what most of us are after. So I'm just curious
if the community helps on the job side, or if once you're through the
program, you just are competent enough to get yourself a job.
Yeah, that's a great question. We've kind of made a neutrality
setup where we don't specifically guide people to specific companies.
We built out a job board, and know, you read about a lot of these
Silicon Valley companies that basically just pretend that they've got all this VC funding
and things like that. And then the funding never materialized. And these people have moved to this
expensive city and basically get stiffed on their paycheck. You know, we didn't want to be
associated with any sort of like project like that. So we just decided,
we're going to leave the job board stuff
and the recruitment stuff to the experts,
and we're just going to focus on training people.
Now, we do have interview preparation section
that has hundreds of additional algorithm challenges.
We've updated a lot of the Project Euler problems,
Rosetta code problems, and made them
interactive with tests that you can run right
in the browser instead of having to
you know, the old interface
for Project Euler was
it's like a 20-year-old website.
But it's just like you enter a number
and it tells you whether you're right or wrong.
It doesn't give you any more feedback than that and it
just takes a long time to enter it.
So rather than having to do all that coding locally
and then go and type a number into a web form and see if you're right,
we just modernized it and made it an interactive experience.
So we've got lots of interview preparation stuff.
We've also got, at this point, probably hundreds of
I got a job type posts on the forum.
And we've got lots of articles from people who transitioned successfully from other fields into
tech, who successfully got jobs at Amazon or Google or other places like that, telling how
they went through that process. Especially the thing that people underestimate the most is just the sheer numbers game that
the modern
developer job application
process constitutes.
It is quite
often for somebody who's finished
free code camp or somebody who's gone to a boot camp
to have to apply to hundreds of jobs.
Then they'll start
to get interviews and
they'll start to get offers.
But we just try to instill in people
the notion that this is hard.
This is not easy.
Anybody who tells you it's easy
to go out and get a developer job,
they're probably trying to sell you something
because it's not easy.
That's right.
So we have all these resources
and we have a supportive community
who's there to share in your accomplishments.
And you can just read lots of anecdotes that realize the statistics that we all know, that there are a tremendous number of developer jobs at all different levels.
Certainly, there are a lot of middle tier and senior jobs.
And the senior ones are the ones where the recruiters most actively go out and aggressively try to recruit people.
But there are definitely tons of small, medium-level businesses that just need somebody, you know, the church or the local food bank or the other organizations that want to have a nice website.
Or just need somebody to help set up like a Facebook group or or configure a Wix website or something like that.
From your vantage point, can you see trends there
in terms of it getting, by no means is it easy,
but is it trending up in terms of those entry-level opportunities,
in your opinion, or is it just kind of in a steady churn?
Obviously, this would be from your vantage point,
not like it's based on numbers.
So I could look at the numbers
and we do have quite a bit of data that we've made public.
For the last three years, we didn't do it this year
just because we'd already done it so many times
and there was already so much data.
It's a lot of work.
We did what's called the new coder survey
and it asks about 50 questions. We had like 30,000 respondents. It's a really New Coder Survey. It asks about 50 questions.
We had like 30,000 respondents.
It's a really huge data set.
Significant from a statistical standpoint.
If you dig into that, you can see how many months
of experience people had before they started applying for jobs
or how long they've been working for jobs.
You can play with the numbers and figure that out.
I don't have like a really well-informed answer on that.
A lot of what I hear is just at the street level people like saying that they got a job
or people saying they haven't gotten a job yet.
And reality is messy and every employer is different.
Every country is different too.
They, you know, European, and I say European,
that's really like a collection of a whole bunch of city
states. And then you go to India, you go to China, you go to all these other countries
where free cocaine is really big and the market's completely different. I've been to startups
in Shanghai where I walk in the room and half the people working in the developer bullpen
are free cocaine grads. So there are definitely jobs out there for people.
It's just a question of what those jobs look like and how many applications you
have to make and how many people are competing for those same jobs.
I will say this though, getting a job,
I think a lot of people think it's all about your skills,
but it's really about three things in my opinion.
It's about your skills.
It's about your skills, but it's really about three things in my opinion. It's about your skills, it's about your reputation,
and it's about your network, whom you know.
If you know the right people, you can get in,
even with subpar skills, subpar reputation.
If you have a great reputation, you may not be the best developer,
but people know who you are from your blog posts or from your YouTube channel, from your podcast, or just
from your open source projects that you've contributed to.
Everyone wants to de-risk a choice, right? And the way you de-risk a choice is by some sort of assurance
or certainty. So if you have a decent reputation,
you can kind of bet that you're a decent person.
Yeah. De-risking is exactly what I think employers are trying to do.
They're just trying not to make the catastrophic choice that results in them having to terminate
somebody, pay a whole bunch of severance, and then go through the entire job.
All over again.
Yeah.
And it's costly.
It's funny that who you know comes.
So it makes sense, but we try to be in a world where it's not about who you know because it almost seems unfair.
And yet it totally still is the facts of life.
Right.
That's what I mean.
So if you don't know the right kind of people, you can't build your reputation properly or at least maybe add to an area where you have less reputation.
You have somebody vouching for you, for lack of better terms. If you have a network to some degree associating with you they're for
kind of adding
to your reputation.
That you're trustworthy.
That you're
somebody worth
betting on
or taking a risk on.
And this is why
the local markets
are so important.
People focus so much
on Silicon Valley
and the hyper competitive
like trying to get a job
offer from Google
or Facebook
or Amazon.
But
if you go to a lot of communities,
like we're here in Houston, right?
And I live in the Dallas metropolitan area
and Jared lives up in Omaha.
Like these are all completely different tech ecosystems
with different employers, different hiring cultures,
different circles of people that meet together
for tech talks and events
and different professional groups.
I mean, if you learn your local meta,
and if you're content to stay in the city you are in currently,
there won't necessarily be a clear roadmap for you to get to that job.
But if you pound the pavement and if you get to meet people,
I think that things will work out for you
because you're already doing a lot more work
than most job applicants do.
Plus, like you said,
many companies
that aren't traditional
software companies
need software people.
And so,
as the old saying goes,
software is eating the world.
Every company is becoming
a software company.
Well, there's a lot more
competition to work
at the software company.
They need developers
because they develop
software for a living.
But there's a lot of companies
that just need like one or two people
and maybe their bar is a little bit lower.
The competition is going to be less.
Maybe you have a friend who works there.
Like there's just lots of those
what you might consider
non-traditional software opportunities
where it's like,
well, maybe they're not a software company,
but they have software needs
and I bet you can pitch in there
maybe even more so than you could at the place that has a hundred developers already.
If getting a developer job is hard, does that mean that it's got something broken in the system?
So if it's hard to get a job that way, it's somewhat of an indicator that there's a broken
system. Yeah. I mean, there's broken processes. Something's broken. What makes it so difficult?
It's hard here in the U.S.
Again, I have lots of friends in China and India and places like that where I think it's
comparatively easy.
Not in every city in those countries, but in a lot of markets, it's just much easier
to go out and get a job.
In the U.S., we have a combination of benefits and the legal framework and all these
things make hiring and firing very difficult. So because it's difficult to bring some, it's
costly to make a mistake, really. So that makes employers really risk averse, even in a field
where there's so much demand. And also employers, to some extent, are operating under pattern recognition.
They're like, oh, this person has worked at this company.
That's the biggest indicator of your likelihood of success.
Whom have you worked for?
Do they have similarly stringent hiring requirements?
If you've worked at Google, there's a very good chance that you're going to be a good employee
at XYZ Corp as well.
And these are things that I think there's a great... She writes a lot of articles for Free Code Camp's publication as well.
Alien Learner.
She does interviewing.io.
And she's written a ton of articles that are much more data-driven on this.
But I wouldn't say hiring is broken.
That's kind of a strong word.
But I would say there are very clear ways in which things can be improved
without having to completely overhaul the way that we handle labor
in the United States, for example.
Just pair programming or doing more take-home assignments
rather than doing whiteboard challenges would be one, I think,
fairly obvious improvement.
Because that is heavily biased toward recent college graduates who just spent a whole bunch of time basically going ad nauseum through
algorithms for tests and stuff like that. It doesn't work as well when you're hiring somebody
who's been out of the job market for a while, if they just had a kid, or somebody who has just
been working for a long time but hasn't interviewed for jobs recently.
Your mission isn't to get people hired.
It's to educate.
Would you say that?
Would you agree with that?
Or is it kind of both sides?
So our official – Because you said you don't really help place, so you're not – it's sort of part of – it's implied by your efforts.
So our official mission is just to help as many people as possible learn to code.
I think it's written at the bottom of every single page in our footer.
That's our official NGOs mission.
That said, virtually everybody who uses Free Code Camp
dreams of one day becoming more technical.
Now, whether that's actually being a software engineer
or just being a designer who can code, or a marketer who can code, or somebody
who wants to build a cool interface for their drone that they're flying around as a hobby,
somebody who wants to build an Alexa app just to impress their kids.
There are so many different use cases for programming knowledge, but it's all a net positive. I like to say that
back in the 1600s, you didn't need to be able to read to go out and work, right? But the people
who did sit down and take the time to learn to read were infinitely, not infinitely, but they
were dramatically better off as a result. Same thing in the 1920s. If you learned how to drive a car,
suddenly you had all these new opportunities open to you.
And more recently, like the 1990s,
people really learned how to use spreadsheets.
They learned how to use word processors.
They learned how to use these slide-based tools like PowerPoint.
And that opened up so many opportunities for people.
So yeah, you can get
by without it. You could be, you know, a Congress person, a Congress person in 2019, who doesn't
know how to type and just relies on the secretary to do the typing for them. Right. But real life,
like you're better off just gathering those additional skills. And I think that, uh, soon
people will awaken to the fact that being able
to code is very helpful and it does give you a whole lot of additional options.
This episode is brought to you by KubeCon CloudNativeCon,
and you are invited to attend this flagship conference
from the Cloud Native Computing Foundation.
It's happening March 30th through April 2nd next year, 2020, in Amsterdam.
This conference gathers the adopters and technologists
from leading open source and cloud native communities.
Use the code KCEUCHANGELOG to get 10% off your registration.
Again, KCEUCHANGELOG to get 10% off your registration. Again, KCEUCHANGELOG.
That's KC for KubeCon, EU for Europe, and changelog for changelog.
Or check the show notes for our special link to learn more and register.
And a link to the Convince Your Boss letter.
Again, check the show notes for our special link to learn more and register. so figuring out the financials is one aspect of sustainability another aspect is making it so
that quincy doesn't have to do all the work And surely you have a team at this point and lots of people contributing.
So I'd like to hear the different roles,
who's involved, and then as a follow-up to that,
how you inspired them to get involved
in Free Code Camp's mission.
Absolutely, yeah.
So Free Code Camp, currently we have
a lot of active contributors,
and I'm extremely grateful for all of them.
And we're getting ready to, maybe by the time this episode goes live,
we'll have our top contributors for 2019.
We've got some really nice backpacks that we're going to ship to them
to recognize their efforts as a 2019 top contributor.
It's got the Free Code Camp logo,
and these are the same backpacks that we sold a few months ago.
We're actually running a second run of those, too,
since we're going to be printing these top contributor ones.
But there are seven people who work for Free Code Camp full-time,
including myself.
And they are all generalists in the sense that they all wear a lot of hats.
Everybody comes up through Free Code Camp
as contributors after a few years of contributing.
If they seem to be particularly capable
or particularly passionate,
and we have the resources,
then we will bring them on.
And so currently the team is, again, me doing just everything.
I do support and I'm overseeing a couple different projects.
Then we have Bo Carnes who is running the Free Code Camp YouTube channel,
which recently became I think the biggest programming channel on YouTube.
It's got 1.4 million subscribers now.
There's a channel called The New Boston that hasn't been updated in like four or five years,
and they have more subscribers than we do.
But other than them, I think we're the biggest.
So Bo runs that.
He creates a lot of the videos.
He does a lot of the editing for our contributors.
And Bo also is working with a curriculum so bo worked as a teacher for i think
five or six years prior to joining free code camp a public school teacher up in michigan we have
abby abigail rennemeier she is based in portland and she worked as a archaeologist before.
She has like a totally different background.
But she had been editing thousands of articles for the Free Code Camp publication.
And she kept doing it.
And I was like, hey, you want to do this full time?
So she's been doing that.
She also runs the podcast.
So if you've listened to the Free Code Camp podcast, there's a good chance you've heard her interviewing people. And then we have Ahmed Abdul-Sahab. He's in Turkey. He recently immigrated to Turkey. And he is doing some exciting things over there. He does a lot of the design.
When we overhauled Free Code Camp's visual design,
he did a lot of that work.
And he also does a lot of just the day,
the in and out code maintenance.
Then we have Murgesh Mohapatra, who is in Bengaluru or Bangalore.
And he does pretty much everything
regarding the core code base and all the servers.
He's the person we call if something catastrophic happens.
And then we have Christopher Koishigawa,
who's in South Korea.
And he was working as a teacher for the last six years
and started contributing a whole lot to our interview prep section.
And so we brought him on.
So he and Bo are working together on the updated curriculum,
which I can talk about in a minute.
And then we also have Mia Liu, who is based in Hangzhou in China.
And she's running the Free Code Camp China team.
And we basically have a completely parallel organization in China.
And we've got Chinese language forum,
Chinese language publication,
and Chinese language curriculum.
And that's hundreds of thousands of people using that.
So I think I got everybody.
It is hard to always remember everybody on the spot.
Yeah.
As we experienced recently as well.
So that's amazing. You have a parallel organization
in China. Just curious in terms of
the Free Code Camp alum or even
just the users.
Your team is spread abroad.
And so where's your biggest
audience? Do you have the foothold?
India.
Is it India?
India and the United States are like neck and neck.
Sometimes India gets, there are more people in India.
Sometimes there are more people in the U.S.
And then Nigeria is third.
And China.
Is that based on just visits?
Or how do you?
Use.
Loading use?
Like time on site.
Yeah.
Right.
So you have Chinese translation.
Do you have translation into other languages as well?
Or just the two?
Yeah, that's a great question.
What we're trying to do is just really make sure that we have everything rock solid in Chinese.
And Chinese is bigger than most of the other world languages combined.
It's second only to English.
If you look at Wikipedia usage,
and this is what we used for our metrics
to plan internationalization,
we looked at how Wikipedia was being used
and we looked at the world language usage
for different translations of Wikipedia.
And then we looked at the total number of speakers
of those languages that were using the internet actively.
China is just exploding in terms of people adopting technology and they're very enthusiastic about it. Um, and a lot of them are getting great jobs and there's a lot of money
going into, uh, just a lot of different aspects of like artificial intelligence, like machine learning, essentially.
Yeah.
The real machine learning and also the ifs and then statements and stuff like that.
And then also there is a whole lot of expertise in China.
India, a lot of the great Indian engineers stay here,
and a lot of the Chinese engineers go back to China and create companies.
So I'm trying to think of some names of famous engineers
who've left Google or have left teaching at Stanford,
who've gone back to China.
But there are a lot of really promising companies over there.
So we wanted to do China first.
I personally, maybe I'm a little bit biased
because I lived in China for like five years.
My wife's Chinese and I'm just very optimistic
about the future of China.
Over the course of the past 30 years,
they've taken hundreds of millions of people
from subsistence agriculture
and they've transformed into a manufacturing center of the world,
and now they're transforming into much more services
and creative-based economy.
And learning the code is going to be a big part of that.
For sure.
Can you speak to the need for native language curriculum?
Like specifically with what I've heard, at least, with China,
is that there's this desire,
obviously, a massive amount of people there, but most of the documentation, a lot of the
books tend to be or are more likely to be in English.
Can you speak to the need for native language curriculum?
Yeah, well, it's always easiest to learn in your native language.
It's just one less thing you need to worry about.
A lot of people, more than a billion, have Chinese as their main language.
More than a billion?
Yeah, yeah.
I mean, if you include like written Chinese,
like there are a lot of spoken dialect variations.
How many on earth?
6.5, 7 billion people?
You're behind.
It's like 7.5 or 8. Yeah, it'll be 8 in like, you're behind. It's like seven and a half or eight.
Yeah, it'll be eight in like 10 or 15 years.
It's been a while since I've been to the stats machine here.
Okay.
But the point is that that's quite a lot of people.
I mean, more than a billion people.
That's a massive amount of people.
That's like, I was going to say one half Facebook, but I can't remember where Facebook's numbers are.
Facebook, I think, is 2.5 billion.
Yeah, it's not even half.
There you go.
Gosh, that's crazy.
It would make sense, too.
It's interesting, too, to hear your insights on the choice to use a massive global site like Wikipedia as an example to say.
That's smart.
You know, why did you choose?
Where did you choose first?
Under what circumstances?
Because in a lot of ways, what you're doing is creating a Wikipedia for like a better terms
for software developers right
curriculum is very much like that
Wikipedia has been a huge influence on us
and of course Wikipedia is mostly open source as well
and they're also a non-profit
so in many ways if Wikipedia
hadn't proved out the concept that you could have
a donor supported commons
of learning material
in their case more encyclopedic,
in our case more procedural, skill-focused learning,
Free Code Camp probably we wouldn't have attempted it
because we needed that proof of concept.
I'm not the kind of person who's going to throw
their entire livelihood behind a totally wild guess.
But I sensed, I guess correctly in retrospect,
that there would be demand there
and that people who were graduating from Free Code Camp
and going out and getting these great jobs
would turn around and donate back to the organization
and it would be sustainable.
Do you see somebody utilizing Free Code Camp
and maybe a boot camp as well or some sort of intensive?
Is there a scenario where it's only free code camp?
I know you're not trying to do that because you're very community-minded and oriented,
but is the intention to be free code camp alone
or is it sort of like a companion to other learning opportunities?
So I've always viewed free code camp as a core curriculum, if you will.
And a lot of coding boot camps do use free code camp as either part of their curriculum
or they'll use it as their pre-course work. And we have a really good relationship with a lot of coding bootcamps.
And I'm very excited about the future of coding bootcamps. Really anything
that can drive down the cost of adult education.
The hardest part about that, too, is curriculum development.
If you have to start from scratch every time you want to start up another bootcamp
opportunity in your neck of the woods, whether it's here in the States or elsewhere abroad, if you can shrink that time from desire to teach to teaching, it's a leg up on opportunity.
Yeah, I'd agree it's the hardest part, but it's not the most important part.
The most important part is the interpersonal relationships that a teacher or professor has with their students and that students have with one another
and the counselors that help you prepare
for the job search and all the other things that a university or a coding
boot camp or any sort of adult education program can
add, like the value added. The curriculum itself, really, if you think about it,
very few people actually design
curriculum in the sense that most universities
have textbooks.
And like everybody, like you go to
Econ 101 and everybody has
the same textbook regardless
which university you're studying at
for the most part.
Free Code Camp can be a free
interactive textbook
that these organizations can use.
And, of course, it can be used on its own, just like I could go to a library and crack open a textbook and learn economics.
Or I could learn how to program in C just from a textbook or from some sort of static resource.
The main advantage with Free Code Camp, of course, is it's experiential.
It's project-focused.
And things stick a lot
better when you're actually building.
How do you keep it fresh?
How do you keep it relevant, current?
And maybe the naysayers saying, oh, your curriculum is not current enough, or it is not idiomatic
enough.
Yeah.
How do you push back the haters, basically?
Well, we just focus on fundamentals.
We're not going to be covering bleeding edge tools for the most part.
I believe that everybody needs to just get a really strong foundation first.
And most of what constitutes foundational knowledge as a developer is stuff that was figured out in the 60s and 70s.
And in the case of mathematics, sometimes hundreds of years ago, thousands of years ago.
So what we're teaching is just the most ubiquitous tools
that are the most generally applicable.
I think Node.js is, to a large extent,
one kind of the web server war, if you will.
And JavaScript is useful for pretty much
any kind of web development.
We're getting ready to introduce Python as well
as a core part of the curriculum.
So currently it's six certifications.
Each certification requires you to build five projects
and get all their tests passing.
So we're adding four additional Python-focused certifications.
So right now our certification,
just for people who aren't aware,
front-end specific,
we have the responsive web design.
We have JavaScript algorithms and data structures.
Then we have front-end libraries, data visualization with D3JS primarily.
And then we have the full-stack focus ones, which are APIs and microservices and information security and quality assurance. So we're going to add four additional Python ones that will be either at the end of that
or we'll kind of break up those, but we're adding scientific computing with Python.
We're adding data analysis.
We're adding information security with Python.
And we are adding machine learning using TensorFlow, Keras,
and potentially Scikit-learn.
So we're adding lots of tools,
but these are not tools that are
groundbreakingly new.
These are things that academics
and practitioners in the field
have been using for years.
What about things like,
the small things,
like I think of the JavaScript syntax
and the updates to the language.
I mean the nice thing about web development
is mostly additive.
Like new technologies add on top of HTML
and on top of CSS.
With trends in JavaScript I think
the big change between callbacks
to promises to async away.
Those are things that do get outdated.
Do you just churn it out and keep it updated
or do you not fight those battles?
What do you do there?
We just update.
If one thing, for example, CSS variables,
we're probably going to rip out our Sass section at this point
because CSS is getting so many of the core features
that those preprocessors are.
They're taking Sass out.
Yeah, it's about time.
Yeah, and we still have a bootstrap section,
but probably just going to teach Flexbox and Grid and then like like we we still have a bootstrap section but probably just going
to teach flexbox and uh grid and stuff like that so so we do go through an update and like like
you just asked specifically as new features are added to es6 or es2019 or whatever they're calling
it this year right um we'll just go and update the individual lessons and And we kind of update them in situ and add additional lessons if necessary.
The entire curriculum is about to become
completely project-oriented.
This is something we started at the beginning of the year.
We're rewriting our lessons to all be building projects.
So instead of learn JavaScript,
and here are 200 JavaScript lessons
that are tangentially related.
Go through them.
It's learn JavaScript by building a role-playing game.
So you'll build a role-playing game and you'll learn basic JavaScript from that.
You'll learn typography from building a USDA nutrition label.
You'll learn all these different things through projects
and currently the curriculum is like 30 certification projects
and a whole bunch of lessons. Soon it is like 30 certification projects and a whole bunch of lessons.
Soon it will be 30 certification projects and also a whole bunch of practice projects, like 30 or 40 practice projects.
So those will all be interactive with tests the entire time.
And you'll build the projects one line at a time, one passing test at a time. It's so much easier to learn when you have some sort of like concrete expectation or visual in mind,
you know, like giving somebody a goal and not just abstract thoughts of like,
oh, here's, you know, as you said, 200 different tangential lessons on JavaScript.
It's more like, here's what we're learning in order to build something like this
that you've seen in the real world, you may have even used in the real world. Nutrition labels,
for example. What was that one for? That was tables? Learning typography. Typography. Yeah.
Yeah. Like visual hierarchy. Yeah. That makes sense. Yeah. So we've got, I mean, this is all,
of course, open source. It's all on GitHub. So if you want to see exactly how our curriculum's
coming along, you can check it out. And we're going to keep
plugging away at it. Like I said,
Christopher Koi Ishigawa and
Bo Carnes are working on this basically full-time
doing instructional design. They're both
trained classroom teachers who've
also learned web development
on their own through FreecoCamp over the years
and through other resources.
So it should be really,
really solid. And even if it's not totally solid when it launches, that's the great thing about open
source.
It'll gradually accrue a whole bunch of improvements and eventually it will be great.
Eventually great.
It's like eventual consistency.
Exactly.
So in addition to the refresh of the curriculum, you also launched a brand new refresh to the learning platform.
You're now buzzword compliant because you're on the Jamstack.
Do you want to talk about some of the new infra and the code
and what you're doing there?
Absolutely.
So Jamstack JavaScript APIs and Markup is what Jamstack stands for.
My friend Matt Billman over at Netlify coined that term in a bar at some point.
I don't remember the exact story.
But he's been a big proponent of just the security
and the performance boost that you can get
from just doing everything at build time
and then just serving the static files, essentially.
So now, if you go to freecodecamp.org
and you go into the Learn app,
pretty much everything is prepackaged
and you get the entire application.
It just loads and it'll work offline.
It won't work offline perfectly right now,
but we're working on getting it to be
like an offline-first app.
So there are a lot of advantages,
and a lot of those advantages have to do with the fact that we don't have to...
Sorry, that little thing threw me off.
Text message.
Okay.
Yeah.
A lot of those advantages just have to do with the fact that we don't have to spend
as much money on servers.
Yeah.
We can cash everything.
Has that been like a substantial difference for you?
I mean
I spend like 5,000 bucks a month on servers
what do you spend now that you're on Jam?
I think we're spending like 4,000
but we're still doing a lot of the optimizations
I mean it will, gradually it will reduce
yeah
eventual greatness
curious why
if you have such a
massive global audience why, if you have such a massive global audience,
why,
and this is just the partnership personality in me comes out as like,
why you wouldn't reach out to someone in that business to establish some sort
of partnership and make that zero or very low.
If anybody is listening,
who's like in a position to grant a whole lot of credits
or do something
you'll take them
yeah we'll take them
we use all
that we can get
from like Amazon
Azure
Google Cloud
like we use
all the credits
we can get
we just need a lot
are you
picky
on platform
are you picky
as long as it's reliable
so
Azure is where
a lot of our stuff
is hosted
DigitalOcean is where some of it's hosted.
We have to be very mindful about what services we locate where,
like how critical they are.
So far, Azure, in my experience, has been incredibly reliable.
And AWS is really reliable too.
But we decided to locate most of our database and our servers in Azure
because they gave the most generous credits, candidly.
They give every nonprofit
$3,500, $4,000 a year
in credits, and that's a big
head start. So we locate
everything in the same data center, it reduces latency.
So if
we had a significant offer
of credits, we might be able to
relocate the entire
stack for learn over to
a different place. But we wouldn't
want to do it piecemeal just because of the introduction
of latency and additional security
risks and stuff like that.
But either way, with the new stack, you've definitely
been able to shrink
said budget.
This is the very beginning of the process.
Isn't that the point of Jamstack?
You do it when you build?
Well, you said most of your stack is...
We still have servers that...
Are these things that are like APIs?
Yeah.
Whenever you complete a lesson, for example, it writes back.
If it can't establish connection with server, it just stores in local memory.
I think local storage is what we use.
Then when it reestablishes connection
then it pushes.
So we're building
on all that kind of
redundancy
and turgidness.
Right.
Very cool.
So any drawbacks
on the Jamstack so far?
Things that you're like,
oh, we didn't see
this one coming.
Cache invalidation
is always challenging.
You push a bunch
of changes
and they're cached
on Cloudflare
or Netlify
or CDN or something and you just have to wait until it propagates or hey, try changes and they're cached on Cloudflare or Netlify or CDN or something.
And you just have to wait until it propagates or, hey, try refreshing.
And we're working on figuring out a way to do that so we don't have to tell people, try doing a hard refresh.
That's every web developer's least favorite phrase is try refreshing because we hate saying that.
It's like, have you turned it off and on again?
Right.
It's kind of like the, yeah, I kind of failed at the cache and validation part.
Hard refresh.
You have to go teach people how to hard refresh versus regular refresh.
I've been there.
I've done that.
So that's been the biggest drawback.
And then I think Netlify was under a DDoS attack the other day,
and we had some uptime issues with that.
But again, they're doing the best they can.
They're a pretty small organization compared to like the AWSs of the world.
We just want to be there to support them.
And we're just grateful that like Netlify, Discourse,
a whole lot of other organizations have given us in-kind sponsorship.
And since they're not giving us money, but they are giving us servers and services.
That makes a big difference.
The third
pillar of what you're up to, we've talked about
the learning platform, the forums we
touched on at the very beginning of the conversation.
We haven't talked much about the
publication.
That's a big part of Free Code Camp.
We have freecodecamp.org slash news
and we have hundreds of authors who are publishing articles there every week.
We don't get hundreds of articles every week.
We're going for quality over quantity.
It's not an open publishing platform where you can just sign in and start publishing.
With the publication, you have to apply, and we're really selective.
I think we had 5% selectivity.
So most people, they'll submit a whole bunch of writing samples.
We'll force them to read our style guide and all that stuff,
make them jump through all the hoops.
If they want it badly enough, then we'll give them a conditional account,
like a contributor account, and then they can write drafts
and we can look at those.
And the moment we see one of the drafts that we're like,
yeah, this is ready to go, this is solid,
we do a little bit of editing, publish it,
and then we give them full access to our Google Analytics
so they can see exactly
who's reading their articles.
Basically everything Google Analytics tracks and we've got a bunch of
additional custom filters and stuff.
Make it really simple for them.
That's the only tracking we use, by the way.
We use Google Analytics because
at this point, server-side analytics are great, but you just don't have
enough information for the authors to be able to understand their readership.
This process of collaboration, or lack thereof, if there isn't any, on the edit process,
how do you handle that? Do you have sort of baked in processes where you're giving them feedback and suggesting edits,
or do you make the edits and say, this is how it is?
How does that, how's that relationship?
Yeah, we make the edits for them,
and then we tell them what edits we made generally.
Usually the edits are seemingly unimportant,
but actually really important.
Like the headline is by far the most important thing
to the point that I'm practically at the point where I was just like,
I'm just going to write the headlines for you.
Because that's all 90% of people see,
especially in the age of Apple News and Reddit and all these aggregators.
People just scroll through headlines and that's their news.
Very few people actually click through.
Do you actually say anything like a headline is a suggestion from them
and it is in your hands at the end.
What they write may actually become the headline, but it's actually just a suggestion.
We're clear that essentially they're writing and to save a whole bunch of back and forth,
a bunch of communication overhead that slows things down, we just apply the edits ourselves.
And people understand that.
They appreciate it because they understand that we care a lot about quality
and we want to get their article read by as many people as possible.
The way we do that, of course, is after they publish it,
we publicize it through our Twitter account,
which I don't know how many followers it has.
It has a high level of engagement.
Let's say that.
Generally when we tweet something, it gets retweeted like 10 to sometimes
100 times. And we also have a
huge LinkedIn alumni network and we get like 2 million impressions a month just off
LinkedIn, posting things on LinkedIn. And then of course I have my email blast that I
send out and I've got like a mailing list of like 2.5 million people.
So a lot of people click through and read those articles that I choose for the
email blast. So it's worth it. We're giving them a megaphone to reach a whole lot of
people and to really raise their profile in the developer community and they take that
opportunity seriously.
How often do you think about internal tooling? I'm talking about the back office apps, the tool the customer service team uses to access your databases, the S3 uploader you built last year for the marketing team, that quick Firebase admin panel that lets you monitor key KP kpis and maybe even the tool that your data
science team had together so they could provide custom ad spend insights literally every line of
business relies upon internal tooling but if i'm being honest i don't know many engineers out there
who enjoy building internal tools let alone getting them excited about maintaining or even
supporting them and this is where retail comes in companies like door dash
brex plaid and even amazon they use retool to build internal tooling super fast the idea is
that almost all internal tools look the same they're made of tables drop downs buttons text
inputs and retail gives you a point click drag and drop interface that makes it super simple to build
these types of interfaces in hours, not days.
Retool connects to any database or API, for example, to pull data from Postgres.
Just write a SQL query and drag and drop a table onto the canvas.
And if you want to search across those fields, add a search input bar and update your query.
Save it. Share it. It's too easy.
Retool is built by engineers explicitly for engineers.
And for those concerned about data security,
Retool can even be set up on-premise
in about 15 minutes using Docker, Kubernetes, or Heroku.
Learn more and try it free at retool.com slash changelog.
Again, retool.com slash changelog.
And by our friends at Square,
we're helping them to announce
their new developer YouTube channel.
Head to YouTube.com slash SquareDev to learn more and subscribe.
Here's a preview of their first episode of The Sandbox Show,
where Shannon Skipper and Richard Moot deep dive into the concept of item potency. Welcome to the pilot episode of The Sandbox Show.
A show where we'll...
Well, a YouTube show.
Where we'll deep dive into subjects that developers find interesting.
Don't worry, there will be plenty of live coding.
I'm Shannon, and this is Richard.
And we're going to cover a broad range of topics as the show evolves,
but for today, what are we going to be covering?
On this first episode, we're going to be covering item potency. We had talked to people
in our community, and the thing that people seem to be really confused by is this concept
of item potency and how does it relate to interacting with an API.
Right.
And so I didn't do some Googling on this beforehand, but I know that you did.
I did. So the definition of item potency comes from item and potent. So
item being same and potent power or potency. So it's the same potency.
Alright check out this full-length show and more on their YouTube channel at
youtube.com slash square dev or search for square developer again youtube.com What kind of pieces are you looking for?
Because I remember in your post you mentioned journalistic kind of stuff, eventually.
Eventually, we'd like to have explanatory journalism where we take net neutrality.
For example, I wrote maybe like 10,000 words about net neutrality.
And it put everything in context right during the peak of people asking about net neutrality and curious about it.
And it put it in a historic context with all the other mediums that preceded it.
The other media that preceded it like radio, cable, stuff like that.
And so that would be kind of like the archetypal,
like if I was going to lead by example,
I'd say we should be writing in-depth articles like this.
And there are plenty of other publications
that write like New York Times,
the Wall Street Journal.
A lot of them will just have really in-depth articles
that put things in a historical context. It's not just like this happened and this happened and this happened.
It's like this happened and here's why that's significant from a historical perspective
or here's what that means. So explanatory technology journalism,
that's kind of our aspiring goal. One of our goals is to get people to actually come to
freecodecamp.org every day and have something new and exciting that they
can learn. Right now, people just blow through the curriculum
and they get a job and they're like, awesome.
Free Code Camp, I used that back in 2017.
I hear that all the time.
And I'm like, we're still doing a lot of exciting stuff.
We're still here.
I was going to ask you about that
because it's one thing to,
if your mission is to educate as a primary mission
and you mentioned the three pillars,
it's going to be very difficult to keep a captive audience because of what you just said. So it's very easy for
people to be transient, given that their goals and their means have been covered and they're gone.
Yeah. And there's always more stuff to learn, right? Like, I learned a lot about quantum
computing in the past few weeks. I learned a lot about, you know, micron length semiconductor manufacturing and stuff like
that, right? There's always new stuff that's coming out. I mean, technology by definition is
new. So there's always new stuff. And just being able to explain how, you know, you orchestrate
with Kubernetes or how a Docker container works. What's the difference between a Docker image and a Docker container, right?
Or a Docker instance.
I can't even remember all the different terms associated with Docker.
You need an article.
Do you have, you've mentioned a free CodeCamp mission,
but it seems like the roles of these pillars are distinct.
So do they have their own agenda that feeds into a sort of main or corporate agenda?
Yeah, like why these three?
Yeah.
Yeah.
So we are strong believers in content.
I think that one of the biggest tragedies
is that so much of the rewards of the web
have been accrued by platforms
that are basically just aggregating other people's content.
If you look at like Facebook and all these companies,
they're benefiting from providing the basic infrastructure.
You could argue that Medium fits that boat, Quora.
They just create the software.
Everybody else comes and adds the content.
And people don't care about the infrastructure that much.
They really are there for the content.
It'd be like you saying Netflix should accrue 100% of the value
because they created such a great streaming platform
and the Hollywood movie companies shouldn't get anything
because, hey, they just created the content.
Content's free, right? Or cheap.
But content is not a commodity.
Really good content is incredibly valuable.
And if you look, there's the information, for example.
It's like this news publication
that charges like
hundreds of dollars a year
to get a subscription.
The Economist, historically,
has always charged like
$150, $200 a year
for a subscription.
And I think we're going to see
more and more
of these publications
that are like,
this is really high quality,
so we're not going to give it away for free.
At the same time,
there are publications
that do give it away for free,
like ProPublica
and The Guardian and places like that.
And that's because they're fully donor-supported.
They can do that.
And Free Code Camp, of course, being fully donor-supported by small individual donors.
We're a grassroots organization.
We can do that.
We can make everything free, and we can provide tons of content from our community and from ourselves, like paid staffers like me who are writing articles and things like that.
So let's talk about donations real quick,
and then we'll switch gears because I do want to talk about Meetup.
You mentioned platforms.
So $5 a month, let's just say I go and sign up for recurring.
I'm in, I like your mission, I got the cash.
I'm going to give you $5 a month.
Where does that money go?
Yeah, great question.
So first, we've got seven people.
Okay, first let me talk big numbers so so everybody understands free code camps 2019 budget was 373 000 that may sound like a lot of money but i know developers in silicon valley who
personally make more money than that a year sure that is maybe payroll for three or four people.
We're figuring out a way
to stretch it across seven people
and we're also paying
tens of thousands of dollars a year in servers.
The answer
is 100% of that gets
consumed by
what is traditionally called programs
when you analyze a non-profit.
There's fundraising, there's administration, and there's programs.
And we don't really have administration.
We don't do fundraising.
We just, that we have Quincy Larson saying,
please donate to our nonprofit, please, sir.
You know?
Right.
We don't have a PR firm.
We don't have a marketing department.
You could argue that we could do better and we could raise more money.
Yeah, I was going to ask that.
But that introduced a lot of complexity to the organization.
It does.
And right now, everybody who works at Free Code Camp
came up through Free Code Camp.
Right.
We never interviewed anybody.
Yeah, I get it.
And I would say I know a lot of nonprofits that do the fundraising side.
And of course, it's akin to a bootstrapped company getting VC funding.
I mean, there's some analogs there, but it's different.
But you could at least...
The hardest way is the individual
recurring donations versus
having a person on staff. Maybe it's
you or maybe it's somebody who's really good at going around
to the big
donors, to the foundation.
Maybe that's the reason
why.
My point is you could get a $1 million
grant.
But we'd be beholden into those organizations and also like that would kind of spoil us that's why going out and fighting in the field to like earn people's donations regular people people
who are just working day jobs have kids feeding paying mortgages but they're like hey yeah i can
spare five bucks for free co-camp a month or yeah it's the end of the year and I can just give them a thousand bucks or ten thousand bucks.
What about those companies, though, that are reaping the benefits of your work?
That's fine. It's like a positive externality for them, right? It's consumer surplus for them.
But there's uncaptured opportunity there.
I mean, you could argue the same thing with Wikipedia. I mean, how much value do you think Wikipedia
has bestowed upon the world by making it to where
I can get good factual information
within seconds from a relatively
objective arbiter of truth?
Yeah, there's a whole lot of value
that is not captured, but that's kind of the point.
Yeah, but then they also have to put
Jimmy Whale's face on Wikipedia for like
one month every year and bug the
dog do out of their users when they could
just do these other things such as
some tasteful ads.
I have no problem with advertising.
I think it's a great model, especially for podcasts.
But also,
if you don't have the invasive ad networks
and stuff, I think ads could be great.
Ethical advertising could be a...
I know you've decided to go pretty much ad-free
across the board. I think it's an admirable decision. That being said, we're back. I know you've decided to go pretty much ad-free across the board. I think it's an
admirable decision.
That being said,
we're back.
I cut you off
on the donations thing.
Pretty much that whole
five bucks is going
right towards programs.
Yes.
And there's no fluff.
There's nothing else.
It's all right there
for now.
We're extremely lean.
We're living lean.
I mean,
we have in-depth
discussions about
whether to pay for a $20 a month service because it's like, oh, yeah. I mean, we have in-depth discussions about whether to pay for a $20 a month service.
Because it's like, oh, yeah.
I mean, we just want to operate really efficiently.
A lot of my heroes, like Sam Walton, for example, kind of Walmart on this notion of thrift.
And you can argue that Walmart has not been the best employer, the best patron of different communities that it's been in.
But it's hard to argue that it hasn't been good for the end consumer because they've managed to drive down the prices of so many things.
Absolutely.
And save people an incredible amount more money, but they're choosing to kind of be broader and more resilient to changes in
the economy and things like that.
It's a trade-off.
Yeah.
It's a,
it's a trade-off,
but with free code camp,
we're never going to capture all the value.
We don't even,
if we can capture,
like just to give you an idea,
less than 0.1%,
or I'm sorry,
it's,
it's about 0.5% of our monthly
active users
donate. So it's just
a fraction. If I can
get a little bit better at my pitching...
You're going to my next question, so let's
talk about scale. What are the conversations
you have with yourself or
anyone else on the team about
when you said your budget was $375,000
a year or $378,000?
$377,000.
For this year?
This year.
$373,000.
Sorry.
$373,000.
So when you talk about growth of revenue or income dollars, however you describe it in nonprofit senses, what are the ways in which you made that number grow?
Yeah.
So we just get more people using Free Code Camp.
It's as simple as that.
The more people that use Free Code Camp,
a certain percentage of them will go out and get great jobs
and turn around and donate.
Sometimes we hit a windfall.
Like I was saying earlier, we had somebody who donated $10,000
earlier this month, Sean Wang.
He went through Free Code Camp.
He works at Netlify, and he had money at the end of the year, and he wanted to donate it to a high-impact charity.
Free Code Camp, just to put our efficiency, our capital efficiency in perspective,
we have delivered 1.1 billion minutes of instruction this year.
That's the equivalent of 2,000 years of learning in one year.
We've done that for $373,000.
That's the equivalent of 50
hours of instruction
for every dollar spent.
Now you're putting in terms I like to hear.
That makes my five bucks feel a lot bigger.
Yeah, so your five bucks each
month is essentially paying for an entire
classroom of people to learn.
One thing that is important to note also is that these people are able to do it for free.
And the scale that we're operating at, you know, it's not only self-paced and free and fully interactive.
It's just incredibly cheap. Like to put that 50 hours per dollar in perspective in the United States, the average
cost of having a child in a public school is $10 per hour per child. So free code camp is several
orders of magnitude more efficient than like, and granted they're trying to accomplish totally
different things. We don't have classrooms. We don't have a teacher with a student-teacher ratio of like 17 to 1 or whatever.
We just do instructional design and people work through it at their own pace.
But it's because of those concerted decisions that we're able to be dramatically more efficient.
These are all conscious decisions we've made because our ultimate goal is scale.
Our ultimate goal is helping as many people as
possible for as little money as absolutely necessary. I like the fact that you're focused
on those two metrics. You grow the number of free CodeCamp, I guess, interested people,
users, however you want to describe it. And then that obviously impacts the ratio of donors.
And you can sort of grow that one to grow this one,
or you can grow this one too.
I mean, like meaning, you know, if you grew the amount from 5%.
0.5%.
0.5%.
Yeah.
Okay.
0.5%.
Geez, if you double that.
If you double it to 1%.
Right.
I mean, so you can sort of focus on those two metrics,
either grow the total captive audience or grow the ratio of donors.
I like the simplicity of focusing on two things
rather than so many other things to grow, to scale.
And that's why I'm reluctant to bring in a fundraising expert
or to try to personally fly around
and meet with the CEOs of all these different companies.
If you can get by without it, it's obviously better than not have to do that.
And it seems like you're on that path.
You have these two numbers.
The higher leverage one is honestly the percentage.
But you seem to be pretty good at growing the top-end funnel at this point.
All these people using it.
You've also been very patient.
Based on four years ago we talked to you,
and you're also, and I don't want to use this word too loosely, but you're not greedy.
Right?
Like, there are some people that just – and maybe it's – I don't know really how you describe greed where it's not egregious or something.
Like, where it's – Overly greedy.
Yeah, you know, like –
You have the right level of greed.
Right.
You know, you can have
capitalistic ambitions
and not be greedy
you know
you seem to have
a patience
that is uncanny
well
for that
where it's not
not everybody has
the kind of patience
you have
yeah well I
I managed
you know
for profit companies
before I started
free code camp
like as a school director
essentially
like it was a private
intensive English program and you know I had to make sure that we had a good
EBITDA and all those metrics that matter.
And I have kind of a traditional business background in addition to my education background.
So I can understand the physics of business, so to speak.
And that's really helpful because that gives me some perspective.
And it's kind of like if you're a jazz musician,
if you don't know how to play, you can just do chromatic scale,
play whatever, it doesn't sound good.
But if you do know how to play, you know exactly how to break the rules
and how to bend the rules to make it sound really cool.
So that's, to some extent, the fact that I'm older,
I'm going to turn 40 next year,
that gives me a huge edge because I've got the life experience.
I had run a lot of organizations before Free Code Camp,
so I knew the people part of it and the budgeting part of it.
So I guess, in some respects, one of the reasons I'm more patient
is I'm more confident in the state of the world
and how things work and fit together. And also, you know, I had my wife who has the patience of Job
and she had a job with benefits and, and we had health insurance for our kid and for ourselves.
And so I didn't need to, you know, run out and buy that Ferrari or whatever it is that,
you know, startup people do when they exit.
Like, Free Code Camp will hopefully go on forever and hopefully, at least for the rest of my life,
which I'm hoping to live to be, you know, 90, 100, like, hopefully I can continue to be involved
in leading or helping somebody else lead the organization for the rest of my life.
So everything is long term.
This is not a problem that's going to magically solve itself.
You look at how long it's taken to get people to even get literacy to the rate it is after 400 years, right?
This is going to be an ongoing challenge to teach people about technology.
We probably have people coming into developer land at a faster rate than the birth rate at this point.
Just a thought exercise.
Think about which one's actually happening faster.
So I think maybe we're converting more developers and then we're birthing them at this point.
So huge, massive, forward-looking opportunity as well and impact.
So let's do a hard cut to...
Can I ask one question before we do the hard cut?
Yes.
Have you gotten offers or people, venture capital,
anybody that's come to you and said,
Quincy, I will buy what you got.
I will give, you know, whatever it might be.
Have you gotten some...
Like how often do you get these things?
I'm not going to say the names,
but we've had some big companies that like have approached us
for like
acqui-hire, I guess. I don't know how
it would work. I mean, this is before we
got the tax exam status.
But once we got that, people just left us alone
because you can
in theory unwind an NGO.
Like if somebody wanted to acquire the
Red Cross, it'd be like this bureaucratic
nightmare. I mean, you spend
so much time. But it is possible to convert. Yeah, but that's like this bureaucratic nightmare. Really? I mean, you spend so much time. I'm sure.
But it is possible to convert.
Yeah, but that's never going to happen here.
And I'm grateful that those organizations saw value in Free Code Camp,
but that's not where we're going.
We don't want to be Free Code Camp by Acme Corporation or something like that.
Right.
I just would imagine the offers are
a plentiful and the temptation is, is, uh, is very, I mean, it's not really for me.
It could be, I mean, for some depends. Yeah. I'm just a simple dude. Like I like hanging out with my kids. I like reading books and, and, uh, going for runs, you know? I mean,
I don't know because I'm in this very fortunate position where I live in a really advanced country
with rule of law, order.
You get more money, it's almost like an insurance policy.
If I get cancer, I'll be able to pay for all my chemotherapy and my radiotherapy
or any surgeries necessary.
If my kids get cancer, I'll be able to pay for that.
So money at some point just becomes a score, a number,
that in theory you can dip into if you really need to.
I don't think that that really applies to me.
I'd much rather just be a normal person
and have a normal kind of middle class, middle American life
than be cruising around in a Ferrari in San Francisco or something.
Hard left.
Go ahead.
Okay, hard left turn.
So in closing,
we're going to talk about this topic
because you're not busy enough
with Free Code Camp.
You decide, you know what we want to do?
We want to disrupt.
We want to disrupt meetup
with an open source
event planning platform
for not just for developers,
but for everybody to be able to just set up
their own instance with a Docker container.
Tell us about Chapter
and why you're doing this
and how it relates to,
at least relates to the current,
to the recent changes in Medium.
I'm not sure if it was actually inspired by that.
If you're already working on it
and you're like, oh, this is opportunistic,
tell us the story of Chapter real quick.
Yeah, so Meetup was acquired by WeWork a couple years ago.
WeWork, as we all know, was not worth as much as they said it was.
Pretty disastrous reversal, reverse IPO.
Yeah, it's one for the history books.
But anyway, WeWork, of course, as of October when I made this announcement,
it was a few hours after Meetup had announced that they were enacting this new policy
that they were going to charge everybody a $2 RSVP fee whenever they RSVP'd for an event.
Now, Free Code Camp, relatively, has 40-ish meetups on Meetup.
Most of our study groups are organized on Facebook because it's free,
but some meetups will pay the $20 a month to have a Meetup page,
which I think is ridiculous that it costs that much money, but it does.
And people are willing to pay for it.
So we quickly did some back-of-the-envelope calculations,
and based on the number of events we had,
it would have cost us like $20,000 extra every year,
not just to us but to the entire community in aggregate
if they were all paying this $2 RSVP.
And that $2 is essentially yours to potentially get as a donation,
so it just diminishes your opportunity.
Or it's just money in their pocket that they shouldn't have to spend
to RSVP or free event.
And it's not for the organizer.
It's for the people who are funding it.
It's for Meetup.
It's for the platform, the infrastructure that hasn't changed.
The only notable thing that Meetup has done in the past 10 years was get acquired by WeWork.
They have been standing still in terms of product, in my humble opinion.
And I say this as somebody who's been using Meetup for the last 10 years.
I can say that as well because there's like I recently as part of this
was like I thought I closed my account. I double checked
on it. I didn't. I was like I'll close it. Because I thought
I did before. I think when they
were acquired by WeWork. It was just like. I never knew
they got acquired. I just this was the
first I had heard. I mean I'd just been a
grudging meetup user as well. Just more
from the. They'd done some other stuff too.
I can't recall what but it was just like you know
what I you know if I'm if it wasn't oh, I'm canceling Meetup from my life.
It was more like I don't use the platform anymore.
I don't find value in it.
And I'm like, wow, if you leave a profile somewhere,
at least your data is still there.
So there's still this opportunity for them to use you
when you've since gone away.
So my thought was like,
I'm going to pull my account
and not do that anymore.
Well, what I love about
the open source community is like,
we don't have to put up with that stuff
if we don't want to.
That being said,
somebody has to step up
and like throw some code on the table
or a spec on the table.
Yeah.
You know, that's one of the things
we talked with Siege Bot
about what they're doing
with the federated replacement
for the package management.
What's it called? I can't remember the name of it.
Entropic?
Yeah, Entropic.
And just the fact that it's like,
well, we could all sit around and complain.
And hey, as people who talk into microphones a lot,
some of what we do is just like...
The easiest thing for us to do is to complain.
Yeah, we complain quite a bit.
But in the open source world, it's like,
hey, we can actually solve some of these problems.
And that's why I was just impressed by the announcement.
And you guys, it's at least the beginning of an effort
to say, you know what?
Meetup has value.
This is a thing that needs to exist.
But it's not like it's irreplicable or replaceable.
It's not that complicated.
So yeah, we quickly made an announcement.
I thought about it really hard.
I just decided, yes, this is important enough.
This is going to make a big enough difference for just us
that it's worth having a self-hosted chapter management tool.
I mean, that's what it is.
It's for multi-chapter organizations.
So we're not trying to boil the ocean and just say,
all events everywhere, just like Meetup is, right?
We're just focused on the YMCA or the Boys and Girls Club of America
or Rotary Club, Lions Club, some of these other organizations
that have lots of chapters.
They can just have their own server.
They can have full control of the data,
and people can go there and set up events,
and they can have chapter organizers,
and then they can have some discovery within their own organization and they can just
have a little subdomain or sub directory that's like you know ymca.com slash chapter or women
who code.org slash chapter or something like that right so as far as how it's coming along
i tweeted out this kind of somewhat angry tweet by quincy Larson, relatively emotionless tweet standards.
And a lot of people were like,
yeah, that's messed up.
You know, like it was like,
I think it was a tweet of the screenshot
of like the meetup,
you know, cheerful announcement.
Oh, great news, everybody.
Right.
Yeah, this is actually going to
slightly reduce your cost as an organizer
and pass like massive costs
onto the community.
But anyway, a lot of people retweeted
it, and I had a little link to a Discord room,
which Discord is not open
source, of course, but it is pretty convenient
for just organizing an impromptu
thing. I've used it for hackathons and stuff.
So everybody jumped in there,
and we got like a thousand people jump in. Most of them
just, of course, promptly left and forgot about it, but some of them
stayed, and we started brainstorming
like, what kind of tools are we going to use?
What's the user story?
What are they going to look like?
Who are the roles?
And we quickly got a lot of stuff hired out,
like got the schema,
got an API documentation up,
got an API up.
So now we're just building
a lot of the additional functionality we need for our MVP.
But soon it'll be out, and of course it won't be amazing
right off the bat but eventually it'll be great
I love this
of course it won't be amazing
but eventually it'll be great
theme for the show, eventual greatness
so how do people get involved
I mean typical GitHub flow
find chapter in the show notes
and get involved because it's a thing
that we could all
could use
and if you could use it
and you want to have
seems like
to me
pretty easy entry
low hanging
like collaborator fruit
like hey
here's a pretty open project
that's still getting
itself figured out
that's the best time
to get involved
because like huge impact
like you can be
you can be a big contributor
early on
check out chapter from the Free Code Camp crew.
Yeah.
Would you say it's a meetup alternative, though?
Well, for our purposes, as an NGO that has lots of chapters around the world,
absolutely.
We're not going to use meetup anymore.
So you're solving your own problem first,
and hopefully the problem you have is multiplied by many others.
Yeah, well, I'm confident it is.
Sure it is.
But even if only we used it internally,
it'd still be $20,000 in savings,
and also the pride of us being able to go in and tweak things
and not having all of our user data just be owned by WeWork
and their desperate cash-squeezing efforts.
So what about
more traditional meetups?
So we have the
Nebraska JavaScript meetup.
It's just a very typical
JavaScript meetup.
It's chapter,
it's not multi-chapter.
It's just like,
well, we do a meetup
and you can RSVP.
You could run your own instance
that's just 20 bucks
for whatever,
five bucks
to get a tiny little server
that'll run it.
We're trying to make it
as compact as possible.
Instead of using Elasticsearch, for example,
we're just going to use Postgres queries.
So little tweaks like that
that just reduce the number of services
we have to have running in a Docker container.
Has the idea of Federated ever made it into the...
And how did that go?
What are the thoughts around that share?
I mean, not necessarily from a technological perspective,
but just like a way that you can opt into being part of a shared discovery network.
Right, exactly.
Because the main benefit of Meetup is really discovery.
Yeah, exactly.
Right?
That's the only benefit.
I mean, if you have your own organization,
you already have a mailing list of tons of people,
people know your website and they're visiting it already,
then you don't need to worry as much about discovery, but it's
still a nice thing to have.
You still go there and check your interests, too.
If a new group comes up near you
geographically, let's say
my interests are JavaScript and Ruby,
anytime anything touches those two
areas, then I'm going to get
notified.
You wouldn't want to just prop up your tent
without an audience and
no opportunity for discovery yeah yeah you wouldn't i was curious about federated i mean
this could eventually come to uh displace meetup in a lot of respects but that's not our goal at
this point even though initially i was like so angry at meetup i was like yeah let's let's just
create a meetup killer but i that's not how I think when I'm thinking clear-headedly and I don't see red.
I think practically, what can we do for our organization?
What can we do for our community?
And this is a right scope, right scale tool that's going to work for them.
Well, it's been five years, four since we last talked, five since the inception.
This is your fifth year anniversary.
Similar question in the companion podcast you asked us, which was, hey, what's the next five years like for you?
What's the future hold for you?
Are you lack of visionary like I am currently, or are you visionary and you've got lots of ambition?
I have an incredible amount of things I'd like to do.
A lot of it comes down to how much we have in our budget because we don't want to
overextend ourselves. We're a tiny organization. We want to make sure everything we do, we do
properly and that we're not spreading ourselves too thin. So if we can continue to grow our budget,
we'd like to do a lot more explanatory journalism and explain a lot more about technology and put tech news in context through really in-depth primers.
We'd like to create a lot more really good first-party courses,
and we'd like to create a lot more interactive curricula.
We'd love to be able to figure out a way that we could pay for servers
so that we could actually have Linux-focused challenges,
Git-focused challenges,
all these things that require file systems essentially.
You can only do so much in the browser.
For example, we're able to do Python
because Mozilla just released a giant library
that's a significant update from
Brython or some of these other
browser-based Python tools.
But we'd really like to
be able to actually have full development
environments on a server
that is showing up on Freecode Camp
that you yourself have your own little mini compartment
on the server.
It costs a lot of money.
If we're able to increase the budget,
we're going to just keep doing what we do
with those three pillars.
We're going to keep growing the number of people
on the forum and by extension in IRL events.
And we're also going to just keep creating articles and videos and we're
going to keep expanding the curriculum.
Gosh,
we haven't even talked about that side of the publication,
your YouTube channel.
I mean,
we're on there theoretically.
Subscribe.
We do have a YouTube channel.
Click the bell for notifications.
You can every time you listen to the like and subscribe.
Yeah.
Click the bell. That's Don't forget to like and subscribe. Click the bell.
That's right.
YouTubers, they always...
It's like subscribe and the bell.
Right.
Why did YouTube do that?
They want you to have to subscribe twice.
I've never hit the bell in my life.
Actually, it's kind of like a double opt-in.
You subscribe because you're interested.
What's the bell give you?
Notifications.
I don't care that much that you watch a video.
I'll come watch it on my own terms. Thank you very much. No one's that important. Well, that's where the double you? Notifications. I don't care that much that you watch a video. I'll come watch it on my own terms.
Thank you very much.
No one's that important.
Well, that's where the double opt-in is.
I mean, I get it from the creator side.
I would love to have the bell for my channel,
but I don't want to have your bell for my feed.
Keep your bell, all right?
Keep your bell.
Well, Quincy, man, it's been amazing.
What a journey.
It's been fun watching you over these last five years.
The numbers speak for themselves.
I think the fact that you can educate at such an efficient rate
makes total sense for people who have the funds
and have benefited from Free Code Camp
or know people who have,
that five bucks seems like it makes a lot of sense.
So one more time to pitch to our listeners,
if you appreciate the work they're doing
and you want to help educate the next generation of coders out there,
whether they're young or old or what part of the world they're in,
no better way than to do a recurring donation to Free Code Camp.
And when he says better, no better, there's no more efficient way
right, and the leverage is amazing
yeah
thanks for sitting down with us
we really appreciate you and all the work you're doing
thanks again for having me back
it's been a privilege talking to you gentlemen
thanks Quincy, same here
alright
thank you for tuning in to this episode of the changelog. Hey, guess what? We have
discussions on every single episode now. So head to changelog.com and discuss this episode. And if
you want to help us grow this show, reach more listeners and influence more developers, do us a
favor and give us a rating or review in iTunes or Apple podcasts. If you use Overcast, give us a Thank you. myself, Adam Stachowiak, and Jared Santo. And our music is done by Breakmaster Cylinder.
If you want to hear more episodes like this, subscribe to our master feed at changelog.com
slash master, or go into your podcast app and search for changelog master. You'll find it.
Thank you.