· 41:42
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.
I.
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.
Yeah.
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.
Okay.
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.
out.
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.
So,
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.
So
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.
Yeah.
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.
So,
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.
They.
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.
Yes.
Like talk about accent wall, right?
Like if your, if your wall is like
just a glitter, a giant glitter wall.
But
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.
Exactly.
Exactly.
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.
So
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?
I.
CJ: I think that we obviously want to.
Optimize.
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.
Yeah.
Payments.
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.
Yeah.
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.
Yeah.
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.
Yeah,
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.
I.
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.
Right.
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.
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?
Yeah.
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.
But
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.
So,
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.
Yeah.
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.
Yeah.
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.
Yeah.
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.
And
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.
Yeah.
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.
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.
This
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.
Right.
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.
So
CJ: nice.
Okay.
Very cool.
Awesome.
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.
So
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 learn.dev.
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.
Listen to Build and Learn using one of many popular podcasting apps or directories.