CJ: Welcome to build and learn.
My name is CJ.
Colin: And I'm Collin, and we're back to catch up.
How's it going, CJ?
CJ: It's pretty good.
We usually record sort of midday, and for me this is a little bit later in
the afternoon, so yeah, starting to wind down for the evening, and since
it's the middle of winter, it is pitch black outside, which is very, a very
common thing in New England apparently.
Colin: Yeah, I love that my camera is daytime, and yours is nighttime.
CJ: Yeah, it looks like, yeah, you look fresh faced and bushy tailed
and ready to rock for the day.
Colin: I do have two very large Elgato
CJ: lights.
Oh, okay.
maybe that's it.
You've got great lighting.
Yeah.
Colin: a little bit.
CJ: Is that window that's in view of your camera?
That's an actual window, right?
Colin: This thing?
CJ: the one on the other side.
Oh, I
Colin: Oh, I see.
yeah, there's a window this way.
CJ: not like a fake, faux light thing.
No, okay,
Colin: Yeah, and this is not going to translate well to podcasting, but
these little things behind me are a project that I haven't finished yet.
we're going to make that door disappear.
CJ: yeah, it looks like maybe some sort of curtains or something, like
Colin: they're actually like sound absorbing, wood panels.
So they're like walnut.
Fronts with sound absorbing on the back.
You, I think you see them in all the desk setups and all the YouTube.
the new YouTube thing these days, but I'm also a sucker for them.
It's very I don't know, Whiskey Room
CJ: I don't know, whiskey room vibes.
Yeah, and it's funny because
Colin: Yeah.
and it's funny because this room when I'm on my work calls, people
are like, what room are you in?
Because there's actually three doors behind me.
And so everyone's we don't even understand why this room could even be
in your house that you have three doors because one goes to an HVAC, one goes
to a patio and one goes to the hallway.
CJ: HVAC, one goes to a patio, and one goes to the hallway.
Roaring and so I put all these giant blankets on the wall on the other side
of the wall that are like absorbing all of that roar And it helped a ton
with just like sound quality But I also fight with the piano which is like
right above me So the kids will be like doing their piano lesson mid meeting
or whatever and yeah, it's interesting
Colin: Yeah.
People like moving blankets because they're wool.
CJ: I
Colin: picked up like a target weighted blanket.
It's like a 50 pound blanket that I have just pinned to this other wall.
a lot, I mean it doesn't look pretty, but it's cheaper than a lot of the
sound treatment stuff out there.
CJ: there.
Yeah, mine are just giant moving blankets.
They're just like two huge moving blankets that are, yeah, tacked up on the wall.
Colin: Yeah.
Cause these things are cool behind me, but they're like, I don't know, 300
for two or two to four of them I think.
And this blanket was like 20 bucks.
So it's easy to spend money in AV stuff for sure.
CJ: West Boss, did like a whole series of videos about how he built out his
office and got very technical about how sound transfers between things
and, buffering, like even the wires in the walls and stuff like that.
It's whoa, that's,
Colin: We should get him on for a show just on that because I think
the three of us have done a lot
CJ: Yeah, just trying to like soundproof things is interesting.
so I posted on Twitter the other day.
one of my sons is in swim team once, once or twice a week.
And the other, my other son is at home, didn't want to do swim team.
And we were trying to figure out like what.
What kind of activity could we do that would be interesting,
engaging, and like enriching for him?
And he loves telling people the news, just like anything that he learns
about that he finds interesting.
He'll just, as soon as he learns it, he has to run around and tell people.
And so I wanted to start teaching him all these different tools for journalism, and
just like how to go and talk to people.
on the internet through podcasting or through video or through blogging.
And so I put together this super short little course on Google
Classroom where there's all of these little assignments for him to go
through and build out a podcast.
And so it's make a title and make a cover art and come up with a description
and come up with an audience and then I followed along with, Descript's
how to start a podcast flow, but then I boiled it down to what would
this mean for a fourth grader?
And what is this what kind of like stuff can we also do with AI?
So really awesome tools out now.
I don't know if you've seen, Google's like music effects labs things.
You can do text to music so you can GPT generate a song basically that they
can like use in his intros or whatever.
So he's generated some intro and outro music and, started
doing some recording today.
So it's been really cool to watch him experiment with that and fun
to just share what I've learned.
Colin: Podcasting is such a good thing for anyone to play with.
Cause you gotta, you get to just play with audio.
You have to think about what you're going to call it.
You get to write a little bit, get to do the description, the graphics.
it's a pretty good project.
CJ: project.
Yeah, it's fun.
once it's up and live, I'll plug it in a future episode so you can go
listen, yeah, I think it'll be about gaming and Pokemon and stuff that he's
interested in, so it should be good.
Colin: I think that's the way
CJ: all podcasts start.
Tell
Colin: this other tweet that you had.
You were looking for, kinda like non technical co founder type
CJ: other tweet that you had.
I found a website called something like dev meets marketer or something
like that, or dev meets sales, where it's At the time it was like, okay,
Cupid for founders where you're do you know, founder dating almost?
And like founder match, or like Tinder for founders.
And I was just curious, like how people are finding co founders because oftentimes
you hear from YC or you hear from venture capitalists that they want to invest in
companies where there's multiple founders.
I'm like, how are people finding who they're working with?
so that was the first layer and the second layer was like, it's the new
year and I've got a million ideas and things that I want to build and, In the
past, a lot of stuff, I try to get it off the ground by myself and I think it
would work much better if there were, someone by my side with complimentary
skills, just like helping hack and promote and, mostly just like marketing
and sales and talking to customers and validating different ideas and telling me
like, that's stupid, don't go down that path or Hey, that's like a good idea.
Or just being a separate, set of eyes and some, Yeah, I don't know.
Some interesting things and conversations fell out of it.
But, one thing that interests me about this process is that
it is very much like dating.
You can't just find someone on the street and say Hey, we
should be like co founders.
Let's go co found something like oftentimes at hackathons, right?
You meet up just like random people and you try to get something off the ground
in the weekend for startup weekend.
But, I think there's a lot of like compatibility and personality
type situations that go into this.
I don't know.
When you did CloudSnap, how many co founders were part of that?
Colin: there was just two of us to start with and at the time I was the non
technical but more technical than most co founders so I kinda took on the CEO role.
And then Chris took the CTO role cause he was definitely more technical than I was.
and that did mean I rarely wrote code.
Like I was reviewing things and doing a lot of prototyping more.
I was more PM going out and talking to customers, trying to make sure
that we had something that people would want to use and then know that
when we build something, someone actually would be there to use it.
versus sometimes people.
go off and build a thing for years without ever showing it to anybody.
and that, that can be really tricky.
I think what you're talking about is being a technical person looking
for a non technical co founder is really interesting because I think
most people in tech have probably had people come to them with ideas.
And that, there's, that happens a lot.
And it's really hard to go through and figure out who's really serious
about it, who's put their own skin in the game, They're not going to have,
I don't necessarily think they should go and try to learn how to code and,
had varying degrees success at that, but they've at least figured out,
they know what their strengths are.
They know what they're lacking.
They know what they bring to the table.
And that might even be like, I have customers ready to go.
If you can help me build this type of thing on the other side of it,
it's okay, we know we can build lots of things as technical folks.
What are those gaps that you're talking about?
And even just like when you're building something, you just don't have time
to also go out and talk to customers.
CJ: Yeah, and I'm not saying that, technical co founders shouldn't
talk to customers necessarily.
I just think that, yeah, that's
Colin: They need
CJ: yeah, really bad at in the beginning.
And, yeah, they absolutely need to.
And.
Going back to just like being a creator in general.
I think oftentimes we're, maybe I'm speaking for myself that I'm like afraid
to launch something or share it widely because I'm not super comfortable with it.
And maybe when you are working with someone else, they can be
like, Oh yeah, that's totally fine.
Just like ship that and let's get some eyeballs on it and start getting feedback.
And maybe they're more comfortable sharing it because it's not like
their own creation, in a way.
And so it gives them a little bit more
Colin: Having that divide helps.
It's like a lot of people don't like to edit their own sounds and their
own audio and podcasts and stuff.
And it's it sounded great.
And you're like, Oh, I can't do this.
but what you're talking about is very true.
Like YC and Techstars and a lot of these folks, they almost always look
for people to have a co founder.
Because their argument is, if you can't even convince one person to
come along on this journey, like, why would we put money into it?
CJ: it?
Colin: but at the same time If you can pull off everything and even better
if you could do it without investment.
I'm becoming more and more of the don't go the VC route.
more of the indie hacker bootstrapped approach but, if you're going to be doing
that then it does help to have someone else who's, the other side of that coin.
with the coworking space it's a little bit different.
But myself and the other owners are a good, push and pull on, I get a little
excited about something and then they bring me back to earth, which can help.
So we want to be pushing forward, but it's always good to have a little
bit of tension on that line so that we don't just fly off into space.
CJ: Yeah.
The other thing that has been on my mind too is just in general, that co-founder
fit, like how do you find someone who has a personality that gels well with yours,
and where you almost kinda have to have Side gig values aligned with a vision
that's aligned for okay, we're going to work on this with, nights and weekends
with no payoff for, maybe even years.
And then once it gets off the ground, maybe we go full time or I don't
know, like, you know what I mean?
Like, and trying to find someone who, yeah, shares those values and also can get
excited about the same things that you're excited about is, yeah, it's interesting.
Colin: Yeah.
There's an episode that we can link to from the Hammerstone.
Dev podcast, and Hammerstone was a team of Aaron Francis, who we've mentioned before.
And, Colleen, I am blanking on her last name right now, but they have chosen
to separate and Colleen's going forward with Hello Query and Aaron's focusing
on the things that he was doing at PlanetScale and some of his other stuff.
And it's a really good conversation because It's them having a good
breakup on a podcast they finally are starting to feel that like
customer fit with their product, but it's not the end of the journey.
It's the very beginning.
that little bit of product market fit means there is going to be months, years
of work to be done, nights, weekends, whatever that looks like, especially
with families and things like that.
And Aaron just kind of like, I.
Can't do that right now.
And it's also very good to be real about that.
Cause sometimes co founders will take their other co founders for a ride
when they aren't being truthful about how much time and space do you have in
your life for these kinds of projects, which is, it's good to be open about.
CJ: about.
There are a lot of really awkward and uncomfortable conversations
that happen at that early stage.
Even After like a startup weekend hackathon, I've had people like, pushing
really hard in certain directions.
I'm like, yo, we just worked on this for 48 hours.
I don't care.
do what you want with it.
Colin: Yeah.
I start off weekend.
Is an interesting one.
I haven't seen those as much lately.
I don't know if they've died off or just gotten less popular, if you win,
I've fallen into it where we won one of the startup weekends and it was
like, okay, we're going to try this.
And we took a little bit of seed money and we did not get very far.
But it's hard because, those, that team was put together on a weekend and they
all happen to be in the same event.
There was a little bit more intent there, rather than
meeting someone at a Starbucks.
but there's a guy who reached out to us, I think it was just through Twitter and
the dev meetup, but he runs remotejobs.
com.
And He's the kind of person or he's like the non technical co founder,
but he's teaching himself how to code.
and he's hacking and doing the, using the templates that are out there,
using the job boards and stuff.
And he's built himself that nomadic, remote, lifestyle that a
lot of people like to talk about.
and I think he's doing that without co founders.
So it really depends on how much space you have.
In your life and all of that because, I could try to make the
awkward segue here of what happens when you take too much money
CJ: and
Colin: grow too big.
CJ: there's really
Colin: there's a really good Silicon Valley, link that we'll put in the
show notes too, but yeah, this week has been a rough week for tech layoffs.
I think especially for companies that grew a lot in 2020, 2021.
this week we've got, what, Twitch, Google, Amazon, Unity, and then, we
just actually had layoffs today at Discord, which I can't talk too much
about, but, by the time this comes out, it'll be almost a month behind us now.
rifts across the board, teams getting smaller, all that kind of stuff.
CJ: that kind of stuff.
Yeah, I thought, the bleeding was over and that teams did
their reset in 2023 and that.
we were going to go into 2024 with nice, healthy organizations,
but totally not the case.
And I don't know, yeah, I don't know what the deal is or how
long this is going to last.
It's a huge bummer, for everyone.
I guess the other, piece of this too is that, like, how much is
AI, impacting these jobs, right?
I also, outside of These sort of like tech specific jobs.
I also saw a bunch of people getting laid off from like movie studios and animation
studios where they're like, yeah, we're not gonna need any animators anymore
We're just gonna use like AI from now on.
It's
Colin: Yeah, this role this week has been pretty content focused.
So a lot of gaming industry, right?
Unity Prime video, some Prime Studios folks So a lot and I think my friend
who runs a lot of things in the tabletop RPG space Has shared that
like it's flowed down where it's like gaming's been hit Tabletop things like
D& D are not as popular or selling out as much as they were before.
You know, there's groups like Critical Role that are doing really well, but kind
of gaming, which I think is interesting.
I don't know if we just gorged ourselves on content during the pandemic and
everyone staffed up because of it, thinking the good times were never
going to end or what the deal is.
and a lot of people are upset that movies aren't doing well in
the box office, but I don't know.
I don't know if those are related whatsoever.
I think it's just been like I'm excited to go see Dune, still in the theaters.
CJ: it seems to like a lot more people are creating content.
we're making this podcast, right?
And there's a ton of people who are making TikTok videos and
YouTube shorts and whatever.
And maybe just the sheer volume of entertainment.
is getting to a point where, the big studios aren't able to keep up as much.
It's almost in the same way that new, newspapers mostly lost all of
the wind beneath their sails when, blogging and articles became popular.
I don't know.
but, yeah, it's a huge bummer for anyone who's losing their job,
Colin: Definitely.
Yeah, if you're looking for something, we got, we'll put some links to some
remote jobs and some tech job links in the show notes, because I've had a lot of
people coming to me asking, what jobs I know about, somehow I've gotten that as
like a reputation as the person to go to when someone's ready for another job, but
CJ: view you as a connector and someone who knows about opportunity.
Yep.
Colin: For
CJ: Yeah.
so Yeah, similarly, or along the same lines, we are hiring at Craftwork
still, so we've got some super promising candidates that we're talking to
this week, but if you are interested in writing TypeScript or Ruby and
Rails and React Native and doing some machine learning stuff, we are, yeah,
we'll likely be hiring at some point when you, when you hear this later,
Colin: Very cool.
What are you, building this
CJ: this week?
Gosh, it's been a really productive week.
I was sick last week and so I felt sluggish and unproductive and this
week has been super productive and I'm, yeah, it feels great.
a lot of it has been API integrations.
One of them is with this company called Deputy, which is a platform that we
use for scheduling and timesheets.
it's how the crew clocks in and out and the automations we're building is
so that we can tell customers which crew members are going to be coming to
their house when the project happens.
And we can also build out like some calendaring and
scheduling tools internally.
So that's been super cool.
we also use a tool called Post Hog, which is for like product analytics.
They actually have a kitchen sink type situation.
They do, yeah, product analytics, they also do a B testing.
They also do like feature flagging and then they separately have almost like a
business intelligence suite where they have like data warehouse type situation.
And, It's, yeah, so an interesting tool and we've been using them for tracking,
like front end marketing analytics and, UTM params and things like that.
And what we're doing now is piping back different project and conversion type
events back into post hogs so that we can measure like the full pipeline and
start to get some proper attribution and figure out, which marketing channels
are working and which aren't and.
yeah, that's been pretty interesting.
So
Colin: Nice.
Yeah, I like Posthog because they've got all the data that you're, like, gonna want
in one place so you can do feature flags,
CJ: rather than
Colin: trying to connect two things together and say, show this to
people who've done this thing.
CJ: Yeah.
It's been, pretty good product so far.
Another thing that's been really interesting as we're researching
business intelligence tools is.
How many have Jupyter Notebook style interfaces now built into them?
I think we looked at hex.
tech and posthog and, Supa or Meta, Metabase and a few others
where it's like, Oh, you can write SQL queries and get back a table.
Or you can write Python to interact with that data that was
just in like the previous cell.
Very cool, interactive business intelligence stuff.
I haven't messed with business, like BI suites since college.
like Microsoft, BI or whatever.
Colin: Those ones are interesting because it's like, everyone needs
one and when you get big enough, you gotta go with the big enterprise one
and there's a bunch of money involved.
I remember.
At Strava, I think we started out using segments and they just quickly
got too big for segment you still got to put that data somewhere.
It doesn't get stored in segment.
And so they were using something called Snowplow, which they self
hosted and it's like an open source, BI tool in that vein of like
customer events and things like that.
All sorts these days.
CJ: totally.
Yeah.
And it's do you want a data warehouse or do you want a visualization thing that
will just let you build dashboards and charts for your existing data sources?
Or do you want, yeah, these notebook tools where you can have data scientists
write all these different queries.
And yeah, it's definitely been a learning curve there.
Yeah,
Colin: Yeah, sending emails every fifth time someone does something,
stuff like that, where it's oh, I don't want to keep track of that.
CJ: yeah.
yeah, it looks like you're working on some, some more Docs stuff.
Colin: Yeah, so I'm stuck in DocsLand.
mostly about things I can't talk about yet, but I can talk
about what I'm trying to do.
we have a thing in, we have our docs in a repo.
And that's all public.
So anyone can contribute to our docs today.
And we have another thing that's in another repo and I have docs in there.
And so I want to basically hydrate our public docs with those other docs and
make sure that everything plays nicely and that we don't have like drift between.
The two, so if you think of it as like an SDK type thing, how do we have
versions of that, docs of that, but then we have the API docs, so very
similar to when you were at Stripe, you guys had the Stripe SDKs, the API.
Has versions, all that kind of stuff changes over time.
So in the discord docs, we don't actually really have a good
versioning system in the docs itself.
It's more look at the table.
What version are you on?
That is what applies to you.
So we aren't going to have versions anytime soon, but I'm just trying to
think through, like, how do we not end up copy and pasting documentation?
How do we not have drift?
How do we not make it, manually corruptible?
So that's what I'm working on.
CJ: on.
Nice.
Yeah, we've been talking a lot internally about generating OpenAPI
specs so that we can consume it from our React Native app and our Next.
js frontends.
And I've been surprised that the tooling isn't really there in Rails.
There's Oh, or like to, it's not there to like automatically do it for you.
I expected you could just drop in a gem and say I'm using JBuilder.
And then it would just figure out all the different types and be able
to build the whole spec for you.
But it's not that easy.
The state of the art, as far as I can tell, is you have to write tests in
our spec that then will map to, the open API specs that can be generated.
But in order for those to get spit out, you actually have to write the
tests and we should have the tests.
And I'm not discounting that in any way, but it feels like a painful
way to keep them in sync is to have to constantly write tests.
Colin: Do you then have to annotate the tests or do you annotate the source,
the main source code for things like descriptions and labels and categories?
Because that's the thing, we have an OpenAPI spec today, but we
haven't finished, I think it's called tags and descriptors, right?
we use one of the tools to generate, CLI, but because there's no categories
and everything, it's here's all the functions you could possibly call.
And so we're going to be adding tags, we're going to be adding descriptions
so that, that CLI is more useful.
especially when you have, start to have endpoints that look the same or
get called at a different context.
CJ: in different contexts.
Yeah, so within, I'm pretty sure you write it within the test.
but I'm not, yeah, not sure.
Colin: That would make sense because then like where the spec is generated
from all comes from one place.
CJ: Yeah.
So the default when X is using our spec, we're using many tests, so
there's going to be some differences there, but like when you say, okay,
describe blah, it blah, or like it gets.
thing, then I think like the test description can be used as like the
body of the whatever you're describing.
But yeah, I'm, I know there's some sort of, yeah, some sort of DSL that's in
there that's like really tightly coupled.
And if you want it to, generate good public facing documentation, I think
it'll be challenging to maintain.
Colin: then you have to flag each of those if they're public or private.
You have to flag them if they're going to be in certain versions.
there's a lot that goes around this.
CJ: Yep.
Colin: if you want to have examples, if you want to have examples that can be run.
I guess the test itself could be the example, but it's not always that clean.
Yeah,
CJ: you generate the spec, then you can use the R Swag UI and R swag.
API.
Gems and those can just take in the spec and then they can make it so that you can,
make test calls or whatever directly from the UI, like Postman or something, but,
Colin: Yeah, ReadMe has a bunch of really good, Libraries for this in
JavaScript, but they have an OAS to snippet, which will take the, spec and
turn it into a code snippet for you.
CJ: a code snippet
Colin: Like a curl, you can say curl, Python, whatever you want it to be.
and then there's another one that will actually let you like run it.
So that you can do the playground style type stuff and inject your tokens into it
CJ: type stuff and inject your tokens into it.
Now that we're on the outside, it's oh, that's actually like super helpful.
Colin: Yeah.
I'll send you some things cause I've seen, I've been playing
around in those tools as well.
And there's one where you're like, when you generate the whole JSON, it's pretty.
CJ: alarming.
Yeah.
Colin: then there was one where that'll convert it to YAML, but also
put it in folders of each resource.
So you
CJ: So you can
Colin: see it better and you can go edit it.
And then when you're ready, you can like have it rebuilt back into the single file.
Cause it's not fun to go navigate that, by hand.
CJ: right?
If you look at the.
the OpenAPI spec for the Stripe API, which is publicly available, it's on
GitHub, slash Stripe slash OpenAPI.
it's insanely long.
the YAML files are just monstrous.
Colin: And yours is in YAML.
I think ours is in Jason.
CJ: JSON.
Yeah, I think the repo might have several versions, but the, again, because
Stripe isn't built with Rails, it's built with, a bunch of homegrown tools.
The place where you describe what you want the resource to look like is all
in the same spot as, the actual API, endpoints and resources are defined.
And in that world, your documentation and your implementation are in the
same place, and it was very handy.
It was super, super nice.
yeah, I was expecting and hoping for something similar in Rails, but No.
Colin: Yeah.
and there's some other tools that will decorate.
Open API.
So once you generate it from your code base, you can have
another step that decorates it.
So maybe, you convert those more developer friendly descriptions
into localized And, dev marketing, strings and stuff like that.
CJ: That's cool.
Colin: Yeah.
CJ: Yeah, I was half thinking maybe we ought to just feed all of our models
and all of our J builders and all of our routes into Jet GBT and just be like,
Hey, generate an open API spec for me.
He's done this huge
Colin: might be faster.
You never know.
CJ: Yeah, tricky to maintain something like that.
And I don't want it to fall out of sync.
is the, are the docs that you're working on, something that
would have an API behind it?
Or is it like more SDK docs?
Colin: it's something completely new, so it's not like an SDK for the API.
It's different.
But yeah, even now, like our own API specs, some people are starting to use it.
It's still very much developer preview.
We tell people not to build anything with it because it might change.
especially around those like circular references, the schema references
or errors, stuff like that.
and we're trying to make sure that like our types match the types That you
expect in this spec and things like that.
there's some things that can be many types.
That's always fun or a bunch of union types.
CJ: Yep.
Very tricky.
Yep.
Colin: We love some APIs though.
CJ: yeah, exactly.
So another thing we've been working on a lot, craftwork is trying to get
our memory bloat down a bit we're on render and we're still very small,
tiny startup, we've only been running our rails out for about six months.
And so we hope and expect that maybe a four gig box on render
should do just fine, but we keep bumping against the memory.
Like sealing there.
And so the last couple weeks I've spent just like learning a ton about
how memory management works in Ruby and Rails and just like keeping
an eye on renders memory chart.
And.
One of the things that I learned was that you can just call gc.
start.
There's like this gc module that's available.
and that will kick off garbage collection for you.
We had a couple of jobs where I was like, Oh, at the end of this job,
maybe I ought to just kick off gc.
start because it's, uploading a bunch of images and creating
a whole bunch of stuff.
But, so that was interesting.
And then.
Ruby comes, out of the box, Ruby uses an allocator called malloc.
It's like the default allocator, I think, for C.
But you can switch that to different allocators, apparently.
And one of them is jemalloc.
Which, on render, you just set an environment variable.
That points at some SO thing and then it starts back up and is better at memory.
handles memory fragmentation better and, yeah, just helps avoid bloat a little bit.
I was also super excited to upgrade to Ruby 3.
3, which we did, and that actually gave some like pretty noticeable, like
speed improvements, which was cool.
And then, yeah, we, so we use, Sentry for error tracking and alerting.
Shout out if you want to, sponsor the show.
But the tools that Sentry gives you for looking at memory
management don't work on render.
render is agreed to support the agent that comes from Scout APM.
And so we've been exploring and using the free trial for Scout this week.
And it is pretty cool.
seeing all the different, background jobs or controller actions and then how
much they increase the memory ceiling, Based on the methods that are called
or whatever and you can see traces and they give you a lot of details about
here's how many allocations that were made as part of this and here's your N
plus one queries and here's like specific methods that are taking a long time.
so still learning a ton about Scout APM, which, yeah, it's been pretty cool.
to learn about, but yeah, we still haven't, we still
haven't completely solved it.
But
Colin: There's been like a whole new discourse around the cost and time around
using things like Vercel and Render and Fly versus running on a box yourself,
or I know that 37signals has moved all their stuff off cloud, which It's probably
just their own cloud somewhere else.
It's just off public clouds.
They're not running in DHH's closet somewhere.
but I don't know.
I still, I mourn the Heroku days of just slapping something
up and getting it going.
And I know render and fly and things like that are making that
easy again, but I don't know.
There's a golden age of Heroku.
CJ: Yeah.
I think that over the last six months or whatever I've learned a lot about Render.
And it's almost to the point where it feels like Heroku in that you just
push and go, and there's like little things you gotta fiddle with now and
then, but, I, yeah, I still think it's a little easier than using something
like Docker or, AWS directly, but,
Colin: having to do real DevOps and having to go out and do all that
stuff, like, when you are a small team, there's Pros and cons to it.
CJ: Yep.
Absolutely.
Yeah.
Colin: yeah,
CJ: Yeah.
I don't know.
it's fun.
Memory management is interesting and I'm glad that we don't
have to think about it usually.
But, I think Ruby and Rails definitely make it easy to suck up all the memory.
Colin: right
CJ: it's all
Colin: and usually throwing more money at it works for a little while until you're
like, okay We're spending too much money.
Just throwing money at this thing.
let's see what's going on.
CJ: Yeah.
And oftentimes there's Oh, you could just do an includes here, or, Oh,
you could just, exclude 95 percent of all of the records that were
returned because you're not actually using them in any of these results.
Or, Oh, you could cache these into a dictionary, And then reuse
the dictionary instead of hitting the database a million times.
yeah, lots of different little things, little tips and tricks for
performance that we've still got to do.
So
Colin: fine tuning This conversation reminds me.
I got some heroku emails today from a project.
We both worked on
CJ: project we
Colin: like, the build failed to release.
I'm gonna have to go look at what that is
CJ: have to go look
Colin: Because I haven't touched it in years, so we'll see.
CJ: touched it
Colin: We'll check in with Julie and make sure her business is still running.
CJ: I'll check in with Julie and make sure her business is still running.
I don't know, it's, part of me wants to move them off and move them to render.
I'm gonna wait, I think, a little while until SolidCue has
some time to, to bake a bit.
I don't know if you've looked into it too much, but I'm excited to not need
to use Redis and just have you pay for your web, you pay for your worker, you
pay for your database, and that's it, and you don't have, this extra little,
Colin: throw things on the queue.
CJ: the queue?
Yeah, exactly.
Little thing dangling off on the side, but,
Colin: Yeah, I think a lot of the infrastructure stuff is why I haven't
finished my Google Calendar Discord app.
Because I'm getting into that point now of needing to like subscribe and unsubscribe
from events and get notifications.
And I'm like, this will work for me.
But the moment we have a hundred people using it, or a thousand, that's
a lot of notifications of meetings and calendar events being moved
around and all that kind of stuff.
CJ: right?
Yeah, going back to the, the deputy integration that we're working on,
A lot of that is calendaring and schedules and whatever, and as people.
a shift goes up, and then an employee gets assigned to a shift.
Then those shifts get published, and keeping all that in sync, if people move
around, or they, they're, they call in sick, or they, have to take some PTO,
or whatever, and all of those things are shifting and changing, and trying to
keep it all up to date is, I don't know.
It's tricky, and that's one of the things that's sucking up memory, is
okay, we're, making a bunch of API calls, and creating a bunch of objects to
build all these automations, but, yeah.
Screencasting.
Colin: Yeah, I guess the only thing I'm really learning right now,
other than wrangling GitHub repos, is I've been going through Aaron
Francis's screencasting course.
So Aaron has like a unofficial sponsored slot on this show today.
And a few of the last episodes too, but yeah, it's really well done.
he makes amazing video content.
So it's great to see like him take that skill, turn it into a
course showing us how to do that.
because I really want to be able to get good at creating more video.
Like we just don't do video content for our work right now.
my colleague has done a few videos, but it's not like our
core muscle of pumping them out.
I think we have editors and stuff too.
So it's not that we have to do all the work, but.
Gonna practice with my own stuff, I've got some ideas for projects I just
want to build, but build them either on stream or do some recordings,
CJ: Yep.
Yeah, the name of the game is Make That Content, right?
Colin: Yep,
CJ: Is, what are the, the software tools that he suggests in that course?
Colin: I'm still in the pre tools phase in the course, but I think he's
doing Final Cut or something like that.
I don't think it's like ScreenFlow, which is what I'm most familiar with.
CJ: Got it.
Cool.
Colin: So I'll check and
CJ: and,
Colin: we'll revisit this in the future in a future episode, but I'm mostly excited
to see his shortcuts because he does a lot of like record, stop, record, stop,
and how do you bring all those together quickly and drop the ones you don't want.
CJ: And am recording, like screen recording directly from Descript.
And, by recently I mean I've only made 3 or 4 videos this way.
But, my previous workflow was like, record in ScreenFlow, do some editing
in ScreenFlow, export, wait 20 minutes, load it into Descript, wait 20 minutes
for it to transcribe, and then do some more editing, apply Studio Sound, do a
bunch of stuff, export, wait 20 minutes.
It was like, oh my gosh, all of those, Advent of Code videos.
It was like an hour a day of just waiting on something to like export or
import or transcribe or whatever, even on an M1, Yeah, completely working on
revamping my flow to make it as smooth and short as possible so that it can
be like, okay, record something real quick, get it up, get it out, and, yeah,
Colin: Yeah.
we're doing that with this too, right?
we're using a different tool.
So this will be the first episode that we're recording with Squadcast.
So this will go straight into Descript.
I'm curious to hear if it sounds any different, but We were already
paying for this one, so we got rid of Zencaster, sorry Zencaster, we love you.
CJ: you.
Colin: but we're gonna see how this works.
One last tool, cause I was doing the same, we would export it from there, then
share it in Dropbox back and forth to get it into Descript, and Are you editing?
Am I editing?
It's just let's get this out the window as fast as we can.
CJ: Yeah, right now it's just fun, right?
We're just doing this for fun.
We don't have editors.
We don't have anything.
We're just hanging out.
And, yeah, so the lower touch, the better.
I think, one interesting thing for screencasting that I started playing
with was, I think it's called key caster.
yeah, key caster, you can like brew install this and it shows what
you're typing, as you're typing it.
And.
The goal there is make a couple videos about, keyboard shortcuts and things
for, moving around and, switching between windows and tabs and how do you edit
text and then move between lines and,
Colin: how do you see CJ's Vim wizardry in action?
CJ: That maybe, yeah, I haven't done any Vim videos yet, but,
Yeah, I think that'd be fun.
It'd be super fun to just
Colin: you're recommending that everyone install their own keylogger.
CJ: It is a keylogger and there's, it's funny on the GitHub
repo, it's all open source.
So the, on the GitHub repo, they're like this, you don't want to let people
have your key access to your keyboard.
Like you can, here's how you download this thing and go make sure that it's safe or
whatever, but yeah, it's going to become.
Just an on screen keylogger for my videos, we'll see.
Colin: I think I will be adding that to my personal computer, not my work
CJ: computer.
Yes, yeah, it's yeah, I don't know.
Fun stuff, but.
Absolutely.
Yeah.
Colin: Very cool.
I think that'll do it.
As always, you can head over to buildandlearn.
dev and we'll include links to all the show notes and resources
that we talked about today.
CJ: Alright, that's all for this episode, folks.
See you next time.
Colin: Bye friends.