Build and Learn

This week, Colin and CJ discuss how differently we can feel when we get caught in the mindless doomscrolling traps of consuming content rather than creating things, interacting with other IRL humans, and more!

- Accountability/fitness update
- Quick update on Buckets!
- Consumption vs Creation
- Learning styles
- Badass Course Creators podcast: Raising the bar for online learning with Greg Rog

Next episode, we're digging into the Campfire codebase from 37Signals/Once.


What is Build and Learn?

A podcast about software development and developing ourselves as software engineers. Hosted by CJ Avilla and Colin Loretz.

Colin: Welcome to build and learn.

My name is Colin.

CJ: And I'm CJ and we're back again,
just catching up on what we're

working on, what we're learning.

And we thought we might kick this
one off with a little fitness update.

So I, yeah, I mean, we, we talked
about this a while ago and you

as the listeners are holding us
accountable to some fitness goals here.

So Colin, you want to, yeah, why don't you
give us a quick update on your fitness?

Colin: Yeah, for me, I'm trying
to do the James Clear consistency

over you know, doing like these
Herculean effort type things.

So I have a plan, a training plan from
Hal Higdon marathon training plan.

So I'm gearing up for
just it's a 30 week plan.

So it's not like one of those, like do
a marathon in 12 weeks type of thing.

It's very slow burn gets you back
into just like, Knocking off the

runs and then you'll start getting
into the more marathon training plan.

So I'm hoping to do a marathon in
September with a friend of the show one

of our friends Calvin, up in Washington.

And and then potentially
one in December in Honolulu.

CJ: Ooh, nice.

Colin: be my first time down to Hawaii.

So that's the plan and just trying
to get into the habit of it, have the

rhythm of it, you know, even if it's,
if it's a three mile run, it doesn't

need to be a fast three mile run.

It just needs to be done.


CJ: hmm.

Mm hmm.

Colin: that.

CJ: And what are the long runs in the
first couple of weeks for that program?

Colin: My first long run this last
weekend was going to be seven miles.


it's, you know, you still do the
long run on Sundays, the whole

church of the long run type


And so it'll ramp up to eventually,
usually you do like, eventually

you get up to like 20 miles.

a few, maybe four weeks before
the actual marathon, and then you

taper off into the actual thing.

And so you don't need to have run a
marathon before you go do the marathon.

But yeah, just getting into that and
trying to weave in a little bit of

things like kettlebells and strength.

A lot of working on the knees.

They don't work like they used to.

So making sure that they have the
strength that they need to support

myself through that whole run.

CJ: Very cool.

Is the, the marathon that's in
Washington in November, is it,

is it in Washington in November?

I think I

Colin: September.


CJ: or September.


And is that one like a qualifying
one for Honolulu or can you just go

to Honolulu even if like, no, okay.

Colin: Yeah.


They're separate.

This one's just, you know, my
brother wants to do the Honolulu one.

So I'm training with him and then
Calvin wants to do the one up by him.

So I'm training with him for that one.

And, and for me, their accountability.

You know, once you pay for a race, once
you have it in your calendar, you, you

can't just be like in the 11th hour,
decide like, Oh, I guess I should

get ready for that, which is a good
way to think of like a lot of goals.

Like if you want to try to like write
a book, you're not going to be like.

Oh, I procrastinated until the 11th
hour and then I wrote the whole book.

Like it just doesn't work like that.

So it's good.

You know, I could just do things like
there's the Spartan races and, you

know, all those kinds of races and
things, but it'll be good to like,

keep myself accountable, keep them
accountable and have it on the calendar.

CJ: Nice.


I think the destination marathons are
the ones that are most interesting and

attractive to me because it's like,
you've got, not only do you have like

this big thing that you're planning for
and you're prepping for, and you have

it on the horizon, but all of that, like
anticipation of like, Oh, it's going

to be so cool to like fly there and be
there and be in like a different place

and experience like Hawaii after like
all of this hard work and everything.

So that seems.

Like it would be awesome.

On there's a instructor on Peloton
that I really like Matt Wilpers.

And he often talks about like, you
know, plan out your year and make

your trips like fitness related,
or like have some thing that you're

going to do fitness wise on a trip.

And then even if you're not like
going to do a race or something,

you can still make it, you know,
interrelated with your vacationing.

And then you kind of like build your
lifestyle around, like, you know,

these healthy habits and things.

And I don't know.

It definitely, definitely
seems attractive.


Colin: I think when you go on trips, they
try to like, you know, depending on where

you're going, there's all these like
excursion options and like side things.

And, you know, honestly going on hikes,
even if they're like with guides or you

know, doing some back country stuff, like
it's a great way to see those places.

They tend to be less touristy.

They tend to be not super
expensive to see, like kind of

more of the local take of it.

When we went on the offsite in Portugal
for orbit, it was funny because like,

We were with this like outdoor adventure
team that was taking us on this thing.

And like, it was very apparent that we
all sit at a desk and work inside all day.

Like some people are super stoked
to be outside and doing things.

And others were like are we there yet?

We're done.


ready to sit on the beach.

So yeah.

How about your update?

How's things going for you?

CJ: Things are going well.

We've got our our accountability crew.

We are in week seven of eight weeks.

So we're doing like an eight week
session and we're trucking along.

We keep posting updates of every
single meal and You know, our exercise

routines and things like that.

I think we've missed a
couple here and there.

And you always just trying to catch
back up and get back on the train.

So I am this past weekend.

I waited in like two 16, which was
down from like two 50 in the summer.

So making tons of progress.

And it's all just like consistency.

Like you've got to kind of just show up
and eat the right things every single day.

And, I think that I've kind of found
a pretty high protein diet that is

sustainable, like relatively sustainable,
which has been working really well

for me, kind of just like it took
me a while of like looking at every

single thing I was eating and trying
to figure out, you know, is this, or

what is the protein content of this?

What is the fat?

Like, what are the macros of each meal or
each like part of the meal and is there

something I can swap out or swap in for
something that's like a higher protein?

And as a result, like yeah, I've kind
of like narrowed in on a few dishes

that I never would have had before.

Like one is I'll have like Greek yogurt.

In the morning, I'll have Greek yogurt
with like scoops of protein powder, like

plant based protein powder and flax seed
and I just stir it all up and it sounds

gross, but it's so good and it's just like
become this, like, super high protein,

like 30, it's like 35 grams of protein,
very little net carbs, very little other

stuff in it and it's really filling and
so satiety is very high so doing that and

then On the, like the exercise front doing
a power zone challenge with on the bike.

So we have like two 45 minute rides
and then a long ride on the weekend.

That's like between 60 and 120 minutes.

And then five days a week I've been
doing like a barbell, like dumbbell type

strength training, just like a really
low key, 30 minute a day, five day split.

And, yeah, all of that seems to
be working really, really well and

yeah, feeling pretty strong and
I'm really happy with the progress.

So yeah,

continue to

Colin: I've been seeing
your, your updates on Strava.

So I can see you're out there doing it.

CJ: nice.


Yeah, I, I, it's like automatically
hooked up to Peloton, which I love

because it sends the rides along.

And you know, like when you do
like a strength workout, but I also

use Peloton a lot for meditation
and that like Postman's drama too.

It's like, all right, CJ
couldn't sleep that night.

Obviously he did, like three
meditations and like yeah.

Colin: noticed, I mean, I've noticed
that they were on there, but I'm not, I

haven't, didn't notice what times they
were posted, but, you know, it also shows

the Strava TriHards that you're out
there stretching and out there taking

walks and out there, you

know, it's not always maximum
efforts, like, oh, I just did

this super long bike ride or bike,
you know, run, things like that.


it's another tool, another
accountability thing.

Which can help.

So, and I think like, you know,
we're, we're, we're talking about

this fitness stuff to kind of also
hold each other accountable too.

And like diet, nutrition
fitness is all super individual.

So I'm glad that you found some things
that you like that work for you.

It's not going to work for
everyone who's listening.

It's, we're not a fitness podcast,


We pretend to be one on TV.

CJ: Yeah.

And I think what's what does
maybe resonate more with listeners

is that it wasn't like clear.

The answer wasn't clear for
what to try or what to do.

It was all very much like experimentation
and learning and watching videos and

trying to figure out which fitness
influencers I believe and trust and

you know, like reading these books
about you know, And you know, white

papers about different, like new
research that's coming out about muscle

protein synthesis and creatine and
you know, should you take TRT or not?

And like all these different
things, you know, like so yeah,

Colin: There's a lot of that right now.

A lot.

CJ: tons.

There's tons.

Yeah, totally.

So yeah, one that's definitely on my
list to research too, is like, what

are the impacts of Ozempic and all of
these like GLP one or whatever drugs

that are supposed to be like You know,
you get a shot and then you magically

lose a bunch of weight and yeah, just
trying to see how, how that's affecting

people's like stomach longterm,
you know, is it is it, you know,

damaging their digestion or whatever.

So yeah, lots of stuff
to research and learn.

And yeah, it's kind of like
building your own health or

something, but yeah, fun stuff.

Colin: Yeah.

Well, this is kind of around the
consistency and like what we do every

day kind of like defines what, where
we spend our time and our identity.

And this thing that keeps coming up in
the podcasts I listen to and some videos

I've been watching has been this like
concepts that I'd be curious to get your

take on of if you're busy creating things.

You should spend less time consuming
things or vice versa, like in a way it

almost I think now that I said it out loud
like casts like consuming as bad and like

when you hear like mindless consumption
or like doom scrolling and Instagram

and tick tock like they want your time
and attention, which means that you're

probably not going out and making your own
things, whether it's content or code or.

Working out or whatever it is, right?

It's, it's time and attention.

I'd be curious, like, what do you
think about that in terms of like,

do the things that you consume
help you to be a better creator?

Are they kind of like the yin and yang of
like, you know, inspiration and creation

or, or like, Oh, too busy, too busy
creating things in a little vacuum over

here that you know, it can't be bothered.

CJ: I, I need to think a lot more about
this, but I, my gut reaction is that

you have to consume a little to build
like taste and it's important to see

like what other people are doing to
consider whether or not that's something

you want to incorporate into your own.

I don't think mindlessly scrolling is
good or beneficial for like, for creation.

I think if you go into it and you open
up TikTok and you look at it and you

say to yourself, I'm going to look
at these TikToks because I want to

see what they're doing to go viral.

That is like a very different intention
when you open the app than like, I'm

bored or I'm tired or I'm anxious
or I'm like, you know, like other

reasons why you might like reach for a
dopamine hit through through tick talk.

And like it, those things are
not good for you for sure.


Like the just mindless scrolling.

But I think, yeah, if you can, if you're
consuming intentionally to become a better

creator, then I could see that, that
would be totally positive and, and there's

like absolutely a good way to do it.

That said, I don't think anyone, or
like, I would say most people are not

mindfully consuming TikTok, Instagram,
YouTube Shorts, or any of the,

like, algorithmic feeds of anything.

And yeah, personally, I have definitely
fallen into a really unhealthy pattern

of consuming mindlessly at night and
like all the algorithms just want

to show me like political shit now,
and I'm like I'm very, very over it.

Like I don't want to hear about political
news and I just get sucked into it like

on a daily basis where every time I open
up any of the, these apps, it's just

showing me like all of this junk like
political propaganda stuff basically.

And so it's definitely not good.

And I'm also like.

Trying to be better about when I
open any of the social media apps.

Like, what do I want to learn or
what do I, like, how do I want to

like grow from this experience?

And so yeah, I'm trying to be a little
bit better about it, but yeah, just

throwing yourself off of the cliff
into the algorithm is is definitely

not, not the right way to go for sure.

Colin: Yeah, and I think like with most
things, I mean, you can use them as

entertainment, like we don't need to open
them every time with like, I must get

something out of it, like that's useful
in my work or whatever, but tends to be

that like, if you mindfully say I'm going
to watch a show or like, I think A lot of

people are moving to watching things on
YouTube that and like it used to be that

YouTube videos were super long and they
became shorter and shorter and shorter.

And now some creators that I follow
are like creating series of like

pretty like 30, 40 minute, you know,
adventure videos and things like that.

And I watch those like I would watch.

Like a tv show and I'll watch one
and then walk away from it and not

necessarily Get pulled into the
the algorithm or the next video.

I think watching YouTube on like a tv
you don't have that sidebar as much

of like next videos It still kind of
happens, but it's it's not I don't think

they spend as much time on that Like how
do we get you to click on the next one

as much as they've done it on the web?

Or probably even But yeah, I hear you.

I mean, it's really easy to fall into.

I think the whole Senate hearing thing
that happened recently, some, a lot of

that was like kangaroo court around.

They already had soundbites that they
wanted to, you know, tell tick tock

and meta and all these, but there is
a lot of truth in the fact that they.

want you to use it more.

And so their, their motivations are
not always aligned with like what

our goals are for what we use those
apps for, or like what's the job

to be done with Instagram, right?

It's a lot of it is ads now, which are
very, very good and very targeted ads.

But I've been wondering myself, like,
how would I feel Less of an urge to

buy things if I wasn't on social.

And now I like witness the, like, Oh,
this thing's easy to buy right now.

If I want it, I'll write it
down and see if I still want it.

And usually if it comes from
the internet, it's probably

not, not something that I need.

Yeah, so that's, that's a good one.

I think something for everyone
to think about at home, just.

How much are you consuming?

Do you want to be creating more?

It doesn't have to be a public thing.

It might even be a thing for yourself.

Just kind of time, time and attention.

CJ: Yeah.

We've been, it's, it's, it's interesting
too, when we try to help our kids

learn how to be like thoughtful
consumers and productive creators.

Not like you don't, YouTube famous
or anything, but like trying to

help them understand that playing.

Or like, yeah, consuming social media
right now for them at their age,

completely off limits, but there's also
like a difference for them between playing

certain games and watching, you know,
documentaries and, and then like creating.

And so we've tried to like
carve up screen time into these.

Different sort of scopes, maybe where if
they are spending time on the computer to

make a podcast or a video or a stop motion
animation or to write a story or to draw

or something like that, we feel much more
comfortable with being like, yeah, sure.

Like go be creative, use the
tools, go 3D print stuff, go

print things out, whatever.

But if you want to just go on the
computer and scroll through YouTube

and watch people play video games.

That in our opinion is like way
less healthy than like, even

if they were to just go and
play the video game themselves.


Like they're at least like a little bit
more engaged, but yeah, both like the

yeah, just kind of garbage entertainment.

That's trying to get them to buy
stuff versus a little bit more

thoughtful, like, okay, let's watch a
documentary about space or something

that we as parents have somehow
deemed more valuable for their future.

But yeah, I don't know.

It's it's an interesting balance for sure.


Colin: Yeah.

Well, speaking of building things, what
have you been working on building lately?

CJ: Oh my gosh.

So at work, we are we're building
out a bunch of tools for calculating

gross margin on projects.

Lots of different calculators and
estimators and caching data in certain

places so that things render quickly.

Also continuing to work on our
messaging release for Twilio,

which is coming along pretty well.

And so we've been experimenting with
like recording calls and routing calls

and building all that kind of stuff.

And then yeah, on the side, continuing
to hack on buckets here and there.

So buckets.


dev, if folks are interested, it's going
to be a little personal finance app.

And yeah, like we, you and I chatted about
this in all the different data providers.

And it's funny watching Josh
Pigford on Twitter, like just

raging about how the data providers
for all this financial data.

There's like not one good one that will
give you all the connections to all the

banks and mortgage companies and you
know, brokerage accounts and bank accounts

and credit cards and all these things.

And so went through the whole cycle
of trying to integrate lots of

different ones and then came full
circle back to, back to Stripe.

And it's still like,
none of them are perfect.

But it's been, it's been fun to hack on.


Colin: Yeah, I've got it.

Running on my machine too and I've
been playing around with figuring out

where I can be useful and what we can
add to it and I think it's funny that,

you know, as you've been tweeting
about it, so many people are like,

just use maybe just use Josh's thing.

It's like, well, we have our own
little thing going on over here.

CJ: Yeah.



It's partly, I mean, it's fun to scratch
your own itch and it's also fun to have

full control over it, you know, instead
of it being like this open source thing

where I definitely feel like Josh is going
after like a global solution that has

recently he's been talking a lot about
like currency conversion and all these

different features that will support a
global solution, which I think is awesome.

It's a great use case for, Open source and
all these things to scratch our own itch.

Like, I don't, I don't know about you, but
I only have US dollars , so like currency

conversion feature that can wait for
you know, scale or something like that.

So it's like,

Colin: Well, and some people have
been poking him on that about

like, should you not make a fully
complete system for USD first

before you start going wide?

And I, I actually think like
following the journey of lunch

money which is a budgeting tool,
like they were digital nomads.

Jen from from lunch money.

It's built by one person and she was
moving around the world being digital meds

and it needed to be multi currency first.

Like it's

really hard to go back in and be
like, let's tack on multi currency.

Like it doesn't work well.

So I think they're probably
right in starting it first.

But there was a lot of really
interesting conversations around.

I don't want you to convert it.

the other currencies into my
money, I want you to keep them

in the currency that they're in
because they're in that currency.

And you lose little tiny
amounts of rounding errors and

things when you do conversions.

And if it's sitting in another account
in France, you know, in another currency,

like keep it in that currency and just
keep the balances going in that currency.

And sure, you could do like a total
net worth in USD or whatever you want.

With my like a lot of my interest in
personal finance, it's so interesting

to think about like how easy and
like for us it is to just think in U.



But like most people in other
countries have to be thinking

multilingual, multi currency, right?

They have a lot of them
have investments in U.


Dollars in the U.


Stock Exchange as well as
their home countries or others

a little bit more diversified.

So it's a wild world.

CJ: Totally.

Yeah, I think yeah, maybe to paint a
picture to like the initial idea was I,

I mean, we both used mint for a long time
to just like track balances and stuff.

And we both use a different
app for budgeting.

So I use YNAB and you
you're using co pilot.

Shout out if they want to give
us a affiliate link or something.

Or yeah, we'll share, we'll
share links to affiliate things.

I'm sure we'll find them.

So you can, you can try those out
based on the show notes, but those

are, those are great budgeting apps.

I don't think what like we're trying to
build as a budgeting app by any means.

It's like, how can we look at our
entire like financial wellbeing and

make suggestions or adjustments or
plans based on kind of where we're at.

as a whole.

And so, yeah, the idea of buckets is
like you can put your, you can kind of

like assign the money that's in different
accounts into these buckets that you

can track the balance of over time.

So maybe you have an emergency
fund and you have some goal

for that emergency fund.

So you can associate one of your
accounts with an emergency fund and

then see that in the dashboard as
like your emergency fund bucket.

Or maybe you have one that's like
retirement and you have in your

mind some number that you need for
retirement that you want to retire

early or whatever, like you can.

have your retirement accounts
roll up to and aggregate some

balance over time for retirement.

Same thing with real estate.

And then all of that, obviously rolling
up into some net worth calculation.

One component of that is when you're
tracking real estate assets over time,

you want to try to get like, what is the.

Estimated value.

If you were to like sell this house
today and Zillow has like a really

legit data science team with pretty
good estimates called Zestimates.

It's like their little internal
estimation thing or whatever.



So Submitted we submitted some paperwork
to try to like get access to their API.

I have not heard back after
the first kind of like back and

forth with their support team.

So if any, if we know anyone
that works at Zillow, like


Colin: to say, we might need to
like flex our DevRel muscle here.

CJ: yeah,

Colin: Who's the Zillow DevRel?

CJ: videos and some shared content here.

Colin: Just,

CJ: But yeah, the rent cast.

So rent cast is another API.

We I think it was just bought by
RealtyMole or RealtyMole bought

rent cast or something like that.

And we are using rent cast or we're
using the RealtyMole API at Craftwork.

And so I was like, Oh, like
we can use that for now.

And then I put in my own, like
a couple of my own addresses and

the property estimates were just
like way off, like twice as much

as I think they're probably worth.

And so we'll have to figure that
out, but yeah, you don't want your

Colin: multiply them all by two.

CJ: Yeah, exactly.

Just, just double it.

Just whatever, you know, like,

Colin: Yeah.

I think we've been, we've
been thinking too small here.

I think we should just get
Zillow to sponsor the podcast.

I think

CJ: great idea.

There you go.

There you go.

Colin: house Zillow.

CJ: Didn't they do something like that?

Or was that a different company?

Redfin maybe?

Or there was like some
real estate property.

It was Zillow.

Colin: I don't know.

I'm, I'm a Redfin fan myself.


do like that.

I don't know why their app is just.

Less cartoony feeling to me than
Zillow, so I'm not sure why, I

don't know if it's the colors or
what, but yeah, Redfin, Zillow,

give us access to your APIs, please.

CJ: Yeah.

I feel like there was a company,
like one of those companies went

out and bought a bunch of properties
and then they couldn't unload them.


the, and they were like stuck with a

Colin: They both did that.

They both became like the I buyer type
thing where they were the very thing that

they realized that like the hell is data.

So we could arbitrage and buy
houses and then sell them.

You can still list your house with Redfin.

So it like, it's like using.

But Redfin is your agent and they get like
a special marking on the UI that's like

listed by Redfin and they probably have
like lower fees or something like that.

Man, but like in 2007 I worked on
building out and this is before a

lot of these APIs existed on this.

There was this idea to build a website.

You could sell your house to like,
if you needed to move tomorrow, you

could just get like kind of what
you've done with craftwork, like

get inspections and get all these
different things done in one place.

And there's so many steps when you
buy and sell a house from inspections

and escrow and all that kind of stuff.

And unfortunately, this was like before.

Any of these things, Zillow, Redfin,
and it was just too far ahead of its

time because we were trying to figure
out, like, how do we send a text message

to these people who only take text
messages and phone calls and fax machines

and like, just automate it via paper,
but with texts and facts and stuff

like that, and you know, and that's
very much what Redfin and Zillow did.

And then they, like you said, they
found it really hard to actually,

they were stuck with a lot of
inventory and couldn't actually make.

Money on those houses, even though
houses have gone up in crazy value.

So yeah, it turns out pure technology
is, has more margins there.

CJ: Yeah.



So yeah, maybe the someone needs
to make a bad ass course about

how to buy and sell houses.

Speaking of bad ass courses,
you see that transition,

Colin: all the segues today.

CJ: your segues were on point.

I had to make like a,
just as the cheesiest one.

Colin: Yeah, so I've, I've been
binging a lot of course creation,

dev rel, docs type content.

So back that maybe that was where the
consuming versus creating kind of came in.

I'm sure it was mentioned multiple
times, but one that stuck out to

me was badass courses with Joel
hooks really good podcast for

course creators and course builders.

And I actually think the podcast is
called course builders with Greg rogue

it's, I think it's their first episode,
raising the bar for online learning.

And what I really liked about
the episode was they both are

video course creators and.

platform creators as well.

Like they both, both Joel and Greg
run their own course platforms.

Greg actually runs two two different
ones, two different code bases.

And the really big question that
they posed at the top of it was how

do you actually approach sitting
down to learn a new complex topic?

So they both are video course creators.

And I think their answer was kind
of interesting that both of them

are actually, they learn by reading.

And so their, their, their own
favorite method of learning

is a little bit different than
the stuff that they put out.

So yeah, I'd be curious just
to hear what your approach is

to sitting down to a new thing.

CJ: I'm jealous because I, I wish that
reading was my like priority version

of learning, but usually it's video.

And so it like, that basically means
that like the videos that I make are just

like lower quality versions of the other
videos I've seen online or something, you

know, like a collection of other videos.

Yeah, no, I think like, first
of all, learning by learning

a topic by reading is.

Obviously going to be very, very important
for any career because most content will

be available as written word, right?

Like if there's documentation about an
API, it will be written documentation.

There's probably 2 percent or less
of information available about how to

use an API is going to be available.

And so when, yeah, like learning a complex
topic I guess like most of my experience

in this case comes through Stripe.

A lot of it would be.

Read through the docs with a super
fine toothed comb because Docs writers

often try to be as concise as possible.

And so there might be one sentence on
a giant docs page that has the answer

for something that you're looking for.

So yeah, just trying to be like
really, really thorough when

you're reading through things.

And then second is like trying stuff out.

So just getting really quick at
trying quick starts, following

instructions and tutorials.

And then also like.

Yeah, I think I, I guess like
recently too, I've been kind of like

leaning a lot on chat GBT where I'll
say like, okay, here's the pieces

that I think I understand what,
where, where are my blind spots?

And then how would you do this?

And then give me some alternatives
to how you would do it.

And then trying to like think through the
implications of those has kind of been a,

a little bit of a new approach, but yeah.

What about you?

How are you approaching
these kinds of things?


Colin: Yeah, I think, they brought up
that it really depends on the thing that

you're learning, which I would agree with.

And part of that would be, like you
said, what's available to learn with.

ChatsDBT is definitely a new part for me.

Not just telling it what I know or
having it explain it, but I'll sometimes

take, like, if it's extremely technical,
I'll copy technical documentation

and say, Okay, explain this.

in a different way.

Like I'll say, explain it like I'm 10
which is always funny when you, if you

do the explain it like you're five, they
like comes up with like very kid focused

like metaphors and analogies and things.

But you know, that can
help to break it down.

Tragedy is also really good at
summarizing things and like, say

like, give me steps or bullet points.

And I don't know how much when you
tell it to do that, how much it's

still trying to pull from the outside.


And versus what it's been given.

So that you always got to take that
with a grain of salt and make sure it's

not hallucinating and things like that.

But for me, I would say like, I
definitely like to go find a video like

you do and just being able to do it.

I think learning by doing is, is like,
if there's a sample project, a quick

start guide, pull down the tutorial,
get clone, whatever it needs to be.

And I just need to like, get
it running and then maybe

change some things to get it.

to fail or break and then put
it back and just kind of poke at

the edges to see what's possible.

I've been doing that a lot with the
thing that I'm documenting right now

because it's like the team that built
it, we still can't talk about it.

The, the team that built it.

It knows it in and out, but I need
to know it in and out to document it.

And so I'm using it, breaking it,
fixing it, thinking like, okay, all

these things that I already know,
do they still apply to this thing?

Or is this like a new
thing that I need to think


And to your point, you know, how do we
avoid having one very crucial, important

line buried in the bottom of the docs
instead of like, these are the things

you should know before you start.

So, that's been interesting and in
a, I think like an episode or two

from now, we'll actually get to
talk about the thing, which will be

CJ: Nice.


So when you're thinking about these
complex topics and yeah, I guess learning

a complex topic, like saying complex topic
to me is what is throwing me a little

bit because a lot of like a lot of the
stuff that we're working with, a lot of

the API clients, a lot of the like SDKs
and things, they're not that complex.

It's when they're like, Yeah.

For me, at least it's when they
explode out into like bigger domains.

So for one example would
be like Stripe Connect.

When you start like trying to facilitate
payments on behalf of other people, and

you know, as a platform like Lyft or
Airbnb or whatever that kind of a topic

where like, okay, using the SDKs is fine,
but you also need to know like, here's

all these different concepts and hold
them in your head, like as you're going.


Yeah, I guess in, in, in that sense,
oftentimes, like when you're reading a

book, right, like you can kind of get the
main points as you go, or like you can

be entertained as you go, but at the end,
you're not going to get a quiz on it.


And when you read through technical
documentation, and there's lots of

different concepts, you almost need to
like, Sometimes I, I definitely need

to go back and like reread it several
different times to just build in my head.

Like what is the mental model for
all these different components

and where do they fit in?

And like, what step in the flow
are they involved in and trying

to draw analogs to other things.

So great, like couple great examples, the
Twilio conversations API, like they have

this conversation, the concept of the
conversation, which is a set of messages

between multiple different parties.

And those are all
conversation participants.

So you have to like make API calls
to create the conversation to create

the conversation participants.

But as a separate thing, you can
create a conversation user Which can

be a participant in a conversation
user represents like, Oh, I'm a

salesperson or a support person that
works at the company that is going to

like, you know, Act on behalf of the
company in certain ways or whatever.

And so those can also have roles
and like all these different things.

And it took me a long time going through
the docs over and over and over and being

like, why can't I just use conversations
and conversation participants?

Why do I need this like, other thing?

And yeah, so I guess for me, maybe
that's because I'm reading isn't my

primary, it's like just I have to
go over it over and over and over.

So, yeah.


Colin: Did they have any
diagrams and things, or


CJ: I did not see diagrams, but that
probably would have been helpful.


Colin: Yeah, I think the other thing
to think about is that we've been

doing this for so long too that
like I realized the other day Do

you remember when Oath was hard?

Or is

CJ: Right.




Colin: It kind of still can be

because there's so many flavors of it But

CJ: Right.


Colin: I was working on
something in one step.

It was like step step five do
Oath and someone was like What?

Like, this is like the, this is
like the draw a circle and now draw

the rest of the owl, and you're

like, no, no, no, to me, doing the
OAuth was only one step, but to

them, like, that's its own guide.

And I'm like, yeah, you're, you're right.

And we have a guide on that.

But for this, it is the tiniest,
this is the beginning point.

Like, if you

do not, it's a prerequisite to
understand OAuth to do this next thing.

And so we do have to remember not to
take, you know, into account like our, the

curse of knowledge that we have when we
think about these things, but there was, I

remember having to like have this picture
of a lot in my head and like this happens

and then there's this handshake and

where do I keep this thing and now it's
very automatic or like a lot of the SDKs.

Do it for you now,

but it's important to know how it
works because when it breaks, you

need to understand how it works.

So that's something I've just been
trying to remind myself more about

is that, like, how do we keep the
beginner's minds when you're learning?

And then now when you learn the next
thing, you're not starting from zero,

you're starting from a new starting place.

CJ: hmm.


I guess another thing that comes to mind
sort of is using friction logging as

yeah, as a way to start conversations
about how things should work.

So especially when you're on a
DevRel team and you're providing

product feedback to the product team.

One way to do that is in these things
called friction logs, where you

just like write out your stream of
consciousness of you trying to solve a

problem with the tool that was built.

And sometimes as you go through that,
the product team will be like, Oh,

whoa, like we, this is not what we
expected people to think about that

part of the documentation or that
part of the API or SDK or whatever.

And so let's have a conversation
about that and try to make the

developer experience better.

Sometimes it's also like,
Oh, I was just being.

Like dumb and I missed or like
completely misunderstood how

that was supposed to work.

But yeah, it can, yeah, writing a stream
of consciousness to try to explain what

you were thinking when you're trying to
build something and then show it to the

person, like the team responsible for
building that can, it can also lead to

some fruitful conversations and learning.

Colin: Totally.

CJ: Yeah.

Colin: All right.

Well, I think we can tease this
one for next time, but we can

talk about it a little bit.

There's been a lot of conversation
about Campfire and the kind of one

time, once business model of Campfire.

We talked about it a few episodes
ago and like, we're curious to

see how it went and it went live.

It got sold.

The numbers that were
kind of thrown around.

A few weeks ago was that it had only
sold, had only, in quotes, sold like a

thousand copies or so, that's probably
more now, but some people have just

been, you know, armchair experting about
whether or not that was a success or not.

Basecamp is You know, such a big
company and being able to release this.

It's like kind of what, what
is the motivation for this?

Do they think it's the
true business model?

Ultimately it seems like a lot of
people bought it just to see the code.

and we went ahead and bought it
so that we could see the code.

So we'll definitely, we're
going to be looking at it.

And then we'll talk about it in a,
in the next episode, but yeah, I

mean, what do you think about this?

Do you think that people actually
want to host this themselves?

Do you think that there's like
this appetite that you want

to have a server somewhere?

CJ: I don't think anyone, well, I
mean, I'm sure there's going to be some

people, but I, I would guess that the
majority of people who've bought it so

far are just interested in looking at
the code that DHH wrote, or was kind of

like responsible for in, in some way.

And I, I'm really excited that
this is available and also like.

In the same way, watching the maybe code
base evolve and, you know, getting to

read this, getting to read the jumpstart
pro source, getting to read you know,

there's, there's a few other like open
source rails projects that have been

kicking off that seem really interesting.

And so I'm, I'm just really
excited that there's more.

And then there are full rails applications
that are going to be available some

for free and some for money that you
can go and read and see how other

people are approaching problems.

Because I think for a long time there,
there really weren't any, right.

It was like, you could see some toy
apps online or, you know, some read

blog posts, but you couldn't really
dig into a full application source.

Some company had used to actually run
and execute their entire business.

Maybe there, maybe there are some
but yeah, I think that's like

the most exciting part about it.

Colin: Yeah.

Well, and whoever bought it, I
think it already, it happened once.

I'm not sure if there's plans to do
it again, but DHH did a walkthrough

of the code for anyone who bought it.

And I, some people were saying like, If
you want to think of this as a course,

like it's cheaper than some courses.

It's code written by DHH
and team who created Rails.

Now, you know, obviously now Rails is more
than just DHH and it's a community effort.

But if you want to see how,
you know, DHH thinks about some

of these things, that's what's
motivating a lot of people to do it.

I think they're doing a walkthrough
around the CSS and design with

one of their designers coming up.

So it's, it's interesting.

It'd be almost.


I would be curious to get recordings of
those now that I have a copy of the code.

And it could be sold as a course
if and people can still host it

themselves the way that it comes.

It comes with an install
script that installs docker.

And downloads the code and all of that
onto the server that it's meant for.

And they're using like license
keys and things like that.

I'm mostly interested in, in looking at
the hotwire and stimulus side of things.

I don't think that there's like
a mobile version necessarily,

like using like hotwire and
turbo native and all that stuff.

But I could see that becoming
a thing in the future.


My first pass of the code, there is a
bunch of stuff in there for bots, and

I remember the OG campfire had bots.

Like it was, it was ahead of the time,
you know, it was people were leaving

IRC to go to campfire before Slack and
before teams and all these other tools.

So I think those things might happen.

I just don't know because they're not
getting recurring revenue and they're

not gonna be able to resell like, hey.

Here's a DLC like is there gonna be like
a 20 add on to get bots and integrations,

but a lot of people use integrations
with slack and you're not going to go

see like can't fire show up in Zapier
for instance, you know, you're gonna have

to make some HTTP requests to your own
API, but we'll have to dig into the code.

I haven't looked to see
like, is there an API?

I imagine That there is, or at
least like some sort of webhook

ingest or something like that.

CJ: And is it that they just kind
of like took a snapshot in time and

they're selling it as is at a certain
version or is it getting updates?

Like, how does that work?

Colin: From what I've seen, they've
mentioned that it's major version.

So you'll probably get whatever
versions come from this, but they could

potentially say like Campfire 2 is ready.

And we redid the whole thing.

And to be clear, this is not the
original Campfire that they packaged

up from 2008 and threw over the fence.

Like it was rebuilt.

There's some things that.

You know, I wonder, I'm sure they
use it internally because they're a

decent sized team with like having
been in large communities in Slack

and then now working at discord.

I'd be curious to see like some of
their design choices around like having.

Avatars and who's in the
server, like going horizontally.

If you have over even a hundred
people, like scrolling sideways,

a hundred times is, is rough.

What does pagination look like when you
have thousands of people in a campfire?

What do rooms look like when you have
that many people and notifications

and all that kind of stuff?

So yeah, chat apps are challenging, like
you've got persistence and you've got,

you know, I think one of the benefits of
this is that you don't have the problem

that you have with slack where you can't,
if you're on free slack, you don't get

more than 30 days of message retention.

So if you're really wanting to have
a quote unquote free, as long as you

maintain it solution, it does seem like
a pretty cool thing that you can run.

And if you're a fan of.

37 signals, then you have
another thing to look at.

CJ: it's interesting because we are
building internally, we're building

like this customer support interface
that is very much a chat app.

It's just, well, like customers will
receive the messages as SMS or as email,

but internally it has like, you know Like
bot integration, where we're generating

responses with different AI tools and
then being able to like auto complete.

And we have like our own little
mini co pilot thing going on.

And the, as a team, we decided to
build a lot of that and react just

because it was like a little bit
more interactive on the front end.

And so looking, I'm kind of
curious to see, you know, inside

of campfire, how are they solving
all these things without react?

And they're just kind of using
stimulus and hotwire and.

They're able to build a world class sort
of solution without too much JavaScript or

so it sounds like, yeah, be cool to see.

Colin: Totally.

I'm excited to dig into it.

It sounds like even for some of those
like bot things it might be interesting

to look at for you guys to see if
there's any, anything to inspire there.

And you know, I'm, I'm still curious
to see how all these things Work

with, I don't think this project uses
tailwind because they don't want to

use all the dependencies and things,
but like, I'm always curious to see

like the front end, both design and
JavaScript or lack of JavaScript.

If not needed to do like these live
updates and refreshes and HTML over

the wire and all that kind of stuff.

So stoked to dig in.

CJ: Totally.

That's probably a good spot
to wrap it up as always.

You can head over to build and learn.

dev to check out all the links
and resources in the show notes.

And we will yeah, drop some
affiliate links to budgeting

tools you can go sign up for.


Colin: All right.

We'll see you next time.

CJ: All right.

Bye friends.