Build and Learn

Producer's note: This episode should have gone out as episode 48 ahead of Webhooks! This is our missing episode. Join us next episode for episode 50!
Colin has a fitness update: working on the lungs, breathing and stress in general. CJ is digging into enums and converting them to models at Craftwork. More to come on that topic soon. Colin continues to avoid building Coworking Software (to everyone's applause) and CJ is digging back into James Clear's Atomic Habits.
  • Colin: Fitness update / massage / breathing 
  • CJ: Big refactor from an enum to a model - evolving pricing models
  • CJ's sleek lidar mop vacuum 
  • Colin: Coworking Software Update: not building anything, trying out Joan
  • Colin: Internal discussion on Webhooks
  • CJ: rereading Atomic Habits
  • Colin mentions some Obsidian (more on that to come in future episodes)

Creators & Guests

Host
CJ Avilla
Developer Advocate @StripeDev. Veteran. 📽 https://t.co/2UI0oEAnFK. Building with Ruby, Rails, JavaScript
Host
Colin Loretz
I like to build software and communities. Building software at @orbitmodel 🪐 Coworking at @renocollective 🎙Sharing software learnings on @buildandlearn_

What is Build and Learn?

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

Colin: What's up?

We're back.

CJ: Hey, how's it going?

Colin: good.

How's the week been?

CJ: Awesome.

It's been pretty fast.

I don't know.

This feels like it flew by
really quick, which is, is good.

You know, it can be good and bad.

I just edited our last
episode and put it up.

So if you are listening along
now, you can head back to the last

episode, learn all about our debate
about monoliths and other things.

Actually, that's not,

Colin: I was like, I don't
remember having that, that debate.

CJ: Okay.

It's funny because I saw that article.

Do you remember that there was like a
monolith, like a physical monolith that

just appeared somewhere like out in the
desert and then it disappeared and then it

reappeared recently somewhere in Nevada?

Colin: Yeah, I just shared that
there's a it's like fully mirrored

monolith that just reappeared somewhere
in Nevada again this last week.

CJ: It's, that is so interesting.

And like, where did it come from?

Who, whose is it?

And I think the one that was in
California last time, this was several

years ago, like, like appeared, was
there for like a few days and then

disappeared and no one could explain
like how it got there or yeah.

What happened to it?

It's

Colin: Yeah, I don't know.

I don't know how big the new one is.

I've seen pictures of it, but
it's hard to get a sense of scale,

especially because it's mirrored.

I wonder like if it's It's got
to be placed by like humans.

Right.

But like,

CJ: Yeah.

It's like a crop circle types thing.

Colin: but then you gotta be like,
okay, how many people are in on this?

to be so aware of no one
else seeing you place it.

The amount of planning to make sure
that no one is around, that no one sees

you, you know, I could see like a number
of people just keeping a lookout and

then being like, okay, everyone's gone.

Now let's bring it in.

But also no photos, no video, no
anything about anyone placing it.

You know, that's hard to do these days.

Cameras are everywhere.

CJ: did they, I mean, did they bring it
in with a helicopter or something to like,

Colin: I think aliens

CJ: the darkness?

Yeah.

Aliens.

Okay.

Colin: Where's the History
Channel Aliens guy?

CJ: Oh my gosh.

That's like the late night thing that
I feel like the YouTube algorithm

always just veers off a cliff.

And if I wake up in the middle
of the night, it's playing,

Colin: He's one of my favorite memes, so.

It's always good.

CJ: yeah, nice,

Colin: mysteries, or, yeah.

CJ: Yes.

Right.

Yeah.

Colin: Yep I think we've
been talking about it.

Let's see if you've been
editing the last episode.

We probably talked about some fitness
updates can do an update here still trying

to figure out what the heck is going on
with my breathing I am adding stress and

anxiety to the list of things that it
probably are not helping it, but I can't

remember if I talked about in the last
episode, but I had like this breath work

massage that definitely helped and like,
it was like focused on your diaphragm

and the muscles that you'd use to breathe
and your back and like completely unstuck

me because I got it the day before.

The RTO and it was amazing.

So I'm going to do another one
of those and mostly just Yoga,

stretching, breathwork, exercises.

I feel like such a tech bro,
but a little Wim Hof, a little

you know, all of those things.

And then just trying to de stress and
like, try not like, if I'm thinking about

work, just write it down and put it away.

Try to do fewer things.

Slow productivity back to
the, back to that episode.

CJ: Yeah.

Did it bug you during the run
or it felt good during the run?

Colin: Yeah.

I mean, I think it definitely made it
more like I would have been able to do

it without the massage, but that like
completely unlocked me for that race.

And then I don't know that it was COVID
because I tested negative like four times,

but my partner got it this last week.

And then I just felt super off
and it could have been just more

stress, allergies, cold, whatever.

But I feel like I'm like right
back to where I was before RTO.

So it's like always another,
always another thing.

So if you're sitting in front of a
desk, if you work at a computer a

lot, you gotta, gotta spend that time,
you know, away every, every hour I'm

at the computer, I'm trying to spend
two away, but you know, there's only

so many hours in the day and that,
that math doesn't math very well.

CJ: Would you recommend the the
massage for people who are, yeah,

like trying to get better at

Colin: Like when I, when I told
the team that I had done it, all of

a sudden they were like, all get,
they're like, I need this info.

Like I want, everyone would like to just
be able to breathe a little bit easier.

And it's not a thing that we really.

think about, right?

Like a lot of people don't like you'll go
get a massage as like a relaxation thing.

But I mean, it was, there was
some painful spots, but they were

spots that needed the attention.

And yeah, it was super nice.

I would, I need to figure
out like how to get them.

Like maybe we get like a discount
for our, our running club.

Maybe if you're, if you're in Reno,
we get a discount for our listeners.

But yeah, I would look for it.

In whatever city you're in, if
there's like someone who focuses

on like intercostal muscles,
breath work, things like that.

CJ: And with the Wim Hof stuff,
where is that something you just like

learned online or how did you learn
like those breathing techniques?

Colin: so that I've been to a class
locally which was interesting.

It was really, it's, it's interesting
to do it by yourself and you

can watch YouTube videos on it.

You should do it, you know, sitting
down or laying down, not while you're

driving, not while you're swimming or
in the shower or anything like that.

Cause you can like pass
out if you don't do it.

Right.

But for me, I find when I do it,
It's like a series of inhales and

exhales and then long breath holds.

And then you do another one
and then you do another one.

And what's really interesting is
like, it makes your body more I

think it's alkaline and you end up
having longer breath holds each time.

Like if you do three in one sitting,
each breath hold for me tends to

get longer and longer and longer.

So I might go from like 50 seconds
to a minute, 30 to two minutes.

And it is really crazy
to see that in like.

one sitting.

And so if you're really good about
doing it every day or multiple times

per day, you start to get longer and
longer breath holds and you can feel it.

And I can tell a really different like
sense of like stress leaving my body

when I do it, the ability to breathe a
little bit deeper and things like that.

So yeah, this is a, this is
a breath work podcast now.

CJ: Yeah, I think that would
be really good for swimming.

Like I definitely noticed that if I,
there was a period where I would bring

Logan to the gym and he would do, he was
doing like these rock climbing classes.

And during those rock climbing
classes, I would go swim.

And I've found that even just one day
a week of swimming for like 30 minutes

helped feel like I was breathing better.

Yeah, so that's kind of interesting.

I don't know.

I'm assuming you don't smoke.

Yeah.

Colin: I do not.

CJ: I don't know.

You do not.

Okay.

So yeah, I've definitely found that
too, that like if I'm in a period

where I'm vaping or smoking or
whatever it's, I, I feel like way

shorter of breath than when I'm not.

And so like, that's probably
another massive thing where,

you know, if I go several months
without like inhaling anything,

then it's much easier to breathe.

But

Colin: Yeah.

That's the tricky one.

Like I've never been a fan of like, I
want like try a few things, but like

smoking it's just like with running and
the amount of stuff that I do with that,

it's just like, I know it doesn't at all.

Right.

So I will stick to edibles and
things like that when I want

to have some extra relaxation.

But.

CJ: Yes.

Colin: Yeah.

I mean, just like so much focus
has been in, I feel like in health

and in tech around drinking lately.

I feel like smoking is going to
be the next one where we just,

we just don't know so much about
what vaping is doing to us either.

And, but if you want to breathe easy.

CJ: Yeah.

Speaking of that, I know, no,
like in previous episodes,

we talked about Peloton.

One of my favorite Peloton instructors,
Kendall tool is leaving Peloton.

And I think the company she's joining
is one of these like non alcoholic beer

Colin: Oh, nice.

CJ: Called like athletic
brewing or something

Colin: I love

CJ: like a beer, like, Oh, you do.

Okay.

I've never heard of it.

So like, yeah.

What it's, it's just like a, yeah.

Non alcoholic beer craft beer or something

Colin: Yeah.

They have a bunch of different types.

So like right now it's summertime.

So I get like some of the They're like,
like a Radler style beers, like more

citrus style, but they've got like a
white, a Belgian, they've got red an IPA

and they're all in a I think they, they're
very, I think they're based in Denver.

It feels very much like a fitnessy
Denver brand, but it's just nice.

Like if you don't want to have a drink
or you want to have something after a

run or workout, like you can have this
thing that is more than just water and

kind of makes it into something nice.

Cause there's so many people
who want to replace drinking.

They find like nothing really compares,
but if you like have that ritual of

something else, you know, even liquid
death or something like that can help.

With that,

CJ: yeah, it's, it's interesting
because I think a lot of people,

well, obviously a lot of people use
alcohol as like a social lubricant.

And so I have seen a handful of
different things pop up on Instagram

and whatever, of people trying to
come up with their own chemicals that

have similar, like, I guess, anxiety
reducing properties that are also in

a way, some sort of social lubricant.

And in the past I've
done, so I have a buddy.

Jeff who, like, hosts Kava ceremonies.

I don't know if you've, like, been to
one of these, but that, that was really,

like, eye opening and surprising to me.

It's like, it's a chemical or, like,
a, it's a drink that you can't mix

with alcohol or you're not supposed to.

It's, like, very bad for your,
like, liver and kidneys and such.

And so we'd go to these Hangouts basically
where it is a very connected social

experience and you're drinking this drink
together and it's not alcoholic in any

way, but it does give you like I don't
know, some sort of recreational benefits

and like soothing, calming benefits.

So, yeah, I don't know.

Colin: Yeah.

We have a tea lounge in
Reno, the yoga studio.

And they have Kava.

CJ: Oh, nice.

Very

Colin: Yeah, so Kava and Kratom as
well, which I don't know much about,

so I will not try to talk about it.

But, another one of those things
that has some effects and it's,

I, I don't know much about it.

But, yeah, I mean, I think that social
lubricant thing is, is interesting

because it's like, it has made me
try to figure out how to go to bed.

Events where I don't know people
if I know I'm not going to drink.

It is a learned behavior It's you
know, I find myself to be pretty

social But like sometimes I like
I don't want to fake it and that's

where it's like alcohol can make that
easier And I also don't necessarily

want to only have fun if i'm drinking.

So there's like this balance
of of things there I'm curious.

What do you know what she's doing at
athletic because going from peloton to

athletic is like very big difference

CJ: I'm assuming she's going
to be like an influencer.

But I don't, yeah, I don't know.

Colin: very cool

CJ: yeah, so we'll see, but yeah,

Colin: update.

CJ: that's it.

Colin: What are you working on this week?

CJ: Oh gosh.

So I wrote, I wrote and published
this blog post Couple of days ago

about some learnings that we've
had with rails over the last year.

And one of them is around enums and when
to use them and when not to use them.

And so we're working on this massive
refactor can to convert one enum

into a model, a proper model with a
relationship, but it really like stem,

this particular refactor stems from a
thing that I've seen now a few times lots

of different startups, and I think it's
worth chatting about, and I don't know.

The best practices here or
the best way to go about this.

But every time that I'm working
with startup founders, they just

love to experiment with pricing.

They just like want to try lots
of different pricing models.

And like Kraftwerk is no different.

And we started off with like this
very simple, transparent flat rate

pricing where, okay, if your room
is, is small, medium, or large,

And you want to paint the walls.

It's like a fixed 200,
400, 600 or something.

Right.

And it's just like this flat rate amount
for a service that we're going to provide.

And over the last year, we've learned a
lot about the business and a lot about how

to align the value that we're adding with
the amount that a customer should pay.

And I think that's where the tension
lies in, if I reflect on all these

different situations, it's between like.

The business trying to align the
incentives and align the value with

what the customers are getting and
trying to do that in a way that makes

it profitable to run the business.

And so in the craftwork use case,
we're talking about stuff like, Oh, if

it's, if we need to add an extra coat
of paint, that's going to take longer,

it's going to take more supplies.

So, you know, one room that
is just drywall that's fresh

drywall is going to require.

More work than a room that's pre painted
or, you know, we're just doing a repaint.

And so that is this concept, or maybe
there's this concept of like modifying it.

Right.

And so then you can think of a data model
or an approach where you're building

some object oriented relationships
where you can apply modifiers on

top of some flat rate base pricing.

But then we have these buckets that
are actually like not granular enough.

And it would be ideal if we could do
it based on the actual square footage,

like the surface area, square footage
of the wall and like the linear feet

that we need to cut and things like
that to get like even more specific.

And yeah, it's, it is something that will.

We'll get better at, and there's
a few things that we've picked up,

but I'm definitely like noticing
that this is a hard problem that I'm

sure every startup is running into.

And that's like, how do you properly
price thinking back to my VR, this

was SAS software that I think we
initially were just charging like 40

per property per month or something,
or maybe even like a flat 40 per month.

And then it didn't, we didn't have
any like additional fees No matter

how many properties you have for this,
like property management software.

And then over time we were like,
Oh, actually the more properties you

have, the more value you're getting.

So let's add like a per property fee.

So now it's, maybe it's 10 per
month, plus 2 a month per property.

And then we're like, Oh, well, The value
you're getting isn't necessarily the

number of properties you're managing.

It's actually based on
the size of the bookings.

So like if one person only has one
property, but they're booking out

at like 10, 000 a night and another
person has a property and they're

booking at a hundred dollars a
night, like that's pretty different.

So then do we make it a percentage
based on like how much the bookings are?

And then.

Yeah, so I dunno, it's, it's, it's
super hairy, but yeah, one of the

things that I have found really
valuable is having versioned pricing.

So every time that we want to release a
new price or set of prices or approach

or algorithm for calculating a price,
we have, we cut a version, almost like

an API version, it's a pricing version.

And a whole bunch of stuff is
tied to that pricing version.

And then we can like run all the
calculations with the right models

and such, but Yeah, it, it's, it's
a problem that I'm curious if other

people are solving this like really
well and nailing it right out of

the gate to make like super flexible
pricing that evolves very easily

depending on what the founder needs or,

Colin: Yeah, there's there's
like two parts to that, right?

Because you've got the technical
How do you store it and calculate

it and save it and use it?

And do you use or stay on the old
pricing and are they grandfathered

in on the value metric side?

Yeah, it's so interesting to think
about like, you know, How do you pick

a metric that scales with value too?

Like when you're explaining that, like
the, even the property one, it's like,

well, if I have four properties, you
know, I could see property being a value,

a scaling value metric with transistor.

What I liked about how they did it is
that it's based on our listeners, not

the number of podcasts where previously
most were each new podcast was like 10

to 50, 10 to 20 a month or whatever.

And that prevented me
from making more podcasts.

Right.

So it actually prevents the user from
doing the thing that you want them

to do versus, you know, obviously
like if we created 20 podcasts,

they're all not going to be great.

So you still want to focus, but
the value metric for us is, well, I

guess for us, it's different, right?

Right.

We do this for ourselves, but like
the idea is you're paying by user.

It doesn't matter how many podcasts
and it lets you have like more.

Hits it, that bat type of
thing where we can try a few

podcasts and see which one works.

When you're talking about houses, it's
like does a user, does a, does a homeowner

or someone who's hiring you'd really think
like getting their, their room painted.

What is the value metric?

Is it that it was painted or is it, do
they truly think of it in linear feet?

Probably not.

Do they think of it in layers of paint?

Probably not, right?

It's either, is it done or not?

And if they hired someone more
traditional, that person, if it's going

from drywall, is going to have to deal
with the same number of layers of paint.

So is it that it's cheaper?

Is it that it's better?

Is it a convenience?

Is it like, there's so many avenues there.

And I think with craft work, it's
like all those things, right?

It's.

And then how do you price that scales
so that you're not leaving money on the

table for every time you'd paint, like,
especially if you're losing money on

every, you know, if you're like, Oh,
we realized that these rooms of this

size just don't make us this money.

So we're only going to do rooms of this
size or, you know, doing repaints is

better than drywall or we get really good
at drywall and drywall is actually better

because we won't want to paint it our way.

So there's a lot of things that aren't
even represented in code, which is gnarly.

CJ: Totally.

Yeah.

And then, yeah, so I think the
value they're getting is not

having to do it themselves, like
not having to paint it themselves.

And it is often in contrast with
other competitors in the market.

So it's like,

Colin: it can't be like so much more
than what someone else would charge.

CJ: exactly.

Yeah.

It's like, okay, this person could
either go buy all the paint and

spend 20 hours themselves to paint
it, or they could pay someone.

X dollars or they could pay us
X plus, you know, 5 or whatever

per square foot to do it.

And then yeah, so I think it's,
part of it is quality too.

Like they'll see great customer reviews
and they'll see examples of past work and

social proof and all of this stuff that
if someone has like very particular taste

and certain style that they're trying
to achieve, and then they would pick us.

And.

Yeah, like on the, on the business
side, a giant part of the home

services business is figuring out
how to like nail your gross margin.

And that's all like very relative
to how long it takes to do something

because a lot of it is tied up in labor.

So like if you don't estimate
correctly how long something is going

to take, then You are going to like
either way under or way overshoot

the amount of labor that's involved.

And then that makes it just like V huge
variance in the margin per project.

And like, that's the thing that you
want to control for the most in order to

have like a predictable and sustainable.

Like home services business.

And so yeah, it's also balanced with
like, how much do we want to enter in?

Like how much do we actually want to
type in and is the sales team going

through every single room and marking
off, you know, like, Oh, this room has.

Baseboards and crown
molding and chair rail and.

You know, this many windows, this
many doors and blah, blah, blah.

Sure.

But then on top of that, are they
going to be expected to measure the

linear feet around all those things
in the surface area, square feet.

And yeah, I've got some fun,
some fun little projects going on

with the, the room scanning tools
that are built in with the iOS.

We're mapping stuff, but

Colin: need like a robot that goes out
to a house and like scans everything

CJ: 100%.

Yeah.

Yeah.

I don't know.

Like we got a robot vacuum for the
first time last year or something.

And one of the first things it does is
like goes through and maps out your house.

And I thought that was
the coolest thing ever.

I had never seen something like that.

It's like in 10 minutes, it spit out
like this 3d rendering of our house with

like the, the direction that the wood.

Runs on the

Colin: Oh, well

CJ: so that it would like
mop it the correct way.

And wouldn't like go orthogonal
to like the wood grain.

I was like,

Colin: you have a nicer one than I do

CJ: It's yeah, it was like
yeah, we'll have to put a

link to it in the show notes.

It's the

Colin: well because there's those they're
like these like segue looking robots

that they tried to do in offices to like
let people Remotely be in the office or

whatever and it's like an ipad on a on
a segue Like something like that showing

up someone's house and doing the iphone
3d mapping thing, you know, and just

like somewhat Maybe you don't even need
that if, if a Roomba is good enough.

But like a Roomba kind of maps it
out by like trying to navigate every

inch that it can versus just being
in the center of the room and then

doing a few like spins around or kind
of like how the those 3d models are

made for, for showing houses and stuff
like that with the, the 3d camera.

That's pretty cool.

CJ: Yeah, I think this one might actually
have a LIDAR scanner on the top of it.

So that, yeah, it was I don't know.

The future is here.

The future is here.

It's

Colin: there was a there was a hilarious
meme of someone in a iRobot store and

like they're surrounded by robot vacuums
and the person working the store was

mopping the floor and They're like,
this is the future the robots have taken

over now and we're doing their bidding.

CJ: yeah, yeah.

That's like the, the coffee shop in.

San Francisco airport that like, where
there's like a robot barista, but like

the humans still have to like refill
the cups and like refill the napkins

and stuff, it's like, okay we're
taking away the, yeah, the fun jobs.

Colin: This one's nice.

I'm gonna have to look at this one.

Very cool.

Well, I'm back with
another coworking update,

CJ: Nice.

Where are we at?

I know you were

Colin: So

CJ: so last week we talked, you had like
a notepad on the door or something, right.

And, or it was like, you got it
to show green or red or yeah.

So yeah.

Where are we

Colin: Yeah.

I mean, I haven't had a lot of time
to play around with software, so

I've, we're trying one more company.

It's called Joan, J O A N, getjoan.

com.

It's cool because they have like, we
already have iPads installed that are

on mounts and powered and all that.

So they do have an iPad app that we're
going to try and it has a user app that

you put on your phone and it's, I'm trying
to figure out if it's just good enough

because it has significant delays when
I'm testing it and like my programming

brain knows exactly what they're doing
wrong and I also don't want to go build

it so I'm like torn because it's like
I need this thing to be a thing we can

just pay and like it always is supported
and it works and if I build it I'm going

to be the one supporting it and making
sure it always works and what happens

when Google's down and all that stuff
but what's really cool is they have

these Kindle looking tablets that you
can also buy that are, that they have

like, I think like three months charge.

And so you can stick them on
rooms that don't have power cause

they're just battery powered.

So like our phone booths and rooms
that we just don't have power, that we

paid to have power put outside of each
conference room and it was not cheap

to do and I don't want to do it again.

So.

As we have other needs for
other rooms, it's kind of nice

to be able to, to do that.

And I think like the value it's
back to the value metric thing,

like the pricing is very good.

It's like per room and it's like, I think
it's like less than a hundred dollars a

month, whereas the other one was going to
be 5, 000 a year or whatever that math is.

So like we can handle.

This very easily.

It's just, is it good enough though?

When I say, is it good enough?

It was like, I doubt anyone's going to be
booking the same room at the same time,

but there's like a few race conditions
that I don't think it handles very well.

Like, it's just like, it's just
not as good as our last system.

So I think it's good enough.

I think we're going to try it with
you know, a few members and see

if it works good enough that they
don't accidentally book on top of

each other and stuff like that.

Cause we're using a whiteboard right now.

Which is people emailing us and then
us having to remember to put it on the

whiteboard in that morning and that is
not sustainable when like I'm not in town

or if we're unstaffed for, you know, like
coming up for a holiday, stuff like that.

So,

CJ: Yeah.

Yeah.

This would be nice too.

Cause then, yeah, people could
presumably you could just book it from

the, like their, either their user
app or like the website or something.

Colin: yeah.

Yeah, I mean, there's also, you could
literally just use Google's like form,

but it's just like not great for users
to like have to go find this link.

I thought about doing that in Slack
and make like, cause we do try to

like, we have a high percentage of
our members who use Slack being able

to like do slash book and make a
little Slack bot and do all that.

And it just pops up like the Google
calendar booking form for that room.

We'll see.

Cause that is what, Google Calendar is the
source of truth for all this, so like, we

could go straight to the source on that,
but and then on the like, less, the, the

one that makes us money is the actual
Stripe and membership side of things.

And we've been finding that we've had
some payments and stuff fall through the

cracks because sometimes when we bill a
member, if they're new, we need to send

them an invoice and they need to like
pay it and put a card on file so that

we can then set up their subscription.

And I'm sure there's probably a way
to do all of that in one step, but

like, depending on what day of the
month it is or all sorts of factors,

it sometimes gets sent to like an
accounting person as an invoice and

then Then we set up the subscription.

Once the invoice is paid, sometimes
we forget to set up subscription.

So we use a spreadsheet that
has all of our active pause,

canceling canceled members.

And then we have Stripe, which
is doing all the billing.

And I think it's time for us to have
like just a really lightweight UI of.

Of that spreadsheet of just who,
who does Stripe think is active?

Who does Stripe think?

Cause it's not super easy to scroll
through Stripe and like, see who's

active and all that kind of stuff
without going into each customer and

then looking at each subscription.

And just to have that so that we don't
have to do it by hand anymore, because

I did find, like I wrote a little CLI.

Script to go audit everything.

And that's how we found
some of the missing ones.

It's like, why are we not
getting paid for these?

That is super important.

And then, you know, some of them have
been a few months where it's like

kind of our fault, so we feel like
we can't always go get that money.

But some of them are like,
you have your own office and

you knew you weren't paying.

So it's, it's.

It's unfortunately time to pay all at
once, but I don't ever want us to be

in that situation and us getting paid
means that we can pay for conference

room software and all these other things.

So so working on that right now, it's just
a little CLI thing that shows me everyone

who's active and who's about to start and
who's about to cancel and all that stuff.

So,

CJ: Nice.

And then you, are you like
manually activating and

deactivating keys or how does that

Colin: yeah, the system we
use for that is from Slage.

And.

We had to log into their UI and then
their phone app to add and remove people.

That door system is like a
thousand dollars one time and we

just replaced it with a new one.

So we found that it takes like
six years for it to completely

die because we use it.

The door gets opened and closed
so many times in a day that it

takes about five years before
it's just needs to be replaced.

And that one does not have an API.

Sadly there's no way, like we
could probably get the logs,

but we can't like create keys
and stuff like that dynamically.

So there's some really cool ones
out there that do, but the, you need

to have like an electrician and a
certain door and the lock is expensive

and then there's a subscription
and all of that kind of stuff.

So the slage one doesn't
have a subscription.

So we paid once we get,
you know, it mostly works.

And sadly, I think for coworking, a lot
of software just has to mostly work.

And if we, if we were paying for an
actual coworking software and for a door

system, like unfortunately the margins
are so thin that we wouldn't be making

any money, so it's, it's definitely a

CJ: Mm hmm.

Yeah.

Well, hopefully Joan works out.

I think this, this looks super clean.

I like their their offering seems
to be exactly what you need for

just like co working room space.

I don't think you do the desk
booking thing, but I think that

seems like it's an option, but

Colin: Yeah.

I'm, I'm having to guess that all of
these companies are adding desk booking

because they're being asked for it, or.

Whether they're guessing that people
want it and so they're building

it so they can add more value
and charge more money because I

don't want the desk booking thing.

Like no one here wants to choose
which desk they want before they get

here I could see it Like I have to do
that when I go into the work office

in san francisco because they just
only have so many And the unfortunate

thing is when you go into the Joan
mobile app, the first screen is desks.

And it's just like, okay, now
I have to teach everybody.

They'll figure it out if they want
their room, but you gotta go to the

rooms tab, and then you gotta find
your room and all that stuff, so.

CJ: I was just reading something recently
where people who are being asked to work

in the office again, like return the
return to office wave, the, what I'm

hearing is that a lot of offices are
having people come back, but they're not

giving them a dedicated desk necessarily.

I think that might be a little tough.

Like you're, you're expected to go
into the office five days a week or

four days a week or something, but
you're not given a dedicated desk.

That might be kind of tough.

And so.

I wonder if that's also part of the
aim is like, if you had one of these

you probably know the term for it.

What is it like when you have an office
and, but no one has a dedicated desk,

you just kind of like go in and flex into

Colin: Yeah, like flex space or
hot desking cafe, hoteling, there's

all sorts of words from, from,

CJ: Okay.

Colin: from the hospitality world.

CJ: Nice.

Nice.

Yeah.

So you just like go in, hot swap
your desk into whichever one you

want that day, and then leave.

But yeah, I guess as someone who wants
like some stability and being able to

just like leave your jacket at your
desk the night before or whatever,

Colin: Yeah, and we have like we have
resident desks for that where you have

your own desk and then the other desk
like in a perfect world I would love

to get us to a point where we have like
the same monitors at every desk and you

just plug in but everyone has different
setups so like at discord we kind of

do have that because everyone has like
a macbook pro and they're all usbc and

you just Sit down and get get going.

I don't actually don't know how they
do that with keyboards and stuff I

think our IT department has keyboards
and stuff, but I I mean my 16 inch I'm

usually fine just working on the laptop.

And then when I'm here,
I've got my full setup, but

CJ: Nice.

Colin: So that's the saga of
coworking software, the never ending.

I just

CJ: It

Colin: want to think about it
anymore, but also I'm like, I don't

want us to miss any missed revenue
or just make, make our community

manager's life a little bit easier.

So she, you know, sometimes it's like
she'll do the invoice and then she gets

a tour or a member asks a question.

And so then like that next step of
setting up the scoops never happens

Cause something else came up.

So these are things that
computers can solve for us.

So we will use them for that.

CJ: Yeah.

I think Stripe payment links now supports
like starting a subscription too.

So you could probably like, well, that
doesn't create an invoice, but well,

maybe it does actually, I don't know.

It should create a subscription
and the subscription should have

an invoice the first time it goes

Colin: Yeah.

CJ: So yeah, you might be able to use
payment links and then like looking.

The billing portal.

Wow.

It's so rusty.

It's so rusty.

All the product names of like are

Colin: And I'm sure so many things
have changed since you've been there.

CJ: Yeah, totally.

Totally.

Colin: Yeah.

I don't think we even use payment links.

Like we, we send an invoice.

And I guess it's probably using a
payment link under the hood and stuff,

but yeah, there's, there's some room
for us to get better at this for sure.

CJ: cool.

And then when you're, when they
finally subscribe, then you

get a webhook notification.

So what's going on with webhooks?

Let's like,

Colin: I'd be curious to hear
what you think is like the

purest form of a webhook.

This actually might be a whole
episode, maybe we just tease

this for next week because we're
already getting a little long here.

But we're having a meeting
internally about webhooks today.

We do not really offer
that many webhooks today.

So that's all I'm going to say there.

But like there is a way to build bots
that use something called interactions,

which are like webhooks today.

So it's just been interesting to
see different people with different

backgrounds, different companies have
very different kind of takes on webhooks.

And my joke was like the, the,
Elrond and Gandalf, like, you

know, 3000 years ago, I was there.

I was there when like I was
there when webhooks were created.

Like, and that's like the funny thing.

And so like, I have this very specific
take on them and I've used them so

much for Stripe and Shopify and built
webhook systems and consume them.

You know, we why am I blanking on Chris,
Chris and I did a webhook talk over at

RailsConf a few years ago on just like
the best practices around consuming them.

And like, it's one thing to omit them,
but it's like a whole thing to consider

how they will be used and consumed.

And, you know, are you requiring that
people go query every time they get one?

You know, there's all
sorts of stuff there.

So maybe we tee that up
and we talk about webhooks.

fyi next week.

And kind of what we, what we
both think, what do we want?

What are, what's our
dream webhook look like?

Is it even webhooks?

Do we like webhooks?

I don't know.

But I had to go check, because I've been
in the webhook Google group since 2010.

And it's mostly defunct now, and like
spammers post in it and stuff, but it was

created when like Jeff Lindsay was trying
to come up with a name for what webhooks

were, and trying to get people to like
agree on what this like, you know, this

notification across HTTP would look like.

And I don't think we've really,
it hasn't really changed too much.

There's like PubSub and PubSubHubbub
and all that stuff out there,

CJ: hmm.

Yeah.

Okay.

Well, we'll save it.

This is yeah, this is your teaser We're
gonna go deep on webhooks next time

Colin: We love

CJ: Yeah, it's me too.

I think Yeah, there's a, been meaning
to write another article to like taking

the workshop that you guys did, and
then just kind of like maybe walking

through it and talking about stuff.

I like to sprinkle on top and things
that we've added at craftwork and at

previous companies that are like kind
of handy to have for working with them.

So yeah, that'd be great.

Great to dig into you

Colin: Are these articles and writing
a part of some new habits for you?

Or is this like revisiting,
revisiting some habits?

CJ: nice.

Man, the transitions today are fire.

You got that?

Colin: This is an unscripted show, CJ.

CJ: It is totally unscripted.

Yeah.

I am rereading atomic habits.

I'm, I think the last couple of times
I've, or like last, yeah, definitely

the last time I went through it, I did
it on like two X speed or something.

I was like, ah, I know all this stuff.

Let me just get a refresher this time.

I'm doing the opposite.

I'm savoring it.

I just, it's just written so well,
you know, you got to like, slow it

down and, and just take little nibbles

Colin: You're going at half speed.

CJ: I'm going, yeah, 1.

0 is my half speed.

And yeah, just the stories and trying to,
trying to really, really absorb everything

and all the, like, there's so many
different frameworks and there's only a

handful of things that I really remember.

So I want to, I want to walk away this
time feeling like I've got, you know,

five different frameworks that are easy.

To just pull out of the back
pocket at any time and apply.

So yeah, going through it slowly.

The, the writing is not necessarily
part of the atomic habits stuff, but

I think there are just a handful of
things I've wanted to make content

about and I've been slacking.

So they're finally bubbling
up to the surface and making

their way out onto the page.

So,

Colin: Yeah, I've been trying to pick up
more writing just because I am feeling

like I have way too much going on in
my head all the time and it needs to

be just put out on paper so that it
doesn't, like, Chanel doesn't want to

necessarily hear about it all the time.

CJ: yeah.

Colin: So it's like, maybe,
and then this helps, right?

Us talking about these
things always helps.

It'd be my, my kind of venting
time about some things, but I'm

wanting to get into obsidian more
just because I need some structure.

Like I write, like right now I
have 10 text mate files open where

I just have different notes and
like each one is a different.

like context.

So like one's work stuff,
one's collective stuff, one's

personal stuff, one's reminders.

But then when I do long form writing
and stuff that will eventually become

either my own personal stuff or like
when I'm doing revamps of like discord

docs, obsidian is already in Markdown.

So like it makes a lot of sense
to have like this like scratch

pad that I can keep that's not.

a folder of a hundred
different Markdown files.

So I have not dipped my toe
in the obsidian world at all.

There's like YouTube videos on how
to build second brains and all, and

that's not what I'm trying to do.

It's just, I just need to have like, I
can pick up where I left off yesterday

and not have to go searching for which
Markdown file I was in yesterday.

CJ: right.

Yeah.

It's it's definitely one of those things
where I have a lot of work stuff in

linear tickets and in, in linear tasks,
but everything else about my life is

just in my head and it gets exhausting.

There's just like so many
things to keep track of.

And

Colin: got to build that system, right?

The atomic

CJ: exactly.

Yeah.

We fall to our yeah, we fall
to the level of our systems.

Exactly.

Colin: yeah, I mean like we just
started, I guess we've been doing it

for a few months, but like a shared
Google calendar, Chanel and I, and

I'm sure we'll end up with I guess
that we can leave this here with that

we're moving into a place together.

So we're like kind of creating the
operating system of like bills that

have to be paid and Calendars and
like I'm used to doing all that by

myself So what does it look like to
have that with another person and

CJ: Mm hmm.

Mm hmm.

Colin: you know

CJ: Ooh, yeah.

Shared calendar.

Next thing, you know,

Colin: It's it's in there now

We know we know we're
doing this weekend so

CJ: Very cool.

Yeah.

I, it sounds like your new place is
going to be super dope and you'll

be close to trail running and

Colin: little refresh on life

CJ: congratulations from
me and all the users.

Colin: you.

CJ: I mean, all the

Colin: All the users.

That's very, that's very Tron.

CJ: Yeah.

Yeah.

Very

Colin: Cool.

Well, good to chat this week.

Where can we find all the
notes for all the things?

CJ: Yeah.

Head over to buildandlearn.

dev and we'll have links to
all the resources we talked

about in the show notes.

And yeah, we'll see you next

Colin: Adios.

CJ: Bye friends.