The Changelog: Software Development, Open Source - Rebuilding Exercism from the ground up (Interview)
Episode Date: August 8, 2018Adam and Jerod invite back Katrina Owen after years away focusing on Exercism—a 100% free platform for code practice and mentorship with over 2500 exercises and 48 different language tracks. They ta...lk to Katrina about how the platform has changed, the direction it's taken, the backstory on the recently launched version 2, and how she plans to turn Exercism into a sustainable business. Also, what happens if that doesn't work?!
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 servers. Head to linode.com slash changelog. This episode of the Changelog is
brought to you by Hired. One thing people hate doing is searching for a new job. It's so painful
to search through open positions on every job board under the sun.
The process to find a new job is such a mess.
If only there was an easier way.
Well, I'm here to tell you that there is.
Our friends at Hired have made it so companies send you offers with salary, benefits, and even equity up front.
All you have to do is answer a few questions to showcase who you are and what type of job you're looking for. They work with more than 6,000 companies,
from startups to large publicly traded companies in 14 major tech hubs in North America and Europe.
You get to see all of your interview requests. You can accept, reject, or make changes to their
offer even before you talk with anyone.
And here's the kicker.
It's totally free.
This isn't going to cost you a thing.
It's not like you have to go there and spend money to get this opportunity.
And if you get a job through Hired, they're even going to give you a bonus.
It's normally $300.
But since you're a listener of the changelog, they're going to give you $600 instead.
Even if you're not looking for a job, you can refer a friend and Hired will send you a check for $1,337 when they accept the job. As you can see, Hired makes it way too easy.
Get started at Hired.com slash changelog.
Welcome back, everyone.
This is the ChangeLog, a podcast featuring the hackers, leaders, and innovators of software development.
I'm Adam Stachowiak, editor-in-chief of ChangeLog.
And on today's show, Jared and I are talking to Katrina Owen back after years away, focusing on Exorcism, a 100% free forever platform for code practice and mentorship with more than 2,500 exercises and 48 different language tracks.
Exorcism welcomes everyone to level up their programming skills
and achieve fluency in the language of your choice.
And we talked to Katrina about how the platform has changed since we last spoke,
the direction it's taken, the backstory on the recently launched version 2 of the site,
and how she plans to turn exorcism into a sustainable business
and what happens if that doesn't happen.
Well, Katrina, it's been, I guess, a journey.
You've been on the show several times.
You've been on Spotlight.
You've been on GoTime.
You've been on the ChangeLog.
Exorcism is your thing,
but it's not your full-time thing,
but it takes so much of your life up and now
you're here at version 2.0 with some big big stuff happening let's uh catch us up what's been going
on that's uh that's a really complicated question uh of course it is we have an hour so just go ahead
yeah we're listening um at one point let's see okay so i started exorcism five years ago and talked to you right
after that yeah um and for the past past five years i've been switching jobs up a little bit
trying things out mostly trying to keep exorcism running uh as a background process but sometimes
it does take over yeah it does tend to take over nights and weekends a lot um sometimes i'll take vacations and then
work on exorcism which is i've heard a bad idea because it turns out you need vacations um so i'm
trying to fix that to where i actually get to take vacations um but yeah no i uh i work a full-time
job at github on the api team there uh and then exorcism is my second gig it seems like
truly the second gig too because i mean it's you got uh a gigantic staff of mentors you got
volunteers you got tons of things happening i mean 48 different tracks slash languages
yeah a lot i mean this is clearly not a one- operation. No, no. Thank goodness I'm not alone on this anymore.
48 active tracks. Each of those tracks has their own maintainers.
So people who are familiar with the language, comfortable with the language, who care about the language and who help ensure that the track is solid that we have exercises that cover the broad range of language features and the broad range of the standard library to give people something to sink their teeth into. track in particular, but who will jump in and help out either on, uh, on exorcism, sorry,
on GitHub, on the exorcism org, um, answering issues, uh, fixing little things across,
across the board, or also jumping into some of the, some of the chat channels that have sprung up
around exorcism and helping people get, um, unstuck and started.
So like the individual Slack, I'm assuming Slack or other types of Slack type things
where teams are happening or communities are happening around existence?
Communities.
Yeah.
So, so we have a, a Gitter channel that I, I don't personally go to cause I, I can't,
you can't turn off emoji in, in Gitter.
So I just can't handle it very well.
But people do hang out in the, in the Gitter chat and a bunch of volunteers are there constantly
helping people get their environment set up or debug the command line client issues,
or just even with programming questions. So some wonderful people there who hang out.
Maybe just to catch everyone up, what is Exorcism? That's an excellent question.
Exorcism is a platform for practicing programming. In particular, the key place where Exorcism
shines is where you know how to program or kind of know how to program in one language or several
languages, and you need to ramp up quickly in a separate language. So that gives you
a quick path or a solid path between that awkward hello world where really everything you can
write code that will compile, that will work, but it's a struggle. You have to keep looking up. You
don't remember the syntax, the data structures. you're not familiar with a standard library.
And then it gives you a bunch of little exercises that you can run through, which help you just give you an excuse to use the language in really trivial settings. And then at the end of it, you should be familiar with it.
You should have that sense of fluency where you're no longer feeling like you're trying to communicate with your hands
tied behind your back. At the risk of just completely sidetracking this conversation,
did you say that you can't go into Gitter because it won't let you disable emoji?
Yeah, I can't stand emoji. Are you just like allergic to emoji or something?
So I find them, first of all, I find them kind of obnoxious. And then second of all, they add a layer of translation to communication that I find really difficult to process.
So it'll be some sort of face that has some sort of emotion painted on it.
And I can't tell what that emotion is.
So I'm always forever looking up what the emoji actually corresponds to.
And it'll be like thinking or
worried or grinning. And I don't like, if I just see the emoji itself, I can't tell,
um, I can't tell what it's supposed to mean. So you're probably having a difficult time in an
ever-changing world where emoji uses to just kind of skyrocketing at the moment yeah try working at github um they literally will write out sentences
that consist of emoji and and assume that you'll know what it means ice cream bike blow cloud it's
like i have no idea what this means no it means i'm going to lunch or whatever like i have no idea
just say i'm going to lunch i know it right uh i see you must have a tough time on the internet
then basically like there's really nowhere you can go that has I know, right? See, you must have a tough time on the internet then, basically.
There's really nowhere you can go that has solitude or sanctuary for you.
Well, you know, I just don't go there very often.
There you go.
Well, good thing you're building things for GitHub's API and a web property like Exorcism.
See, in the API, we don't really deal with emoji except for accepting emoji as parts of of like comments or labels so i don't have
to look at them all too much in my day-to-day work i just prefer to look at the unicode code points
you know there you go just translate those okay so that's it that's interesting i haven't heard
of anybody i know there's people that do not you know prefer to use emoji or don't like emoji but
they like actively disape or uh disengaging in a specific community because
of emoji is just, just caught my ear.
So in Slack, they let you turn them off, which is really great.
And they even fix the reactions.
It used to be that you could turn them off, but it would only turn off in the actual discussions
in the threads, not in the reactions.
But now the reactions will also show you colon thinking colon or colon, you know, party or pizza.
I see.
So it just leaves the underlying text.
Yeah, which is much more helpful.
Yeah, I can see that being a good compromise for someone who wants to not see the image.
Just give me the text version that translates it and I'll do that. Now, to digress even further, I actually find emoji really, really useful for statuses like predefined labels that mean something.
You have an agreed upon convention that the green checkmark means that this is done.
The eyes mean it needs someone to review it.
Stuff like that I find really useful.
But then it's a very small set and well-defined. Yeah. I like to use them in labels. For instance,
like in my notes, I'll have different categories of notes, like changelog, house, ideas, like all
these things. And at the beginning of each one, I will put like for ideas, there's a light bulb
emoji. And for house, there's like the house emoji. And so since that's first, I can identify that faster than I could actually identify the words as I'm, as I'm
scrolling to get to the right folder. Yeah. Very, very valuable. Yeah. With a well-defined taxonomy,
I think that emoji are, are really great. And I totally understand that for other people,
it makes things playful and it helps them communicate better. It's just my personal
thing is I find them kind of challenging. All right. So shall we bring it back?
And digression. Yes. Let's go back to the stack and pop that off and start where we were,
which was exorcism. And Adam mentioned that we had you on, uh, it was like five years ago.
And you said that that was briefly after exorcism had launched. I remember at the time,
I think you had gotten featured in wired and just usage just went through the roof. Was that the
right train of events?
There was a big feature and all of a sudden Exorcism was blowing up.
Yeah, it was blowing up, not just because of the Wired thing, but it also hit the front page or like the top of Hacker News and the front page of, I can't remember what it was, Slashdot at the time.
So it got a ton of attention, which i was completely unprepared for and then um
another thing that made that particularly difficult was um we didn't really know what
exorcism was at that time like now it's very clearly uh the the path between the awkward
hello world and the basic fluency where you're not very proficient in the language but you are
um fluent in the idioms and the basic usage. And at the start, we had no idea. People were complaining because exorcism wasn't
teaching them how to program. The title on the Wired article was actually the site that will
teach you how to program well enough to get a job or something like that, which I had never claimed
at all. And which exorcism didn't do.
So we got a lot of people who started,
who tried to use it,
who were definitely not,
um,
well equipped at the time to,
to get started trying to,
you know,
download a binary and stick it in their path.
And they don't,
they've of course,
they've never heard of path before.
Right.
I remember talking about rewriting the CLI from ruby to go yeah that was like all
that as well at the time that was influential it was it was pretty early on that was mike gayheart
i think from pivotal labs at the time i don't know where he is right now but he um he was the
one who who suggested go as a solution uh to to our problem. So the problem was that when Exercism launched, we only had exercises in Ruby because I was just doing this as a workflow thing at work.
And then someone added Haskell.
And then the Haskell people were like, why do I need a whole Ruby environment just to do exercises in Haskell?
That's a really good question.
So Mike did the first reimplementation of the CLI. And then I've had
a couple of people help maintain it over the years. And we've done a complete rewrite again,
still using Go for the V2 launch. Yeah, which we're going to dive into all of the details of
V2, which like you said, was a ground up rewrite or rebuild according to the launch announcement with a lot. I mean, and you,
you really revisited, it seems like like every aspect of, of the platform. So here it is five
years later. Now it feels like, you know, what exorcism is now. And so maybe that's part of like
this rebrand and you can tell us a little bit about that journey, but I guess even more
foundationally, you know, Adam and I were wondering before we hopped on the phone with you about your motivations and desires with this and where they were when you started it.
And then just to put it very frankly, like, why are you still working on this today?
And make it like, why have a second job, which is just a passion project?
Tell us, tell us your motivations.
Early on at the beginning, I didn't really have a reason to do it other than that it
scratched an itch that I had, and I thought it would be fun.
And I was kind of right about that.
It was a lot more work than I expected.
But for a while there, I was doing it out of a sense of obligation where I felt like
I couldn't let the community down.
There were thousands of people using it, and I got emails and tweets and things from people who were telling me how much it really
helped them get past a barrier or get their first job as a junior developer or land a gig using a
new language. And so I felt this huge sense of obligation to not just drop it or let it die. Over time, I've found that as long
as I get help, that it's not just all on me. I actually care really hard about this problem of
fluency. There's something that's really challenging about learning how to program in a new language,
especially if the language is in an unfamiliar paradigm.
And what I find is that there are very many tutorials that are like,
this is how the syntax works, or this is what you can find in the standard library.
And then you have a ton of tutorials about this is how you write a reverse proxy in this language or sort of the bigger problems. And there's a gap between where you
are just getting started with a language and where you are actually ready to go write a reverse proxy.
And what makes it really hard to write a reverse proxy is that not only are you trying to figure
out how a reverse proxy is supposed to work if you don't
know how to do that, but you're also trying to remember where to place the braces and how to do
string templating or whatever it is in the language. And so I think that it's really
important to be able to address that gap to help bring a lot more people into a lot more languages in a way that's really comfortable and challenges you just at the right level and gives you lots of feelings of successes, lots of successes, lots of small wins.
So that you're not feeling dumb and stupid and overwhelmed and feeling like, no, maybe Rust is just too hard for me or maybe Haskell is just too hard for me.
Maybe I'm not smart enough.
So it started as a scratching of an itch and perhaps exploration and fun as a lot of
side projects do.
And at a certain point, because it was so useful and successful, it became, like you
said, somewhat of an obligation, like you had to keep it going for people.
Yeah.
And then, but then you started to speak a little bit more of, I guess, some of
the, I don't know, maybe you're seeing the benefits more. And so there's some sort of
intrinsic motivation beyond the obligation that you're hitting that now. Am I sensing what you're
trying to say? Yeah, definitely. I care a lot about this type of solution for its own sake,
rather than just like this needs to exist and therefore I will write it.
You also asked about why I have a second job or why exorcism is my second job.
So that's because I haven't actually put a business model around exorcism.
And so everything is free and all the work is volunteer.
So I need to pay my bills.
So I have a second job.
Did you try that?
Did you think about that? Did you think about that?
Are you thinking about that? I know you say exorcism is 100% free forever and bold.
So that doesn't mean you can't monetize in other ways. Right. But that's a principle that you've
laid out. That being said, I mean, everything else about the new website to me and to Adam as well,
feels very professional, very business, the team of five, the core team, hundreds of mentors, thousands of people using it.
And I'm thinking this seems like better than a lot of startup websites that we see out there.
Yeah.
So when I started working with the Thalamus team, the four others that are on that team page, that was almost two years ago now.
Yeah, a little over a year and a half ago, we talked about what it might look like to turn it into a proper product. The key interesting
thing about it was I was feeling overwhelmed. I was feeling burnt out. I was feeling absolutely
like over all of it really. Um, and still feeling that the burden of like, I just have to do it.
And I'm kind of on my own, even though we have thousands of people who are contributing to the open source side of things. There are a lot of types of work
that don't get done within the framework of open source. And so I was really feeling the
burden of it. And I was talking to Jeremy Walker, who's on the team page there,
and was telling him, I was actually, I was whining, basically.
I was complaining about how there was so much to do and I didn't really understand how to fix any
of it. And the product was terrible and the user experience was terrible. And I had 200,000 users
and he was like, you have what? And he's run a number of businesses. He's created and sold a startup and runs several startups. So he was like, wait a second, stop there. And I can't all of the stuff that was missing was just
the design, the user experience, the marketing, the business model, all of that. Whereas a lot of
what he was saying was a lot of startups start with, you know, an idea and they do the design
and they do the product worked and they might not actually have something that gels that fits.
And so he said, this is, this is totally solvable. And then he offered
to help solve it. So he and his team worked with me over the course of 18 months, and they did
phenomenal work. For the first eight months, we only asked questions, basically. We started
digging into, well, who uses exorcism? What are they using it for?
At what points when you're learning a language are you feeling vulnerable? What are the negative
emotions that are associated with using exorcism? How could we avoid that or mitigate that? What does it mean to be done with a language track? What does it
mean to be done with an exercise? All of these questions led us to really go to the fundamental
meaning of what is exorcism and how does it need to be structured in order to properly support
people's learning to cover just this bridge. And it turned out,
like there were so many things where we were optimizing previously for three groups of people,
people who are learning to program for the first time or who are learning their first programming
language, professional programmers who are ramping up in a second language because they need it for
out of curiosity or for a project or a new job.
And then the third group was what we like to call the artisans, the people who really care about
the idioms and readability and how do you best use Ruby to make it feel and smell and taste like
Ruby. And what we found is those artisan conversations are super
interesting. They go so deep. They will spend, you know, dozens of comments going back and forth to
explore the nuances in some, you know, super arcane part of the language. And that's fun,
but it's not actually what exorcism is about. And same with the people who are new
to programming. In order to successfully use exorcism right now, you have to have already
installed a programming language on your computer. You have to know how to assign a variable and
write a function. So we're not going to be teaching you to program from zero to one,
which helped us narrow in what the feature set needs to be and then how to optimize that path from hello world to
basic fluency. I think it's pretty incredible to have fit as you call it product market fit
out of the box but at the same time as you mentioned the examination of like actually who
you are the ability to get to the next step successfully that resonates with us like a lot
I mean as she was saying I was thinking like that's what we did we had to figure out who we were to actually be who we thought we were you
know what i mean like we couldn't be successful without doing a retrospective on who we actually
thought we could be or should be and who actually thought was benefiting from what we do yeah and
the ultimate goal is actually to to earn some money so that we can hire people to at least talk to the partners that we
hope to connect with in order to generate some revenue. So the plan is to potentially generate
revenue or for sure? For sure. But not by charging individuals who use the website.
Gotcha. Yeah. So we have two ideas right now around how, uh, what we think might make sense
for exorcism. The first is to look at community sponsorships in particular for, uh, for language
tracks, um, individual language tracks. So, uh, we have a rust track. It's really popular. It's
one of the top three tracks on exorcism. And I have reached out to the rust team to work with them to make sure that exorcism is the best possible funnel into their community that we cover the language features that make sense to cover for Rust.
And especially with Rust, there are some language features that are really different from what a lot of people are used to.
So we need to make sure that we cover that well.
Also, all the parts of the standard library that they feel is important to cover, and as well as working with them to make sure that the mentorship in the Rust track really reflects how the community feels about the language and helps people fall in love with Rust.
And so if we do that well, it could make sense for Mozilla to be a track sponsor on the Exorcism Rust track, for example.
Yeah, if it's such a great on-ramp for languages in particular, obviously.
I guess potentially even some frameworks, too, but that remains to be seen.
But if you're that much of an on-ramp, it would make sense that you're a first first stop, so to speak on a path for a newcomer or someone just getting started or whatever.
Like it's a clear stopping point for somebody.
Yeah.
So that might make sense.
We want to have the site out for a while first so that we can see what the numbers look like
and make sure that we have the features to support the mentorship and the new user experience
before we start reaching out to potential partners or sponsors.
But that's one way.
Another thing that we have been considering
is partnerships who are in publishing.
So someone who creates a lot of great content for Python,
it might make sense to have sponsors in the Python track to say, hey, you've completed the Python track.
Here's here are some great next steps for you.
This episode is brought to you by DigitalOcean.
DigitalOcean is a cloud computing platform built with simplicity at the forefront,
so managing infrastructure is easy.
Whether you're a business running one single virtual machine or 10,000,
DigitalOcean gets out of your way so teams can build, deploy, and scale cloud apps faster and more efficiently.
Join the ranks of Docker, GitLab, Slack, HashiCorp.
We work fastly and more.
Enjoy simple, predictable pricing.
Sign up, deploy your app in seconds.
Head to do.co slash changelog.
And our listeners get a free $100 credit to spend in your first 60 days.
Try it free.
Once again, head to do.co.changelog.
So Katrina, I think the next stop in this conversation would make sense to say,
since revenue is on the table, but you're not going to charge users,
what are some ideas you have for legitimizing this thing into something you can not just be
a side project, but be a profit center for you? Yeah. So there are a number of things that I think
we can do and that I've talked about with Jeremy and the others at Thalamus. The first thing is track-specific
sponsors, which we talked a little bit about. The second thing is potentially partnering with
publishers who have relevant content for the users. And then we've also talked about a number
of spinoff products, especially as we narrowed down the feature set of the core experience, there are things that people use
Exorcism for that we don't currently explicitly support. And it might make sense to add either
other subdomains or other sub-sites that we would charge for that provide just the add-on features
that are relevant to businesses who are either helping their teams
level up or a different one, a different possibility is people use Exercism a lot when
they're recruiting in the hiring process to have people do exercises, see how they approach
problems, have some sort of trivial problem to talk about without making them go deep into their
own code bases. And a lot of people also, which I think is interesting, they use it to
ask someone to give someone feedback. So they would send people to Exercism and say,
do three exercises and then go give other people feedback and then send us the link to that.
And then discuss sort of what does good feedback mean? What does this mean in the
context of team communication or team leadership, if that's the type of position you're looking for?
That's definitely an interesting use case that I wouldn't have thought of.
So you mentioned that you worked with Thalamus, these other four people on your core team now, and you spent 18 months roughly doing a ground up rewrite.
Those first eight months or so, you said you were just asking questions and really just diving deep into, you know, what escrow system is and what do you want it to be? So share with us some of those
answers and like some of that focus that you gained and how that turned into,
maybe not the technical bits necessarily. We'll definitely dive into the rewrite,
but maybe even the rebrand and some of the changes around that. Like what were the outputs
and result of that process? I want to say that there are probably three really key changes. Um, the first one is the
brand itself where exorcism was just, it was just a name I came up with, um, using wordoid.com
cause I thought it was funny. Um, like there was no reason to call it exorcism other than
that the Ruby community likes puns. And so it was a pun. And then the logo kind of fell out of that as a
reflection of, oh, this is so close to exorcism. So we should have a logo that's an E with horns
on it. And I was like, yeah, why not? It was still just in the sort of, this is all just for fun
sort of domain, I guess. Right. Playful and silly.
Yeah. And that works for a lot of people. And a lot of
people miss that now that we've changed it. But there were a couple of things that I realized
in the past few years. The first is that there are people who are religious in the Catholic
tradition, and some people find that kind of offensive, that we're playing on the concept of exorcism, which is a serious concept
in their belief system. And so, I find it completely unacceptable to be offensive to
people based on their beliefs. So, I wanted to remove that as a possibility. And the origin of
the name wasn't really a pun on exorcism. It was a pun on exercise. I just thought it was funny that it had the sort of similarity in the word. So it wasn't really intended to be.
It wasn't the point.
Yeah, it wasn't the point. And then the original tagline was the devil is in the details,
but that's because it's amazing what you can learn from 20 lines of code, like from really
going deep into every detail on 20 lines of code, you can learn
really fascinating things about your assumptions about programming, about how you communicate,
about how a language works. And so that was much more so that it was all part of that whole playful
thing, but it played far too heavily on the idea of the devil. And so that was something that we
wanted to move away from. And likewise, the color was very sort of aggressive and pink. And it's
kind of like when you're learning how to program, we really don't want to have this sort of
aggressive feeling. We want to make it so that you feel like this is a place where you can be supported in the journey as you learn a new language. And the really overwhelming,
aggressive pink didn't really do that. And then the third thing was that every once in a while,
someone would see the logo and they'd be like, oh, is this an emotional support group for people
who don't like Internet Explorer?
And once you've seen it, you can't really unsee it.
And that's also not the point.
So, yeah, we moved away from that.
That's really funny.
Did you get a lot of those?
I mean, more than once. Too many?
Yeah.
I thought it was, I mean, I didn't mind so much, but it's definitely not like, again, I don't want to link this to some particular technology that already exists or if people have bad feelings about it, like that's definitely not what I want them to associate with it.
What did you learn about the, the learner type?
What do you call the learner in your, in your taxonomy?
I call them, sometimes i call them learners sometimes i
call them author um like just the author of a submission but um as opposed to mentor so that's
usually in context of author versus mentor um but yeah i prefer learner over student because we're
not teaching anything we're helping you learn something. So the learner then, you'd mentioned doing some introspection on like what their focus was. Like
you said, you optimize for three different types. Did you whittle that down to one? What was the
change there? Yeah. So it used to be, we supported people who are new to programming or we were
trying to support people who are new to programming, people who are professional
programmers ramping up in a new language and people who are artisans who are doing a deep dive in one of their
favorite languages or their main languages.
And we completely have removed any features that are optimizing for the artisans who are
doing a deep dive in their primary languages, as that's really, it doesn't cover the awkward
hello world to basic fluency pathway.
Though we will be adding back team features, which will let them set up their own sort of space to
go do those deep dives together. It's just we're not optimizing the core experience for that.
And in terms of new programmers, you can be fairly new to programming when starting to
use Xersism, but you can't be brand new. We really don't cover those very first steps.
And I don't know if we will. I was talking a little bit with the Rust team earlier today,
and they had some suggestions on how we might help bridge the gap for those who are not so familiar with
some of the basic programming concepts in themselves. But overall, we're aiming at people
who at least have some basic knowledge in programming. So they might be learning their
first language and they might have done a couple of months worth of, you know, the weekend meetups or workshops or some of the online tutorials and some of those things and be ready to actually get started using the language.
And they often people will say, oh, you just need to write a lot of code.
And it's like, yeah, well, what do I what do I write?
How do I do that?
I don't really
know even what problems to tackle. And so this gives people sort of an easier, um, easier ramp
into just ideas of things to, to use the language for, to, to, to help that early practice.
One piece of advice that I give to people, uh, who are trying to get into the industry is to,
is to find something real that
they that they want to exist in the world that doesn't exist especially if it's like they want
to get into web development it's like have a tangible real goal in mind and then use the tools
the languages the frameworks all the stuff that you're learning as simply means to come to that
end and you'll find your your you'll find your, your, your, you'll
find your way through the road bumps and the tough stuff because the driving motivation isn't just to
learn, which oftentimes if you just want to learn a thing, it's very easy to stop when the going
gets tough because that motivation isn't super, super strong. But if it's like, I'm trying to
build a thing, that thing that you want to build sometimes will pull you through that.
With exorcism, it's all like pre-created, small.
I love the scope of a lot of these tasks or challenges.
Do you feel like there's a missing piece there or do you feel like it's different strokes for different folks?
Just what are your thoughts on kind of challenges versus real world things? I completely agree that, um, having a real world goal, um, makes it much
easier to, to stick with it. However, uh, a lot of people aren't even sure how to make a real world
goal. Like for, for some people it's like, I want to make an iOS app and it has, you know, has to do
this. It's a way of exploring shoe design or whatever.
And they'll know exactly where they want to go.
And they will be able to just go after that.
Other people are like, yeah, I find that programming is fun.
And they might have some ideas around what they might want to make.
But it can be really hard to actually come up with something that is
concrete enough and within reach enough. Within reach is definitely the hard part.
Yeah. So I think that exorcism can fill the gap for the people who aren't able to just run with
it. Like there are people, I saw a talk at the second GopherCon, i think by audrey lim who was a lawyer in singapore i think who was like i'm
going to learn programming yeah she stole the show for that gopher con that was a big deal amazing
that was that talk was so good and she was totally able to just pick up you know things that she
wanted to explore and then run with it and And that helped her get through all the early
parts of learning the language. Whereas I've found other people on Reddit who are complaining about
how they've been doing web development for years and they are trying to get into Go and they're
finding it very, very difficult because a lot of the recommendations were like, just write a thing,
just write code, just write a real project. And they're like, but you know, there's, how do I get to where I even know what the project is?
They're saying learn by doing. Do what? What should I do? Tell me, give me some guidance.
Where should I go with this thing? So for people who do know, I think that the learning by having
a project is incredibly powerful. And for people who don't, I think that these types of challenges
can be a way to help you get to the next step
where you are in a better place to choose real world challenges.
Yeah, absolutely.
I think for your second case, the people who are, you know, maybe they know one language
and they're wanting to pick up a second.
I think specifically the person that wants to learn their second or maybe third programming
language, like this is perfect for that use case.
It's really good.
Yeah.
Well, once you get to a certain proficiency of polyglotness, like picking up the next language at a certain skill set, like it just becomes easier and easier to do that if you're just trying to learn, unless it's a brand new paradigm.
But for like that second or third language, this would be spectacular.
And actually, if I was going to hop in and say, I'm going to try just I just want to write some Lua and just find out about it. I think even as somebody who knows three or four languages,
that would be,
extra system would be a great way to do that because you get that mentor
feedback right away.
You have these predefined scopes.
I don't have to come up with stuff.
So it seems really good for that too.
What's the mentor motivation?
I talked about your motivations.
We talked about,
you know,
potentially,
you know,
having some income eventually.
There's lots of people mentoring.
I was just looking at the Elixir track and there was, I just lost it.
I'm all over your website and I can't keep my tab straight.
Anyways, there was a bunch of mentors on the Elixir track.
And I'm curious, where do they come from?
Is there a demographic of these people?
What are they getting out of it?
Is it all warm fuzzies? Is there more to it? What are your thoughts on the mentor side of it?
So the mentorship is completely new in the new design. It used to be very ad hoc. Anyone could
give feedback to anyone, which led to a lot of varying in the quality of the feedback and a lot of people not getting feedback.
And so with this, we wanted to do two things. We wanted to have a community of mentors who we can work with specifically to ensure that they have what they need and they're getting
what they need and that we can make tooling to make sure that everyone gets feedback and the quality of the feedback is good.
We can start adding in features to help optimize the process of giving feedback, of noticing things to give feedback about.
So the whole mentor thing is very, very new.
And as part of that, we are asking people to literally sign up to be mentors.
They get added to a Slack channel or a Slack workspace.
They sign our code of conduct.
And as part of that, we ask them, why would you do this?
Why do you care?
What do you want to get out of it?
And the answers were fascinating.
They were all over the place.
There were a few common threads. The first one is
they get a kick out of helping other people learn for a number of reasons. Sometimes it's warm
fuzzies, but even more often, they find that they are challenged in ways that are really interesting
when they are helping other people learn. So they learn a lot by helping other people learn. Some people were very much in the, you know, other people mentored me and now I
want to give back. And I don't know, I don't actually know if they'll stick around. I don't
know if that is a strong- How long to last with that motivation, yeah.
Like, yeah, is that, now it might turn out that they actually get a kick out of doing it once they
get started and they might stick around.
But as a motivation, I'm not convinced that, you know, I want to pay it forward is a really strong one.
And then you have a third.
It's good ambition.
Yeah.
Yeah, I like it.
I mean, it's admirable, right?
But I don't know how lasting that is. The really interesting one I find is the people who are looking to
move up in their careers and are realizing that a lot of the engineering leadership skills have
to do with teamwork, communication, a better ability to receive feedback and to give feedback,
and who are using this as a way to sort of
practice those types of skills. I think of it too, like, especially with your focus on languages
and as you talked about the revenue options and just how this fits into the overall ecosystem of
individual languages and getting involved in them. To me, it makes sense that a mentor would be
somebody who one wants to, that cares about the community, but me, it makes sense that a mentor would be somebody who, one,
wants to, that cares about the community, but then two, is somebody who's a leader in the community
and to be seen as someone to come and reach out to, to get started or to get involved or
invited or, you know, introduced, whatever. That's the kind of person I see fit in that role.
Is that what you see?
I would say that I would love to have a few people who are considered leaders in the language communities that we cover. But I think
that most of the mentors will probably be much more at a sort of in-progress part of their career
rather than in sort of a leadership position within a community because to give good feedback in a language, you don't
have to be that expert. You do have to have familiarity with the language, with the tooling,
with the idioms, with the community, but you don't have to be one of the, you know, the
driving forces of that community or one of the known famous names or whatever,
because a lot of the basic feedback to get someone into the community is really,
really fundamental things like, hey, if you're doing Go, you should use GoFundMe and you should
know how to write proper comments. And you don't have to be famous in order to give that feedback.
Well, I was thinking from Adam's perspective, more the idea, and maybe this is me interpreting what you're saying, Adam, more the idea, not that these people are necessarily already experts or leaders in their camp or their language, but that this is an opportunity for somebody to establish themselves over time as somebody.
Right.
So they, like you said, they, they, maybe they were one step above a learner, which
is all you have to be to be a great teacher.
They might be somebody who's like, I write blog posts often or as often as I like to,
I release the course, but I'm not really anybody I need to get more well-known or I'd like
to be more well-known.
I like to help more people.
And this is one more way that they can, you know,
take five or 10% of their week and, you know, give it back.
I have no idea.
Well,
similar to the motivation of people who help other people on Stack Overflow.
And a lot of them are, I mean, it's gamified.
I don't know if you're doing any gamification with Dice Racism Mentorship,
but you know, they're going for the the it gives them the street cred over time.
And so they think that all that helping will eventually come back to them.
And I think in certain cases it does.
Yeah.
And if I can masquerade around, I guess he's that word in a good term around exorcism.io and as a mentor, then I, you know, for one, I mean, sure, I'm helping people to also, you know, get to, I guess, have some notoriety, some clout, some abilities, some sort of superpowers.
I don't know.
I'm somebody there to help.
Yeah.
You're just there to masquerade.
That's right.
Masquerade.
Well, the other thing about it, which I've mentored or I've taught web development to people.
And so I've learned this
very much firsthand. And you'll learn this as you begin to mentor other people is that actually
it's like a life hack because you're the one that's learning more than the learner.
Absolutely.
It solidifies, it questions things that you never questioned because you have,
you have fresh eyes asking you things that you wouldn't have thought of in the first place.
And then, like you said, Katrina, is that you are honing your ability to communicate,
empathize and help other people.
And that's like useful in every walk of life.
Yeah, yeah, I see that.
So what about the need for more mentors?
Is there always a like always hiring, always more mentors kind of situation here?
Is there a term of service?
What are they signing up for?
How do they sign up?
What's the process?
So there's a website that starts the process.
It's mentoring.exorcism.io.
You are not committing to anything in particular when you sign up as a mentor.
We hope to have enough mentors that everyone, nobody should have to do more than an hour a week, say.
And we're still trying to figure out how many mentors does that mean?
And we think that to handle the current load, we need about a thousand mentors. And so I think we
currently have about 800. So we're falling down in certain tracks. We're falling down on giving
feedback to some of the optional exercises. We're focusing on making sure that people get
feedback on the core 15 or 20 exercises that we have used to define each track.
But yeah, we always need more people and we want people to be able to go on vacation or
go on parental leave and not have to worry about giving feedback on exorcism during
that time. So we have a polyglot audience around here. So if you have specific tracks that you
need mentors in, like if you're going to say, like, go ahead and name them out. Well, where do
you need the most help? Somebody could have the biggest impact. I would say Python. It's our most
active track by far. Like not quite an order of magnitude, but it is probably 40% more active
than the second most active tracks. Rust and Go and JavaScript and Java are probably the other
tracks where we are always desperate for more people. An interesting thing is all the niche
tracks. If you know PLSQL, boy, do I have work for you. Like it's so hard to find
people who have enough fluency with some of these more niche languages to actually step in and
mentor. So some of those can be, if you know a niche language and we have it on Exorcism,
you can bet that your help would be greatly appreciated.
So I have some pretty awesome news to share.
We are now partnered with Algolia.
If you've ever searched Hacker News, Teespring, Medium, Twitch, or even Product Hunt, then you've experienced the results
of Algolia's search API.
And as we expand our content, we knew that one day we'd have to either roll our own
search solution on top of Postgres, or we could partner up with Algolia.
And I'm happy to report that phase one of our search is now powered by Algolia.
We're able to fine tune our indexing, gain insights from search patterns and analytics.
We can create custom query rules
to influence ranking behavior,
as well as improve our search experience
by adding synonyms and alternative corrections to queries.
Sure, we could build search ourselves,
but that would mean we would be busy doing that
instead of shipping shows like you're listening to right now.
Huge thanks to our friends at Algolia for working with us.
Check the show notes for a link to get started for free
or learn more by heading to algolia.com and by go cd go cd is an open source continuous delivery server built by
thoughtworks check them out at go cd.org or on github at github.com slash go cd go cd provides
continuous delivery out of the box with its built-in pipelines advanced traceability and
value stream visualization.
With GoCD, you can easily model, orchestrate, and visualize complex workflows from end to end with no problem.
They support Kubernetes and modern infrastructure with Elastic on-demand agents and cloud deployments. To learn more about GoCD, visit gocd.org slash changelog.
It's free to use, and they have professional support and enterprise add-ons available from ThoughtWorks. Once again, gocd.org slash changelog it's free to use and they have professional support and enterprise add-ons available from thoughtworks once again go cd.org slash changelog so katrina this this rethink this redo this take two we talked about the new branding
we've talked about this new mentorship model and how you're making them official sign up
mentors and you also have the tracks themselves which you've redesigned a little bit from the
ground up tell us about what's new with the individual tracks,
and then we'll get into how you went ahead and technically accomplished this.
So in some ways, the tracks are what have changed the least,
if you just look at them.
The description inside the repo on GitHub,
it'll have the same exercises.
It'll mostly have the same documentation.
But we have fundamentally changed how we structure the track and how we lead you through it.
So it used to be you would sign up to C Sharp and we would give you one exercise and then the next one and the next one.
And after about 110 exercises, you're done.
And if we add more exercises, you're no longer done, which is kind of frustrating.
It's frustrating for a number of
reasons. The first is this moving goalpost where if we add more exercises and if you are feeling
completionist, suddenly we've kind of ruined your day. The second thing is that there are a lot of
exercises that go down little rabbit holes or side explorations or are all about a thing that
you don't really need to
learn about or that you don't care about. And when we put everything linear, you kind of,
if you were one of these completionist types of people, you often felt like you had to do
all of the exercises in order to get through the track. And that's not really helpful and
also not really true. When are you done with an exorcism track? Well, it's kind
of when you're feeling fluent, you have that basic fluency and that ease in the language. So if you
are done after 20 exercises, there's no real reason for you at that point to do a hundred more.
So one of the big learnings there came from role-playing games, where in a role-playing game, there's this
core track through the game where you complete certain challenges and you participate in certain
activities, and you can finish the game just by doing that core track. But along the way,
as you complete challenges, you unlock all of these side challenges that you can then go and explore if you want to.
So some people might do the entire game straight through, and other people might spend four, five, eight times as much time going through all the little side explorations as well, and also finish the game.
And there's not someone who didn't finish and someone who finished. No,
everyone finished. Just some people took a more scenic route or went more deeply.
And so we wanted to replicate that with exorcism and chose to have for every track, we choose
a certain number, usually between 15 and 25 core exercises that are required in order to complete the track.
And all of the other exercises come in as optional exercises that get unlocked as you
progress through the core exercises. And each core exercise, if you're in the mentored mode,
you need to get the core exercise approved.
Like you need to work with a mentor and get it approved by a mentor before you can move on, which is one of the reasons why it's so crucial that we have enough mentors so that we're not blocking people as they go.
And then you always have a handful of optional exercises as well that you can play with as you're waiting for feedback or to explore.
I love the idea of this path process because there's times that I've felt like the loser who didn't finish.
You don't want that.
No, I don't want to be the loser.
None of us want to be the loser.
It's a whole different show, Jared.
Yeah, I like that. The scenic route sounds really cool. I like that.
Yeah.
One of the discoveries that I had as I was talking to the rust team recently was that
so they use exorcism when teaching their rust bridge workshops and the math exercise.
There are a bunch of little exercises that come are mostly inspired by like Project Euler
exercises.
So they're very math heavy.
And a lot of the people who go through the rest bridge feel, find that incredibly intimidating.
So one of my next tasks is to go through all of the tracks on all of exorcism and script PRS to
make sure that a, they're tagged as math so that you can just filter them away and not have to
worry about them, but also that they're never on the core track, that they're always optional.
So another thing we haven't talked about, and I think it's probably what we need to talk about next,
is the technical side of the rewrite.
Now, you know, anytime somebody wants to start a big rewrite,
Joel Spolsky comes out of the closet and slaps you across the face before you do it.
No, people pull out that old blog post of Joel's, you know, things you should never do,
which is a ground up rewrite is like anathema. Yeah. And he's right. And we did it anyway.
So I think that much, much, so this is the same thing as with refactoring, right? You should,
you should almost always refactor rather than do a rewrite, uh, just because there are so much that you, uh,
has been encoded into the existing code base, into the existing features, um, and that you're
going to lose. In our case, we wanted to lose all of those accidental things. Uh, we really wanted
to, uh, start from scratch. We had a much more, uh, much clearer idea. Uh, once we had done the
eight months of exploration, we knew where
we were going and it had nothing to do with the existing site, which could be termed a prototype,
but it did last for five years. So maybe not. So yeah, you're, you're excited to lose a lot
of stuff. That being said, was it still a huge, like, was it still a larger undertaking than you
expected or was it about what you were thinking? It was about what I was thinking, actually. The initial rewrite to get the basic
features that we had designed, actually designed, actually sat down and thought, gee, this would be
a good feature to have rather than just kind of accidentally slapping together like the old site.
That didn't take very long. The basic work was done in about six weeks and then you have the other 90%.
Um, and so that turned out to be, um, the biggest problem wasn't actually writing the features. It
was that, uh, we all have day jobs and other businesses that were running and all of that.
Um, and, uh, there were family crises. People ended up
in hospitals. I mean, there was for a number of reasons. There were six months there where we got
nearly nothing done. People ended up in hospitals due to this rewrite. No, thank goodness. No.
That's how it sounded. Unrelated. I'm like, geez, we're really pulling into mentors here.
You got to take breaks. Yeah, totally.
Vacations.
Yeah, no.
So the rewrite was about as much work as we expected, but it took much longer because we had unexpected life things happen.
Uh-huh.
Maybe a recap on the tech itself of like, what's the architecture? So the site's in Ruby.
You got the CLI.
It's written in Go.
That's been rewritten, I guess, in Go. There's some other aspects. What's the architecture so the the site's in ruby you got the cli it's written in go that's been rewritten i guess in go there's some other aspects what is what's the breakdown the architecture
yeah so the the site itself it used to be uh some cobbled together sinatra apps uh multiple
sinatra apps uh some of them were all mounted inside the same app some of them were running
uh separately uh along with a Ruby gem that
I updated more or less every day to get all the changes to the tracks in. It was a complete mess.
And it was also nearly impossible to contribute to because it was all custom. Nothing followed
any sort of conventions. And Sinatra is fairly well documented, but it's really flexible.
And so there was no good jumping in point, even if you were familiar with Ruby, to help out with
the website. So for the rewrite, we chose Rails, which is still Ruby, but it's a framework that is
much more widely used than Sinatra,
very well documented. And it's something that everyone on the core team is familiar with.
So it was a really rapid, it was something that we could do very quickly, the rewrite. Whereas if
we'd chosen a different technology, if we'd chosen to go with, say, Clojure or Python with Django or something like that,
we would have had to ramp up a lot. So even if maybe Django is more common or more familiar than
Rails is in general, it would not necessarily have been a great choice for us.
One of the really interesting pieces was figuring out how to get all of the changes from 45 different language tracks into the site without having to make,
like having to make individuals deploy every day.
One of the problems I ran into was I was the only person deploying the old
site and people would be like, Hey,
so I made this change to the Elixir track and I'm not seeing it on the site.
And I'm like, yeah, that's because I forgot to deploy.
So or if I got sick, I had surgery last year and for a few days there, I was not deploying exorcism.
So there were all of these things where I was a bottleneck and we needed to not have me be a bottleneck or not have anyone be a bottleneck. And so we worked, uh, did quite a lot of work to figure out how do we architect this into, uh, the site where we have web hooks that are, uh, so
we're listening for web hooks from, from GitHub to know when there are changes. And then we schedule
an update so that the servers pull in all the new changes. Um, and, uh, that happens usually within moments of the new change going into master on, um,
on the various tracks and also for like the website copy and that sort of thing.
That sounds like us.
We have our transcripts and our show notes as two separate repos on GitHub and we schedule,
uh, or we listen for web hooks on specifically pushes to master that then our CMS
goes and grabs the updates and make sure that the website itself is updated
immediately.
And it even surprises me how fast it happens.
Yeah.
It's like by the time I can write the little thank you note in the comment,
it's already live.
So we,
that's awesome.
And it's cool.
I like how you usually say it's,
it's probably already live because by the time I commented,
the web books already been caught. And I always had a probably in there because by the time I commented, the webhook's already been caught.
I always had a probably in there because there's that outside chance that something failed this time and it's not live.
It's how I hedge.
And we have been known at GitHub to drop the occasional webhook.
I'm just saying.
I didn't say it.
You said it, not me.
I said it.
I'm on the API team.
It's my fault when it happens.
It's your fault.
You can blame me. I'm going to look you up next time you got my webhook correct me if i'm wrong i know
we're still here the technical details i'm kind of hearing some insights into like what you seem
to be doing you in particular katrina's is like you've been excited about this it's been a long
road you received and achieved product market fit early on you know you had to kind of
work back from brand and stuff like that but it sounds like what you're in the motions of now is
like incrementally removing the mundane burdens that that take away the joy to give you the joy
back so you can lead yeah that's the biggest that's the biggest challenge right now is now
that the design it feels like we're in the right direction with the usability of the site, the user interactions, the design, all of that.
We need to make sure that the drudgery, the janitorial work is not something that someone is stuck with because as soon as someone is, then it falls over.
It falls apart. So that's definitely
one of the, automation is one of the big, big key pieces that I want to get better at both
in exercising the product itself. Like how can we automate giving mentors hints about what would be
useful to talk about in this particular exercise? We can do a lot of static analysis on, you know,
because we have five years worth of data about how people make mistakes in this particular exercise.
So we can give hints there. Is that something you spend a lot of time on yourself though?
That thing in particular, giving hints to mentors? No, not, not at all. What areas are you trying to
meant to, to, uh, automate that would remove burden from humans to like deal with genital work as you mentioned so
uh linters uh linters and auto automatic fixes to the various tracks one of the things in each
of the tracks needs to adhere to certain conventions otherwise it won't work on the site
and so we're adding a huge number of various types of linters and auto-formatting in config files and making sure that...
So when you merge a mentor bio, we have CI that checks that if you wrote GitHub profile, you spelled GitHub correctly.
Oh, boy.
If you have a link to a website, it has a protocol on it.
So lots of little details that keep tripping people
up and making people do work over again, or like we find people who are manually reviewing and keep,
you know, asking for the same fixes every time we're adding linters to that. We're adding
apps, GitHub apps. So specifically using the GitHub API to help make it easier to add more
maintainers to different tracks. So right now, if you want, if like the people who are maintaining
the JavaScript track have a new contributor who's been around consistently, they're enthusiastic,
they give great feedback, they do good code reviews, they contribute, you know, consistently
over time and are really great to work with. We want to add them as a maintainer
on the JavaScript track. Right now, the only person who can do that is me because I'm the only
org admin on the exorcism org on GitHub. And I don't actually want to give other people,
well, aside from Jeremy at Thalamus, he's also org admin, but like, I don't want to be giving
individual maintainers access to the admin parts of the
exorcism org.
So having an app that can let maintainers add other maintainers to their own tracks,
but nothing else, is something that would reduce a significant burden.
Another thing is we have a core set of problem specifications.
So it's a description of an exercise, but without a language-specific implementation.
And then various tracks take this specification and turn it into an implementation by adding a test suite and making sure that the readme has what it needs for that language. And when we add a new problem specification, it would be really nice to have an issue open on every track that doesn't have that exercise yet to let them know. So things
like that, or when an exercise changes in some way to have an app that will open issues everywhere
where it is implemented in all the language tracks where we do have that exercise to say, hey, take a look at this change, see if you
need to do anything to update. I can tell you that automation, I know we've done a lot around here,
CI is important. If I had to, you know, if we had to wait for, you know, Jared to be around,
he's around a lot, but if we had to only rely upon Jared to deploy it'd be a pain in the butt so have you you got CI in place you got other automations in place to remove
yourself as the barrier to allowing others to progress yeah I think that's crucial in any open
source work as soon as there's any sort of volume yeah and even like you mentioned issue automate
automation and stuff like that's that's key too because like you would forget the checklist oh i should go and let these other you know tracks know this change yeah it's just if you can automate
the things that make sense the things you've done 17 times you should probably automate that yeah i
still have to automate the release process on the cli like that's one thing where i keep i keep doing
it i keep telling myself i just have to write to write the script that will upload all the binaries and everything to get there. And I keep not doing it.
Well, there's always something to do. That's for sure. It's just a matter of like,
is it something I should do today? It's not so much, should I do it at all?
What about the future? So, I mean, it's been five years. We've been on this journey with you.
Obviously, we care deeply about you and the mission you're on and everyone involved.
And what's the future, right? You got good branding behind you. You've got good design behind you. You got clear, measurable goals to reach towards. What's the future for you?
So I'm hoping that in the beginning of 2019, we'll be able to get some amount of revenue.
And the first thing I want to do with that revenue is hire someone to help wrangle mentors,
help work with the mentor community, figure out what tools are necessary, figure out what
features are missing for mentors on the site, help with code of conduct violations, help
mediate when people are unhappy, all of those sorts of things. And I think having a specific person whose job it is to be the mentor manager,
I think is the most critical thing that we're missing right now.
And then it would be lovely if Exorcism over time could start paying the bills
for some of the people who are putting in very large amounts,
especially in the areas where open source usually doesn't cover it. So all the product design work,
user experience design, any of the business stuff. So figuring out how to reach out to
partners and sponsors or doing accounting stuff, Turns out you have to do that.
So being able to pay people to do a lot of those pieces would be lovely.
It would be also, it would be amazing if we could hire people on short-term contracts
to solve specific problems that aren't being addressed quickly enough in just the day-to-day
open source things. And then I would love to see a way of
really rewarding the people who are part of the Exorcism community and who have given a lot
to Exorcism. And I don't know what that looks like, whether it's custom swag or do we invite
people to a summit or regional summits and have them share experiences or what.
But I'd love to find a way if we start getting some sort of revenue or funding to really acknowledge all of the work that people have put into it.
Let me ask you a question that might be a little off color to some degree.
We'll see how you receive it.
But what happens if at the end of 2019, if you don't hit to a point where you have sustainably, you know, income revenue coming in?
You know, like revenue is one thing, but like sustainable revenue is another thing.
So you're still kind of proving, you know, you're in that space where you have some runway to generate something that creates revenue. So if over the next year,
it seems like the future of exorcism requires some level of revenue. Not sure if it needs to be,
you know, like large amounts, but enough to sustain it. Like what happens if you don't get there? I don't actually know. I don't know. Like I have thoughts about it, but if we do end up
in that situation, I might completely
change my mind about how I feel about everything.
But my current thinking is that it is absolutely possible to sort of tie off exorcism at some
point and keep it running with minimal maintenance as long as we have enough mentors.
And so that's kind of the key, the key pieces, if we can get all
of those tracks into a reasonable state and the feature set is, you know, it's a basic feature set,
but it does what it needs. Um, and we have enough mentors rolling, uh, sort of on a rolling basis,
then I think we could, uh, let exorcism do its thing without a huge amount of day-to-day effort the thing that
makes us want to um look for revenue is that we think that there are there are so many other
opportunities um to grow exorcism beyond what it is right now and that would require revenue
yeah well let me just say that i asked that as a as a devil's advocate approach less like actually think it's going to happen, more like I wanted to know what you would do if it did.
I'd like to prevent it. some benefit for your company to exorcism or whatever, then, you know, reach out and talk
about different ways to work together or, you know, get on some sort of mental list where it's
like, Hey, if you're interested at all about the future of exorcism, here's how you can help out,
whether it's sponsorship or, you know, some sort of products you'll have in the future, whatever.
I just want to raise that awareness to people listening now that if this is interesting to you,
I'm assuming
just reach out right oh yes please my uh email address is on my github profile so i'm always
easy to find well what else is uh we're tailing off here what else can we cover before we before
we say goodbye what else you got what what else is what's on the horizon anything that people are
not aware of something fresh and brand new that no one knows about fresh and brand new it's coming
so soon that you might blink and it's already there that's right if it was here next
week it'd be cool it would be cool teams features so the old site had some sort of notion of teams
where you could kind of group people into uh into a team and you would get a custom like activity
stream for everyone who was in that team um We had to remove that for the new site just
to be able to launch because we were under a bit of pressure to actually get the code out the door.
And we've been working on redesigning and actually thinking through how teams should work. And so
we've completely rethought a very basic Teams functionality, which we will be launching very soon under teams.exorcism.io, I believe.
And I thought it was going to be out by now.
So, like, literally, it might be out in the next couple of weeks.
Ooh, go hit refresh.
Well, Katrina, it was great catching up with you. Certainly, you know, like I said, we're certainly big fans of yours and we'll always be here for you and love to hear your journeys.
I'm bummed that it's been somewhat that long since we talked.
So maybe let's shorten the runtime between next time.
Let's do that.
This has been great.
Thanks so much.
All right.
Thank you for tuning into this week's episode of The Change Log.
If you enjoyed the show, do us a favor.
Go on Twitter, tweet a link, go on iTunes and give us a rating.
If you make lists about podcasts you listen to, make sure you add us.
And of course, thank you to our sponsors, Hired, Digital Ocean, Algolia and GoCD.
Also, thanks to FASI for our bandwidth.
Head to FASI.com to learn more.
And we catch our errors before our users do here
at changelog because of rollbar check them out at rollbar.com slash changelog and we're hosted on
leno cloud servers at the leno.com slash changelog check them out support this show this episode is
hosted by myself adam stukowiak and jared santo editing and mastering is by tim smith music is by
breakmaster cylinder and you can find more shows just like this at changelog.com.
When you head there, subscribe to our email.
Get news and podcasts for developers in your inbox every single week.
Thanks for tuning in.
We'll see you next week.