Role Reversal & Summer Catchup

Show Notes

Welcome back after the summer break! CJ and Colin get caught up after a summer of adventure and... new job announcements!
  • CJ update 
    • Tahoe Time / Family Time
    • E-Bike with Dad
    • Boat / Plane flight simulator
  • Colin update 
    • Spending time on the coworking space
    • Summer camping
  • Role reversals and announcement 
    • We have new jobs!
    • Context switching 
      • Colin: product & engineering → developer relations
      • CJ: developer relations → product & engineering
    • Fewer guard rails, much less narrow focus, wearing more hats, more autonomy, freedom and responsibility
    • CJ is now at Craftwerk
      • NextJS
      • T3 stack
      • MySQL with Planetscale
      • Drizzle ORM
      • Zod schema validation
      • Back office/Admin CRUD app in Rails
    • Colin is now at Discord
      • Currently onboarding and learning
      • Building a Google Calendar app to get fully up to speed on all the areas of the developer experience
  • Other happenings: RailsWorld is happening later this year in Amsterdam
    • Tickets sold out in 45 minutes
    • Speakers announced this week
  • Must download calendar app for MacOS folks: Fantastical

Full Transcripts
Colin: Welcome to Build and Learn.

My name is Colin.

CJ: And I'm CJ and I hope
you all enjoyed that little

summer break that we just took.

I know that I definitely needed
it and got a lot of traveling in.

Colin, tell us what you did
over, over this several weeks

where we weren't recording.

Colin: I think it was just good to
take a step back from the show and,

and not worry about where each of us
were how our schedules would line up.

And I got a little bit
of summer camping in.


Had a birthday recently, so
we tried to organize that.

It's, it's pretty difficult to get like
lots of adults to all show up to the same

place at the same time these days 'cause
everyone's got their own things going on.

But we were able to get some
people to come out to the lake.

And so just trying to schedule as many
of those, whether it's like weekends

or long weekends where I can find them.

It doesn't necessarily have to be
camping, but trying to get away from

the computer as much as I can while
the weather is awesome outside.

How about you?

CJ: Similar.


We had I think it was maybe like two-ish
weeks in Kings Beach in North Lake Tahoe,

and then we had two-ish weeks in Reno.

And similarly we had, there was like a
couple events where some of our adult

friends got together, but it was mostly
just like different groups of family

coming in and out and lots of different
trying to build those core memories

for the kids and have experiences
and go on hikes and beach days and.

We had some really cool, fun, fun things.

My my aunt and uncle took us out
on the, on their boat on the lake,

and so we got like a nice boat day.

It was kinda like breaking in the boat
and the water at that time, this was

early June, the water was still like, you
know, low sixties, so it was frigid and

you didn't actually want to get in and
you're wearing, I guess, sweatshirt on

the boat, but it was still tons of fun.

And then

Colin: A sweatshirt in the water too.

CJ: Yeah, I did jump in.

I was like, I can't go you know, out
on the lake and not go in the water.

Like I don't know.

So that was fun.

And then my uncle has a plane and
they he has to like redo these.

Sort of like certificate points or
something, or like certain training

that you have to do every six months.

I think you have to do a certain amount
of training under different conditions

basically to make sure that you're staying
fresh with like your instrument ratings.

And so usually you do that with
a flight simulator and there

is one at the Truckee Airport.

And so Logan My son Logan, who's like
super into airplanes right now, was

it was kinda like a surprise for him.

Like, let's go check out the
flight simulator and like,

practice flying or whatever.

And so he got to like do
takeoff and landing and fly

around in the flight simulator.

So that was like a really, really
fun highlight of, of the trip.

And then yeah, my dad, I, I don't
know, like if you see these around

town or like what your opinion is
of e-bikes, but like New Hampshire,

I wasn't seeing them like anywhere.

We get to North Lake Tahoe in Reno
and there's just people ripping all

over the place on these e-bikes.

And so my dad has just
been, he's been commuting.

He has like one of those like super beefy
whatever, e-bikes, and he commutes back

and forth I don't know, 15, 20 miles.

And so I got to like, Try out
a bunch of e-bikes, but do you

have, do you have an e-bike?

Like are you part of this e-bike gang?

You are.

Oh, man.


Colin: Yeah, I have a, I have a wing bike,
which is, it's kind of, looks more like

a city bike, but it's, it's electric.

And then actually just got
my girlfriend one too, 'cause

she likes the idea of going.

Out on the bikes, but she usually
likes to, once we hit some hills

or we go like a longer distance
than like somewhere I want to go.

It's nice to have the motor.

But yeah, I mean I see like you can
hear that little worrying noise and

you turn and look and someone's just
like bombing down the hill, which

I love to see that over more cars.

We've been having a lot of Like
car traffic accident issues outside

of the coworking space lately.

We're trying to get the road and like
intersection redone by the city, but

we're doing that whole navigation
of like, who do you talk to at

the city to, to get this changed?

Because this is just like, You know, we
have to find enough data to prove that

there's like an inordinate amount, number
of accidents that are happening there,

and that it's a pedestrian safety problem.

But you know, more
bikes, even the e-bikes.

I mean, I think the e-bikes
get a little bit of a bad rap

when they're e mountain bikes.

On trails because you've got hikers
and other cyclists, and then you

have some e-bike come through and
just, you know, running into people.

Usually with mountain bikes,
it's, it can be based on your

heart rate, which is kind of cool.

So like, when you're going up a hill,
if your heart rate goes over a certain

threshold, it'll kick in the assist
and then it'll bring it back down.

Well, as your heart rate goes
back down, which is pretty cool.

CJ: That is awesome.

I had no idea.

I thought it was just kind of
like the ones that I've ridden.

It's either like thumb throttle,
like, okay, if you want more cyst,

you just thumb the throttle or
like the harder you're pedaling

the faster it'll like assist you.

Then I, the one my mom has
is like, there's like three

settings and they're hilarious.

They're like snail turtle and they're
like super turbo boost or something like

Colin: The rabbit.

CJ: Yeah, exactly.

I'm like, whoa.

We're going super turbo mode right now.

And it's just, you know, this like old
school kind of beach cruiser that happens

to have like electric assist on it.

And then, yeah, I got to, so I went
to Charlotte for my first sort of

time in person at HQ to see the team
and one of my coworkers there Omar,

he has the super 73 bikes, which
are like, it's, they're so sweet.

It's basically a motorcycle, like
it is, like you can unlock it or

you can do like something on your
phone that basically changes it from

like a class two to a class three.

Bike or something, and you have to
say like, yes, I'm not, I'm on private

roads and this is, you know, I'm,
you know, being safe or whatever.

And then it I think it goes
up to like 50 miles an hour

or something just ridiculous.

Which it definitely

Colin: much battery as
you have at least, right?

It's like how long can you do that for?

CJ: Yes, yes.

So anyways, it's, it was like a, it
was a super fun start to the summer,

just like getting into all that.

But where did you go camping?

Colin: Yeah, we just went to the, for
like the National Forest above Reno.

Trying to find, I mean, right now,
I don't know if you've seen this or

anyone listening has seen this, but
like, And it hasn't slowed down.

Once Covid happened, everyone kind of
went outside, like everyone bought RVs and

tents and camping stuff, and everyone, you
know, we couldn't go on regular vacations

and stuff, so people went to Airbnbs and
they went camping and it hasn't stopped.

Like every campground is still just.


And so I found this one, it's like
two hours away, which I think is like

just outside of most people's, like
willingness to drive for camping.

And so there was like nobody
there, like we could pick

whichever campsite we wanted.

We could, you know, re-up, we were
supposed to go this weekend, but then

I realized it's just like two back
to back weekends was gonna be a lot.

But you know, we've talked about it
on the show as much time as we spend

sitting in front of these little screens.

I'm just trying to like, make a
conscious effort to when I go home,

not then sit in front of, you know,
more gaming and more screen time.

Even if I want to.

It's like, okay, you get to do that maybe
later after you go ride on the E-bikes or

go run a run or do something like that.

And actually back to your flight
sim thing, there's the, I'll have to

share some videos, but there's this
YouTube couple who has a helicopter

and I'm like so obsessed with it and.

I started looking into it and they
actually did some rundown videos on

like what it costs to own a helicopter.

And it is pretty insane to the point
where I was like, maybe I can just

find like a really sweet, like PC with
Microsoft Flight simulator and like get

some of the flight SIM stuff and just
like, 'cause I, I like the idea of it.

I don't know if I would enjoy
owning my own or having like a.

I think a lot of people with airplanes
and, you know, things like this, they

have like a co-op of people that they
own it with so that you share the

costs and the hanger time and all that.

I, or I'll just keep
watching them on YouTube.

I'm not sure, but

CJ: Yeah, I think it.

Colin: sim is the answer there.

CJ: Yeah, I have a, a couple friends
who do the flight sim thing, and some

of them have just like the full on setup
where you're in the chair and you've

got the yolk and you have the pedals and
you have like the whole thing at their

house, which it seems like super intense.

Colin: Way cheaper than
a helicopter though.

CJ: yes, yes, way cheaper
than an actual helicopter.

But the other thing I was looking at,
like entry level Cessna airplanes.

That are surprisingly affordable.

Like I just imagine this was something
that was, you know, completely impossible

and way out of a price range that would
ever be, you know, something that a

normal family like ours could afford.

And, well, I mean, whatever.

We're, we're very privileged and we, when
I saw the numbers that were less than 100

k to get into, like, you know, something.

I was like, what this is, that's how
much it costs to like buy it and then

obviously there's like a bunch of fees
after that, like hangar and like fuel

and maintenance and Yeah, exactly.

Like you have to get it checked
out all the time 'cause you don't

want any issues to ever happen.

So obviously like the maintenance
is way higher, but yeah, I never

looked into helicopters though,
like that sounds way more expensive.

Just 'cause it's so much more specialized.

Colin: I think it's, it's more expensive
and more dangerous is the other thing.

Like doing the sim is obviously not
dangerous and I would imagine that

this is where like VR was supposed
to be supposed to shine, right?

Like Flight Sims having
be able to like replicate.

A full cockpit without
having to buy all the stuff.

Seems like a cool thing, but then
you still want to have like the

actual physical controls and stuff.

So we'll see.

It's still just like a fascination.

I don't know if I'll, I'll
go down the flight sim rabbit

hole or not, but we'll see.

I'll keep everyone
posted on the helicopter.

CJ: Sweet.

Yeah, my so The kids
were gifted a gaming pc.

They're like Master Manifesters.

I don't know how they do this,
but they're like, we wanna switch.

We wanna switch.

They were like super hyper-focused
on getting a Nintendo switch.

Nicole and I were like, you're not
getting a switch until you, you know,

earn enough money from businesses
that you create to generate.

And they were like, we're
going a different way.

And they just like, were gifted a switch.

And then same thing with this gaming pc.

Like they were researching all these
different tools and components and

whatever, and we get to Reno and My
cousin's boyfriend is like, Hey, I have

this gaming PC just like laying around.

Do you want it?

And we're like, what the heck?

And so it has like, you know, super
legit components and everything.

It's got 30, 80 t i and like all of this
like really cool, fancy l e d, like, you

know, 64 gigs of ram, like all this stuff.

And so we wanna do flight sim on
that, but yeah, I think the lesson

is like, yeah, totally, totally.


Colin: I don't even know.

I haven't caught up.

Like I've been a Mac person for a while.

I used, I got my start in PCs, used to
build my own, knew all the components.

I have no idea what anything is
these days, like video card names.

And I know NVIDIA's doing quite well
right now with AI stuff, but like,

Everyone's just like, just throw a
bunch of numbers and letters out, and

I assume it's a video card of some kind
these days, but I mean, some of those

like fit in a briefcase these days.

They're like, you

CJ: Yes,

Colin: like at least a foot wide.

CJ: I know.

Well, they're like,
oh, you need a SAG bar?

And it's like, oh, you need a SAG
bar, because your, your graphics

card is like bigger than anything
inside of your case, like, yeah.

Colin: And then you gotta
have enough power and yeah.

Good, good.

Space heater for the office when it's
running in the winter, but, so it sounds

like we've got up to a bunch of stuff.

I think the other big news is that both
of us in the time, right before our

little summer break We have new jobs.

New jobs, and in a really funny twist,
we both have kind of like switched roles.


CJ: freaky Friday.

Colin: CJ's now doing my job and, you
know, we're not, we didn't take each

other's jobs, but so I moved from.

more like product and engineering
role and a startup to working

in developer relations.

So now I am working at Discord
helping out on kind of the apps

and bots sides of the house.

So anyone who's building
stuff on top of Discord.

So starting to work with the team there
to build out our developer relations arm.

CJ: Awesome, awesome.


I am now doing product and
engineering work at a company called

Craft Work, very small startup.

So yeah, that's like another freaky
Friday thing where like Colin went

from small startup to big company and I
went from big company to small startup.

And so yeah, I was like the first
engineering hire other than the

C T O and we're building out.

A bunch of back office tools and
products for home services companies.

So it is very different.

We are both just like yeah, completely in
new, new ponds, which is, which is cool.

Colin: Yeah, I already find
myself wanting Kraft work in Reno.

So do you wanna tell
everyone what Kraftwerk does?

CJ: Yeah, so craft work, right
now we are doing interior,

exterior, and cabinetry painting.

We're bringing a lot of
technology to solve home services.

Like if you.

Right now, if you own a home or you're
trying to get some work done on your

house, you know how painful it is
to try to find someone to come out.

And oftentimes they're gonna come
out and give you a quote, and then

maybe you hear back from them a few
days later with the actual quote

after they come to your house.

And then just the, the whole
process is pretty arduous.

A lot of it happens over text
message and paper and checks.

And so we're trying to bring that
into, The modern day with amazing

automations and tools and being
able to request an estimate.

Based on just photos of your house.

And so we've got some really interesting
stuff in the works there, but also just

kind of having having an experience
that you would expect in the modern,

you know, with all the things, the
conveniences of the modern society

that we have with DoorDash and Uber and
Airbnb where you can just kind of book

stuff online and then have you know, a
trusted person, show up to your house,

do the work in a high quality way, and
then You're, you're off to the races.

So that's the goal.

We are growing wicked fast.

See that Wicked?

That's like New England creeping into my,
creeping into my, into my vocab there.

We're growing wicked fast.

We got into Y Combinator,
which is pretty interesting.

As a home services company, we
are not like, you know, a SaaS

product and we're not some sort of
like AI tool or payments platform.

So it was kind of interesting.

That we, yeah.

So that, that, but that's been a, a,
a really awesome sort of experience

is we're able to network with other
companies and kind of figure out

how we can work together with the
other folks that are in the batch.

And then also just learn from the
all the advisors about how we can

continue to grow this successfully.


Colin: That's awesome.

Yeah, I mean I actually forgot to
mention my we, we've been focusing

a lot on our coworking space too.

This summer, and one of the things
that we had was that like we got

tagged by graffiti like years ago.

And it has been such a pain just
to like, I'm like, I'll just paint

it myself and then time goes by
and I just haven't done it myself.

And so I'm like, now I want
to have someone come out.

And it is so challenging to
get somebody to come out.

And I don't blame the, like the folks who.

Can get it done.

Like I can do the job, it's
probably not gonna be done.

As well as like a professional painter.

There's so many things in that
world that you can go deep on that

like make it a really good job, but
it's not necessarily like they're,

they're really good painters.


Also have to run a business,
which they don't necessarily

have the time or desire to do.

So having that service like this that
allows them to just focus on doing like

amazing painting and is, is awesome.

I love that.

And yeah, if you've had to try to find
a contractor to do almost anything

right now, it's, it's challenging.

So I love the idea of like
this marketplace for it.

And in a way it's like this move
from like, there's like a bundling

and unbundling that happens
where things like Angie's List.

Is like, here's a whole bunch of
people who could paint your house.

Good luck contacting all of
them and figuring out who's

gonna actually paint your house.

CJ: Yeah, we're kind of
the opposite of that.

Like all of the, the crew and the
paint leads and the operations

manager, all the painters, they
all like work for craft work.

And we kind of everyone
goes to the same training.

A lot of people have 15,
20 years of experience.

If you go on Instagram
too, like some of the.

Jobs are not just typical, you know,
come into my house and paint my walls

or you know, paint the deck or whatever.

There's some really, really awesome, like
high gloss, just these mind blowing Yeah.

Jobs where like, oh my gosh, it looks
like the ceiling of this dining room

looks like a pool, like a swimming pool.

It's like this super high gloss,
like light blue color that

just is sort of mind blowing.

So If you're interested in kind
of some of the, the more fun

advance, also like people order
some really interesting stuff.

There was there's a, I guess this
trend of people wanting glitter walls.

I dunno if you've heard of this,
where like the wall has like, it's

like painted and then like covered
in glitter and it kind of looks

like almost like an ocean wave.

And then I don't know how it like
actually is done or like if they lacquer

over the top or whatever, but like

Colin: this gonna be our, is this gonna
be our thing where like there was the,

the whole trend of millennials and stuff
like pulling up carpet to find wood

floor and like Gen Z or whoever comes
after Gen Z are gonna be like, oh my

god, grandpa had like a glitter wall

CJ: Yeah.

Colin: we have to paint over.

CJ: Yes.


Like talk about accent wall, right?

Like if your, if your wall is like
just a glitter, a giant glitter wall.


Colin: So you're building, you're building
stuff to support and make all that happen.

CJ: Yeah, so we're building out we
have a next jss front end that is

like used for the marketing site.

It's pretty cool.

It uses the T three
stack, which is A T R P C.

It's a turbo repo.

And we are using planet scale
with MySQL and TypeScript.

And so like just learning a bunch
about TypeScript, I hadn't used

it really like deeply or properly.

We're using the drizzle o r M, which
is a little bit off the beaten path

in terms of like, it's not prisma
basically, I mean, By off the beaten

path, I just mean it's not Brisbane.

So that was kind of
interesting to, to get into.

We're using Zod, which has
been kind of cool to learn.

These were all things that were,
seemed like buzzwords that I would

hear on Syntax fm, you know, WEBO
and Scott Delinsky are talking about.

And then like finally getting to play
with them myself and be like, oh, whoa,

that is really cool to have your front
end validation and your backend validation

or sharing the same sort of types and
schemas and error messages and things.

And then I s not convinced.

Well, maybe convinced.

I don't know.

I, I, like, I feel very,
very productive with Rails.

And so there was this major CRUD app
that we needed to build for all the

operations stuff and like managing
different projects and handling

communications and payments and all this.

And I was like, this is gonna be a
huge undertaking to build it all from

scratch without like, The high speed,
high productive benefits from something

like Rails or Django or Laravel.

And so I was like, please, can
we use, please, please, please.

Can we use Rails?

And so,

Colin: in, in your hands, right?

It's like you've used it for so long, so
like, sure, you could do it in these other

stacks, but it's not customer facing.

It's, I.

Something that you want to be, you
want it done yesterday, so that makes

CJ: Yeah.

So we've just been like, over the
last, I would say like six weeks,

just hammering on building out
a ton of stuff in that backend.

What's cool too is that like with
Rails, it's so easy to expose the APIs

with J ss o n, and then we're just
consuming those from the next JSS side.

So like the few thing Yeah.

Or vice versa.



So We are tending to move stuff out
of next jss and into rails like for

the data management just because
it makes more sense for us, but

like the next JSS front end for
when you go and submit an estimate.

It's this beautiful customer experience
that's like really finely tuned and.

Tested and we've got like all this stuff
set up to really like make sure that the

customers are having the best experience
and that's all backed by like j ss o

n that's being fed from the Rails app.


Colin: Is there any like discussion
or, or like concern about having

too many languages or too many
technologies and things like that?

Like, like when hiring
happens in the future?


CJ: I think that we obviously want to.


It's, it's a, it's a tricky balance
'cause you want to sort of optimize

for productivity, but you also wanna
optimize for having enough candidates

like, you know, job candidates who
might be in the pipeline that will

know the stuff you're working on.

So I think right now looking at
the, I think it's rails, devs.

Colin: Yeah.

CJ: The Rails dev site.

There's like plenty of rails
developers that are on the market.

And then I don't know.

I, I think like when I'm using Rails
and being productive with Rails, I

feel like there's, it's a, it's hard
to make the argument, you know, that

we should use something else and move
slower just so that we can hire people

who might know that thing later.

Colin: It's funny that you say slower too.

'cause Well, it's like the idea of like,
more like, would you be looking for

a Rails developer who also knows next
and all this like T three stuff, which

probably, I'm sure they're out there.

Like you've, you've been learning it,
but it's, it makes it look like that

unicorn, you know, tech ninja, the job,
you know, stereotypical job posting

where you have to know all these things
to get a job here and, and it, it

sounds like you guys could easily have.

Some Rails engineers, some T
three engineers, things like that.

I mean, this is also kind of on our
agenda, but like the, the success of

selling tickets at Rails Worlds will speak
to the fact that Rails, as we've said

many times on the show, rails is not dead.

And I think tickets for Rails Worlds
sold out in 45 minutes which is.

Pretty awesome and great to see that
like more, more conferences in the

rail space is just gonna help you
know, when you guys are ready to

find, you know, and grow the team.

CJ: Yeah, totally.

And there's so many, so we, we
started with Jumpstart Pro, which

is Chris Oliver's like starter kit.

And then we've, every time I turn
around there's like, oh, we need this

feature, or we need that feature.

And it's just like, oh yeah, we just
drop in a gem, configure it like

this, and we're off to the races.

Whether that's auditing.

Calendaring Notifications.



Like all of this stuff.

There's so many well baked libraries
in the Rails ecosystem that

like, it's pretty easy to trust.

Like as long as you kind of like
do your due diligence about which

specific one you're gonna use, like
you can pretty much trust something.

So yeah.

What's the tech stack
like over at Discord?

Colin: Yeah, it's it's pretty interesting,
like internally we actually use quite

a few languages, but externally,
like in the developer relations role,

developers can build bots in any language.

So, Something that we've kind of
talked about before with like,

we, you know, we talked about how
Stripe made their SDKs and things.

All of our SDKs are our third party.

And we have no fewer than 10.

Like, I don't know what's, I'm still
sorting through, like, I'm very new at

this job, so I'm like kind of getting
the sense of the, the lay of the

land and what has been done before.

The person I work with has been doing
DeVere by themselves with the engineers.

So like, the engineers have been wearing
multiple hats and they've been doing

a great job with like the resources
that they had, but it's like, there's

like, you know, two rust libraries.

There's a few Python
ones, there's a ruby one.

There's a, there's like a
Julia and a Lua library.

So there's all these SDKs
that developers can build.

A bot, an app.

In any of those languages.

And the thing that I've been
getting doing more of is more like

CloudFlare workers or Google app
what was it like Google Cloud Run?

So being able to kind of this like
Lambda style type of hosting where

you don't have to worry about
running VMs and things like that.

So you could build a bot and then
deploy it in JavaScript or Ruby.

In Lambdas with like a p i gateway, or
you can do that with, you know, whichever

server stack you're, you're doing.

And traditionally, a lot of
people use the Discord gateway.

So like the, the job is a little bit
interesting that we have rest APIs,

but most of the developers are using
like a web socket gateway to actually

receive messages on, on a connection
that you have to like, keep alive

and you have to keep listening to it.

And so just navigating all of that, so I'm
working on a Google Calendar bot for like,

that sits in your discord and tells you
when you have a meeting and all of that.

So very similar to the one that if you've
ever used the Google Calendar Slack app.

So this one's kind of like my own little
pet side project, just to like get my

head around all of the things that we
offer and all of the challenges that

developers run into so that I can then go
back to the team and say like, this is.

Either not possible or it's not
well documented, in which case then

I'll be writing new docs for that.

So yeah, it's going well.

CJ: Nice.

For the, like the libraries
that are out there.

Do you have a sense of the usage?

Like is it like the node
one is used 50% more

Colin: Discord, JSS is
the most used based on, I.

I think we, I mean even just based
on like GitHub stars, I think it's

the most I don't know about actual,
like requests, but I get the sense

that like most of our apps, like, or
like apps when it's bots or apps are.

Python and JavaScript.

So like, there's definitely a long
tail of people running like Lua,

crystal, all those other languages.

But but you can do it.

I'm sure you could somehow probably do
an app in R if you really wanted to.

CJ: totally.


So at Stripe we there was this feature
inside of The s the official SDKs.

And then there was, there's like a,
a thing that we exposed where people

could set app info, which was basically
like a little bit of information about

where the request was coming from.

And we kind of just appended
that to a user agent string.

And so the idea was like, oh, if
you're using version X of a, of a

library that is an official Stripe
library, we can track and see like, oh,

this is how many requests are coming
from each different version of each

specific library that we maintained.

And then we encouraged the third parties
to add that because if we saw that there

was a community owned library that was.

Just had like outsized usage, like
then we would have an incentive to go

and sponsor them with GitHub sponsors.

And so we could figure out like, oh,
which community library, you know, is

doing the most volume and like, how
can we help them be more successful?

And so oftentimes we would try
to like give them access to.

Betas early.

We would also try to like give them heads
up for stuff because we knew the usage.

And I think that's like, it's kind of
tricky especially 'cause I think there's

some communities that are probably
more likely to star in GitHub, right?

Than other communities.

They might just like, oh, I'm
gonna like download the thing.

But like, it's hard to know like, how
much is this thing actually being used

And also like some languages, Just like
the, the workflow for some languages

make it look like, oh, that library
has been downloaded a bajillion times.

But really it's just because like, okay.


It's being downloaded on your
local machine every time you

start the server or something.

Or maybe it's being
downloaded your machine and

Colin: It's like in the CI step.


CJ: exactly.

So like maybe it's not actually being
downloaded that many times or, you

Colin: N p m and n p m usage in
Stars is definitely not like that

good of a, a signal, but like I
star stuff to remember it later.

I don't necessarily do it because
I'm using it, so I, I've been like

using the GitHub has like folders
now for stars, which is nice.

So I've got like my Discord
stars and my open a p I Stars

and all these different things,

CJ: That's cool.

What is the, what was it like to
integrate with a calendar like

Google Calendar AI or a p i?

I've never like played with that one yet.


Colin: Yeah, it's been good.

Like this is where I was like,
I think running into OAuth

is always the, the, the pain.

But now I can do, like, I'm
just replicating exactly the

commands that the Slack one has.

So like, you'll be able to do like
slash gal today and it'll show you

all the things that you have today.

Because it's calendars, I
still haven't sat through like.

What hap like I don't actually know
if Discord gives me your time zone

or not, so I might need to have like
a setting that you get to define

your time zone so that I can always
keep everything in your time zone.

But like u t C wise, it's easy
to say like, these are the next

things coming up in your day.


It's just a point in time.

So there is a little bit of the
like cool working with calendars.

The most complicated thing is that
the Slack one will tell you like two

minutes before your meeting and you
cannot subscribe to events on that.

You have to do that yourself.

So if I know that you have 10 meetings
today, which sounds awful to have

10 meetings, but let's say, let's
say you have four meetings today.

One of them changes.

I don't want to just schedule four
like CR jobs or four scheduled events.

I need to also be monitor.

I do get a notification from
Google anytime the event changes.

So if it's been canceled, it's
been moved, it's been whatever.

So I would have to like constantly
keep a list of scheduled alerts that

are like scheduled jobs, but then.

S so I'm still figuring out like what's
the most efficient way to do that.

It's like, is it really efficient to
check every minute to see if there's

an event that's happening in two
minutes, or schedule them and then

Unschedule reschedule, push them around.

So I'm trying to figure that out in a way
too where, like if we're using Redis or

something, like if your Redis dies, do you
lose all your schedules and, and things

CJ: Mm.


Yeah, because you wanna persist.

I, yeah.

I think when we, we ran into a similar
problem with at my vr when we were

trying to manage events related to, I.

A booking, like, oh, the cus like the
guest is gonna check in on the first and

they're gonna check out on the third.

But you wanna schedule like a
message that's like 48 hours before.

It's like the welcome message with
your, this is the door code and

the wifi password and whatever.

And then you want to schedule
a message like after that's

like, give me five stars.

And then everywhere in between, right?

Like you might want to have something
happen five days before and 1 24 hours

after check-in and, you know, 24 hours
before checkout, you wanna remind

them, like do the dishes or whatever.

And so I definitely remember this whole
thing of like, what happens when the

event changes and what happens when
like yeah, it's fired at a different.

A different time or whatever.

And so we're actually, I mean,
that's like a, a problem that we need

to solve at Craftwork too, right?


Like, you know, before we go to a
project, we wanna send someone in a

prep email that's like, oh, here's a
bunch of stuff that you'll probably

want to move out or cover or whatever,
so that we can get in and, and paint.

And like also at the end, you
know, Hey, please give us a.

If you, if you enjoyed it, like
we, we'd appreciated a review or,

you know, here's some before and
after photos of your job, like so.

Colin: for some of them I've seen like
the job, let's just say it did move.

You still keep the scheduled job
and the job itself checks to see

if the job is still valid or not.

And so instead of un.

Maintaining a list of all your job
IDs and when they're supposed to

go off, you can just fire them all.

But if they're no longer
valid in the window that you

want, They just end, right.

They don't do the step that they need.

So yeah, it sounds like you're
gonna be doing lots of like

business process logic stuff, right?

Where it's, you know, if, when
this thing, when this step is

done, we have these other steps.

What's the next step?

What happens if a step is canceled
or, you know, there's a lot of state

going on there, which is interesting.

Some stuff that we ran
into at Penny Drop too.

CJ: Yes.

Yeah, totally.

I think the way that we solved
it at my vr, if I remember

correctly, was we literally just
had a job that ran every minute.

And so every single minute we would
do a query that's like, is anything

supposed to go out right now?

And then if so, then we would fan out and
schedule those things to be delivered.

And most of the time it was no,
it was like, no, no, no, no, no.

And then every so often we'd have a cash
hit that was like, oh yeah, actually

you're supposed to send this guest email.


Colin: Well, in 99% of events and
calendars start at the hour, the

half hour, and the 15 minute mark.

So you'd obviously still wanna
check all the minutes in between.

For me, with a p I
limits, it's like, do you.

Constantly just maintain a list of all
the events that a person has today,

or do you go every minute and check
Google, which then you'll run into

a p i quota problems pretty quickly.


CJ: Yeah.

I think the idea on your end of like,
oh, I'm gonna keep just the database

of the events and then use webhooks
to keep updating that, and then

Colin: chron every minute.

CJ: exactly.

Chron every minute, see if one is due to
notify or whatever, and then fire it off.


I don't know.

It's fun.

It's like a fun little fun little problem.

What are you, what are
you building it with?

Colin: I'm doing it in JavaScript.


CJ: Okay.

Very cool.

Colin: So I'm hoping to move
it to TypeScript to also get

familiar with TypeScript.

We use TypeScript for a lot of
stuff, and so I haven't used it in

like other than like sample apps
and small tutorials and things.

So get the types.

CJ: And have you heard of this
company Ingest I N N G E S T?

They do we use them for background jobs
with our next jss app, and they're pretty

pretty new little startup, but they
have like some pretty solid background

jobs, stuff that works pretty nicely.

It like calls back to your
functions that are in next jss.

Colin: Wow, this is like.

Everything but it's new is old
or whatever that phrase is.


This, this is cool in jest, we'll
put this in the show notes, but Yeah.

We used to use a company I worked
at a long time ago, we used to

use iron io or iron workers,

and it sounds very similar, very like.

You fire off, you know, your, your
scheduled job and they take care

of making sure that it ran and
you don't have to take care of it.

Thankfully, there's a lot of this
stuff, you know, everything from CEL

and Lambda and you gotta go build it
yourself using those, those things.

But the one that I've been
most impressed with is so far

has been the CloudFlare stuff.

'cause I've always thought of
CloudFlare as like, just like, CDNs

and stuff like that, but you can
actually run your workers at the

edge and you get a key value store.

So doing off and storing that
stuff, you know, in, in the key, key

value store has been pretty nice.

But I don't think I wanna
store all the events for a

person in that key value store.

So that's, that's the tricky
thing that I need to figure out is

whether it's Postgres or something
that's gonna be the event store.


CJ: Mm-hmm.

Colin: yeah, it's kind of fun.

The, the interesting thing about this
project is that the most of the work, and

the challenge is not on the discord side.

It's purely on the calendar side.

And I think that's the same for
if you wanted to integrate with

Asana, if you wanted to integrate.

It's like, Once you have the skeleton for
sending and receiving and doing all the

stuff with discord, it's then what does
the thing actually do on the other side?

And that's the calendar, the asana,
the craft work, a p i, whatever it is,

it's like, you know, slash discord.

Send me a, send me out a paint quote.

CJ: Mm-hmm.


Have you, I think, I can't remember
if you were using Linear at, were

you using linear at Orbit or,

Colin: No, we were, what were we using?

JIRA and Notion.

CJ: okay.


I've really liked the workflow
with Linear in Slack where like

someone reports something you do
like slash linear, what's the issue?

And then.

It's like so simple.

Like the modal that pops up is
like really clean and simple and

Colin: to check that out.

CJ: yeah, give it a shot.

It's it's pretty nice.

Colin: Like historically, most of the
apps in Discord are not work apps.


CJ: right?

Yes, yes.

It's like

Colin: is it, and then like,
do you want your linear sending

you a message in Discord?

Or like if your team doesn't
use Slack, then you might.

But yeah, this idea of using discord
for work, I think is, is more new.

So we use Discord at Discord,
so that's why we want this.


And I selfishly I want it 'cause I
have definitely been late to meetings

because I'm used to, like, for years
I would just, Slack would tell me I

have to be somewhere and I would go.

And for some reason Google Calendar,
like local desktop notifications,

I'm just like blind to them, so.

CJ: Yeah.

At Stripe, someone had built like
this I think it was called like Google

Calendar Bar or something like that.

It like, put it in your Apple status bar.

It would show you like, this is the
next event that you have coming up.

And then I think it did do
like push notification, like,

Colin: I have that with Fantastical,
which is really, really cool.

Well, it's, it's the best calendar app.

Also put that in the show notes like

CJ: Yeah,

Colin: it's a paid calendar app,
which is hard to, but it like super

powers when it comes to calendaring.


CJ: nice.


Very cool.


Yeah, I, are you going to
try to go to Rails World or

Colin: So it's sold out.

So I don't have, there's no tickets.

I don't know how much we will be like, as
far as, like, if it was my own personal

thing, I might be able to go next year.

But we'll have to see.

I don't know.

Like we don't, I.

I'm still figuring out
like what conferences do we

go to, how do we do that?

Things like G d C we've been to in the
past, it makes a little bit more sense for

Discord, for game developers and stuff,
building stuff in Discord, but, or like,

we now have Discord on PlayStation and
things like that, but Rails I think is a

little bit of a, like, you wouldn't build
a, a bot or an app probably in Rails.

Maybe it was Sinatra and some
of those other things, but.

I guess you could, you
could do it in Rails still.

It's just do a Rails, a p i app instead.

So we'll see.

I think it, it would be, Fun to go.

I think the speakers were
announced for this year and it's

cool to see who's, who's going.

There's a very strong
37 signals contingent.

Obviously Chris from Go Rails is
speaking, which is awesome to see.

Shout out to Chris.

A bunch of people I met at Rails Comp
this year are also speaking, so have

fun in Amsterdam and curious to hear.

Maybe we'll find somebody who
does go and get them to come

join us on the show afterwards.

CJ: Yeah, totally.

That'd be fun.

I think, I mean, I'm hopeful that
we'll be able to make it to some of

these rails conferences coming up.

That one was like, just
the timing of it was rough.

Colin: Yeah, I think they, it was
also a very small set of tickets, so

like it sold out, which is awesome.

But it was, it's a small
conference on purpose.

It'll be interesting to see
where it moves in the world.

Like I think, I wouldn't be surprised.

We, we still need to get Amanda Perino
on here to talk about it, but I think

they were gonna like go Europe and
then like Australia or something.

CJ: Whoa, that'd be cool.

Colin: I think that would
really affect like attendance.

So I'm sure there's lots of Rails
devs in, in Australia and New

Zealand and things, but we'll see.

CJ: Yeah, totally.

Right on.

I think that's a good spot to wrap it up.


Colin: for, thanks for listening to
our little bit of a rambles and an

update, some job updates, some tech
stacks, and we'll jump into some more.

Just kinda, it sounds like we both have
enough stuff going on that we'll be

able to start sharing updates on our
adventures and CloudFlare workers and

building out rails apps for new startups.

So thanks for tuning in.

CJ: As always, you can hit
over to build and

We'll drop all those links
for things we talked about.

And that's all for this episode.

Thanks so much for listening,
and we'll see you next time.

Colin: See ya.