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.
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.