A cloudy feeling of dread - podcast episode cover

A cloudy feeling of dread

Feb 04, 202032 minEp. 95
--:--
--:--
Listen in podcast apps:

Episode description

This week, Jon and Justin discuss:

You can reply to this podcast here:

Thanks to our monthly supporters:

Thanks to our monthly supporters

Want to start a podcast on Transistor? Justin has a special coupon for you: get 15% off your first year of hosting: transistor.fm/justin

★ Support this podcast on Patreon ★

Transcript

Jon

Hey, everyone. Welcome to build your SaaS. This is the behind the scenes story of building a web app in 2020. I'm John Buda, and I haven't seen the sun in over 2 weeks, which is cool.

Justin

I'm not used to you improvising. I'm Justin Jackson. I do product and marketing. Follow along as we build transistor dotfm. It it's dreary there in Chicago.

Jon

It's miserable.

Justin

Yeah. You were saying you might have to get out of town.

Jon

It's just like endless. I mean, I think it happens every year. I should be used to it, but for whatever reason, this time of year and everything from the new year is just like just this cloudy dread. Mhmm. I think there's supposedly sun coming this Sunday. Well, by

Gavin

the time people hear this, it'll be, like,

Jon

that's the big news here is Sunday is gonna be sunny in 50. Like, put on your put on your swim trunks. Go to the beach.

Justin

Yeah. People people are excited. Yeah. I wonder if you need to just create a repeating calendar item for yourself that says, January 5th, get out

Jon

of Just town. GTFO. Yeah.

Justin

Where wherever that might be, go go find yourself a a tree house somewhere.

Jon

Possibly. Well, yeah. A tree house with no roof and lots of sunshine.

Justin

Yeah. I mean, it it yeah. It really does. I think here, we when we get snow, there's just so much to do in the snow. Right. That You also even if

Jon

it's Yeah. But it's sunny after it snows there, probably.

Justin

Yeah. I mean, it can get sucked in in the valley, but we get, if you go to the mountain, you're you generally above the clouds there.

Jon

Right.

Justin

I mean, this is important stuff, man. I I'm sure there are a lot of listeners that feel the same way.

Jon

Yeah. If you live in the Midwest, near the Great Lakes, I'm sure you can feel the pain.

Justin

Now the the the flip side is during the summer and fire season here in the Pacific Northwest, it can be terrible. That's true. Smokey and awful. I remember I had just visited you, and then I was flying back into Kelowna, and it was like flying into the burning apocalypse of hell. Like, it's just red skies and completely smoke covered. And and we're like I just come from sunny Chicago, and I was like, oh, man. Take me back to the Midwest.

Jon

Yeah. Everywhere's a trade off. I don't think there's anywhere that's perfect. It's either

Justin

Yeah.

Jon

Fires or earthquakes or hurricanes or extreme heat or cloud cloudiness and horrible winters, and that's just anyway.

Justin

Yeah. You just you just gotta you gotta move around. You gotta get put your laptop in a backpack, put your thumb out, grab a grab a ride.

Jon

And just buy a buy a Volkswagen bus and just

Justin

Yeah. Drive around. For sure, man. You can do that if you want.

Jon

It's possible. The transistor the transistor, mobile.

Justin

I don't know. I'll spend some money. I'll I'll spend some marketing budget on that.

Jon

Slap a big sticker on the side of it. Yeah.

Justin

For sure. For sure. We we need to have, transistor Westies. We need to have transistor surfboards, transistor snowboards.

Jon

Yeah.

Justin

This is all

Jon

You know, I did I did meet with our accountant last week, and I think we could probably expense that. Mhmm. Totally fine.

Justin

For sure. I mean, it's marketing. Right? Uh-huh. Alright. I have a question. I I saw this tweet from DHH, and I do not understand it. Monoliths are the future. I don't what is he talking about?

Jon

Okay. I saw that too, and it is related to I think it's something he's talked about quite a bit and and a a blog post on changelog.com. Okay. Yeah. There's been a trend over the last, I don't even know, 5, 6 years

Justin

Okay. Of

Jon

taking what are regarded as these monolithic apps. Like what our, our app is a monolithic app. It is one code base that runs one stack of Rails software. Right?

Justin

Yes.

Jon

Okay. Every time we deploy, we deploy the entire thing.

Justin

Yep. So Laravel, Rails Yeah. All of the

Jon

By default, those things are, I would say, considered monolithic. Right? So if you're working at a company and everybody's working on the same code base and it's every deploy is just the same

Justin

the same thing.

Jon

Yeah. It's the same thing. It might have an API on it, but

Justin

it's always the same thing. And Go is are Go apps typically more microservice driven? They

Jon

could be. I mean, yeah. I don't know. This isn't necessarily related to Go particularly, but,

Justin

I just remember setting up a Go application on my computer, and it was like, what is going on? It was like, everything was a separate

Jon

I mean yeah. Go I mean, Go is easy to compile down to these separate binaries that you can throw anywhere, and they have, like, web, kind of a web server built in. So so microservices, the trend, and I don't have a ton of experience working with this stuff, but I did a little bit Yeah. At my last job. And, typically you are you have different code bases for different kind of pieces of your business or logic.

Justin

Yes.

Jon

So like you'd have an app that's like the storefront and then an app that is the admin and an app that is the API and an app that is, I don't know, like payment processing, and all those things are deployed separately. They all kind of talk to each other and have to know about each other. Yeah. And I think the idea was supposed to simplify the code base because each one is smaller, But from my experience, it's not it's like more resilient to problems where if one goes down, then not everything goes down, but there's there always seems to be a central component to that that's, you know, every microservice has to communicate to the same thing anyway.

Justin

Yeah. Yeah. So here's my experience. I I again, I've only worked on one thing that was structured like this. It was a Go application, and it's exactly like this. There's a bunch of components. They're all kind of independent, and they would talk to each other.

Jon

Yeah.

Justin

But in my experience, first of all, setting it up was crazy. It was not easy to set it up. And, the next thing was that that duct tape between all of those elements seemed very fragile to me. Like, there there's always something like, what went wrong? How come this isn't running locally? And then you have to, like, go down this entire crazy stack of things to figure out.

Jon

Yeah. How do you know where the problem is? And then if you're writing tests on that code, it's, like, for one microservice that might use another microservice, then you have to write tests that, like, stub out that other service, and it's like talking to a fake service. It just for so I think the the the point of this blog post and other posts that DHH has written in the past is kind of trying to make the point that it's really less efficient to do it this way, especially for small teams. Like

Gavin

for us, it's

Jon

like me working on the app. Right? I don't wanna maintain multiple apps.

Justin

Yeah.

Jon

Even for small teams in the past I've worked on, it it can be a little bit cumbersome. But I think it kind of can lead to some inefficiencies and hiring a lot more people than you need.

Justin

Mhmm. Yeah. I could totally see that. I the again, just what from what I remember and setting it up and, like, trying to test things and trying to figure out how to deploy things, it yeah. It just seemed really complicated.

And I kept asking, like, why, like, why can't we just why can't we just have this in one code base? And then, you know, even even for finding things, like, right now, a dummy like me can go into my code editor and click find in all documents, and then just, like, search everything for a little bit of content or code or whatever. And that just the simplicity of that is so helpful. I don't have to ask you, like, okay. Where is that thing?

Like, where is it hiding? I can just go and find where it is. And, I can run it locally. I can issue a poll request. And it it just seems like the process is simpler.

Jon

I mean, for sure for sure, you know, places like Facebook, they're gonna they're gonna have to split off services.

Justin

Yeah.

Jon

They have to. But for a new company starting out, if you I feel like if you choose from the beginning, you're like, we're gonna do microservices from the beginning.

Gavin

It's just

Jon

you're I don't know. I feel like you're gonna be spending so much time on the architecture of the app and actual than the actual product.

Justin

Yeah. You're over engineering.

Jon

Whereas, like, for us, I mean, we could there are places we could potentially split things off into their own app. Like, down the road, if this thing is massive Mhmm. There are and but that's more for that'd be more for, like, efficiency sake of, I don't know, processing analytics in the background or some like, something like that. Mhmm.

Justin

Yeah. Yeah. So oh, and this is interesting. I'll I'll pay I haven't actually read this, but this looks like an interesting take on it. Because Shopify has written something. They have one of the largest Ruby on Rails code bases in existence. This is called deconstructing the monolith. Yeah. Something software that maximizes developer productivity. And I wonder what they ended up doing. So they have something called a modular monolith. Anyway, I'll put I'll put this in the show notes too.

Jon

Interesting.

Justin

I I the reason I searched that is as you were talking about this, and then you're, like, you know, if you're Facebook. And I I keep thinking about that stuff, like because because people talk about complexity and power and all these things. And I'm I think my opinion now is, like, if you need that much complexity, then you're building something evil. I I mean, maybe that's not a universal law, but I just said it out loud just to see how it would feel. Yeah.

There there's just something about, like, even you know, I wrote this book called Marketing for Developers. And I I kind of, maybe naively, wrote a lot about how people can set up user tracking and how retargeting works and all this stuff. And now I look back on that, and I go, man, that was a bunch of marketing complexity. And what do we really get out of it?

Jon

Yeah.

Justin

What do we get out of it? Did it make the world better to have all this this retargeting? Well, from a privacy point of view, definitely not. From a a code complexity point of view, definitely not. Like, it added all of this cruft to our applications and our marketing sites.

And, and then from an efficacy point of view, it might I mean, I know retargeting campaigns can work, but it's like this. There are things that work way better that aren't, like, trying to squeeze the last drops of juice out of a lemon. You

Jon

know? Right.

Justin

Like, once you get to that level, you're you're real like, retargeting is, like, squeezing the last last drops out. Not just, like, in a micro perspective, but a a big macro perspective. Like, if you're in an industry, like, direct to consumer, once everybody is doing retargeting ads and everybody's, you know, marketing to you on Instagram stories and Facebook feed and Twitter feed. The the efficacy of those things, you're only gonna get a few drops of the lemon because so many other people have squeezed it.

Jon

Mhmm.

Justin

And and the trade off is that you've got to introduce all of this complexity.

Jon

Yeah. Yeah. That's what it seems like to me is especially if you're thinking about this stuff from the, from the start is it's just introducing complexities too early on. Yeah. Like, I can't imagine trying to build this and think about having all these services run independently. And, you know, there's tools that are, like, self discovery. So these your your some of your systems can find other systems on the network and talk to each other and discover when new ones are added.

Justin

Yeah.

Gavin

Just I I don't know. I just I just thought of like, if

Jon

if transistor was big enough to where we had Facebook or Apple level data centers and you were, like, walked into it and you just saw these rows of servers, you're like, this is transistor? It'd be terrifying. I don't want. Like, what are these things doing?

Justin

And those machines, like, all pulse when they when you enter the building. Yeah.

Jon

And then the building

Justin

starts to shake and then it, like, electrocutes you and sucks you into the machine and then you're stuck there forever.

Jon

Yeah. And then you're in that sort of black mirror.

Justin

I mean, I think one of the threads that's been in our show from the beginning is questioning some things. Questioning how big do you need to be. Right. Questioning how complex does your software need to be? Does your business need to be?

And, actually, this relates to something we were gonna talk about last week, which is this this blog post I wrote called, margin, justinjackson.ca/margin. And the, the one of the observations I met I I I made is that typically, like, when you're when you're in a squeeze the last drops of the lemon situation, your response is often to add more complexity. Right? So there are certain industries, I'd say, definitely, like, the make money online kind of sell online courses to people who wanna create online courses. Like, that whole market is running on marketing steroids.

Like, they're using every single tool tracking, retargeting, drip sequence, automation sequence, dynamic content. Like, it just it's crazy. And, in my experience, the that there there's quickly diminishing returns there. And I I recommend in this post to look for business models that have good margins with minimal complexity.

Jon

Mhmm.

Justin

Choose work that gives you lots of breathing room. I think it's something to keep in mind. Only the another thing I said, because I was talking about this these 2 snowboard shops that I owned in my early twenties. And we were just, like, adding everything. Like, we just kept adding more to the store, hoping that it would increase our margins.

We we built a mini ramp in one of our stores and and charge people to ride it. We did events. Like, we we would do, like, video premieres. We published a magazine. We ran contests. I started a retail collective in our town. We started doing bike repairs. We we were like it just we just kept adding more and more because we're chasing after, like, okay, we gotta make this business work. It's like, we're just pushing on this thing and trying to get the machine running. You know?

And the way to get the machine running is just to add more parts. And it was, like, throwing good effort after bad fundamentals. Because because the primary model was lousy, and adding more complexity didn't fix that. And I think I just define I think I just described Facebook. Right?

Yeah. It's like when the primary thing you've built is just a shitty thing, or I shouldn't I mean, I don't wanna belittle some of the the small business. Like Yeah. It it wasn't in Facebook's case. It was just, like, they built a shitty thing.

Jon

I don't know if the I don't know if the primary thing that they build is a shitty thing. It became a shitty thing.

Justin

It became a shitty thing. Yep.

Jon

They're selling you

Justin

Yes.

Jon

Out to advertisers and everyone.

Justin

But it it's it's interesting to think on both scales. Like, the small little independent business person like me, I was you know, this was my dream. I was running a snowboard shop, and I just got, into this vicious cycle of trying to add more things to the business, trying to make the business work. And the conclusion in this blog post is, like, if you're in that cycle, you gotta get out.

Jon

Yeah.

Justin

On the other side, there's these big massive corporations. Facebook, Amazon, Twitter, and the complexity of those businesses and their tech stack and, you know, everything they're trying to do. I I think there's something we need to think about that stuff. Yeah. And and, I mean, we've benefited from some of that. I don't wanna I don't wanna pretend that, like like, we use Amazon Web Services, and there's some benefits there.

Jon

Yeah. I mean, we don't yeah. We certainly don't have to use them. It's like an evil option, but it's there's other I mean, the alternatives are not fantastic. Yeah. I'm actually cure like, I know Basecamp switched to Amazon because they used to run their own servers out

Gavin

of a data, like, warehouse. Right?

Justin

I think I have Rackspace or something. Yeah.

Jon

Yeah. And, you know, they talk about they talk about model this a lot and how they use them. And I think their infrastructure costs are still really high.

Justin

Mhmm.

Jon

Regardless, it it's not I don't think microservices are meant to make your infrastructure cost cheaper. So, like, Basecamp will scale, I wanna say horizontally instead of vertically. Mhmm. Right? They they add more servers instead of splitting out parts of the code into something else.

Yeah. Which is fine. I'm curious. They've alluded to to, like, new things they're gonna announce this year, one of which is a new a new product, but the other thing they talked about is they're gonna release, like, some new development tools or I'm curious to see how this plays into the whole monolith talk, but Mhmm. I feel like what they're gonna do is release either some new stuff for Rails or some JavaScript packages that work with Rails that are kind of along the lines of of Alpine.

Mhmm. Right? It's like it's like, here here's how we're gonna develop or here's how what we use to develop this new app, that we're making, and it's Rails plus this, like, interaction layer on top, which is which is based on maybe stimulus JS, which they built internally Yeah. Or or something else. Or I feel like they they came up with this new this new way to build their new app that they wanna talk about, and I don't really know what it is. But

Justin

But but there's gonna be the addition of some JavaScript stuff.

Jon

Yeah. I don't think they're gonna go, like, the one the single page app react route at all.

Justin

Yeah. But

Jon

the there's something something that they figured out works really well for them, in the context of, like, a monolithic app.

Justin

Yeah. Interesting. I I think these conversations are so fascinating. Because if you're technical, I think and if you're technical and nerdy, there is part of me that's, like, super interested in, like, okay. Like, how does this you know, how does artificial intelligence work?

How do you, you know, how does how can data science make our world a better place? And and so sometimes I think I do tend towards, like, wanting to dive into these complex topics. On the other hand, there are these patterns that that we have think about, like like, LA's, road system. Right? It started simple, and then they just kept adding to it and adding to it and adding to it. And what was once a simple way to get around is now this, like, complex hellhole of of traffic. Right?

Jon

And

Justin

and how did that happen? Did that happen just, like, in a year? No. It's been decades decades decades of patterns that then reinforce new patterns. And then what you're left with is this, you know, crazy complex thing. Whereas if you compare it to New York and New York's transportation system's not perfect, but the simplicity of the subway and how easy it is to get around that city is I don't know. It's it's an interesting contrast

Jon

that Probably also speaks a lot to, like, it's almost impossible to add new subway lines. Yeah. Like, you can't just dig a line easily.

Justin

Well oh, but this is these are design decisions, design patterns that, you know, at some point, people made decisions. Right?

Jon

Yeah.

Justin

And we we're making those same decisions in our applications. What patterns are we gonna reinforce? We we make these same decisions in the tech industry. Like, simply the fact that react has become such a massive thing. Like, it it's like one pattern reinforced another, reinforced another, reinforced another.

And now we have, you know, these React based apps. And whether that's good or bad is maybe another discussion, but that that and then we can extrapolate where will we go from here because it's not like it's not like things don't always just take a hard left turn. Often, they just you just keep continue to add complexity on top of the pattern you have.

Jon

Mhmm.

Justin

And I think yeah. It's just interesting to think about that stuff. And and going back to, you know, the way transistor works, I mean, we have, like I don't know. I wanna say 10 main screens maybe. And even that, like, we were we were looking at how we might refactor the UI, like, clean up the the interface in a way that is, you know, better or whatever, like, for the user.

Even with just 10 pages, changing things, going, like, in a different direction, like, saying, oh, let's amalgamate these 2 screens, and then move it over here, and then let's change this UI. Like, the pattern we started with, which was kind of just like, okay. Well, we need to build something and Yeah. Cards Against Humanity was our first customer. So we kinda, like, built it for them.

And then and and you brought brought old patterns from the app that you'd built before, and and we applied some of those patterns.

Jon

And then you have these, yeah, screens with, like, 30 input fields on it. You're just like, well, just I guess we'll just add something here instead of thinking about a new context for all this stuff and splitting it up.

Justin

Yeah. And it's tricky because you can introduce a new pattern, but human beings really even bad patterns, they get they get attached to, like like, you know, like JavaScript is, like, not a great language. But introducing something new to replace JavaScript just has not happened. Right. And so now we're stuck with it, and it's gonna and now it's getting reinforced at a different scale.

Jon

But JavaScript. Yeah, JavaScript as language is actually kind of great now.

Justin

Oh, really? Yeah. Well, see, there you go. But, anyway, the I think the the principle still stands in it. It's interesting to think about both in our businesses and I mean, this is kind of a continuation even of what we were talking about last time.

And even a continuation of what we were talking about at the at the top of the episode, which is, like, right now you're feeling a little bit down because it's gray. Mhmm. And there's this idea of, like, well, what patterns can I implement now? And some of those might be more complex than others. Like, you could get one of those sad lamps.

You could start taking all sorts of supplements. You could, you you know, you could use calm on the tropical theme or whatever. But there may be a simpler solution, which is, I don't know. Like, Austin is sunny this time of year, so I'm just going to drive to Austin or fly to Austin, or I was hoping there might be a a little a better climate option. But, you know, I'm I'm gonna drive south and

Jon

I'll run. I'll just run there. Just run there. See? That's the yeah. That's no no carbon footprint.

Justin

Exactly. Take a

Jon

long time, but I'll get there and I'll be in shape. So

Justin

That's true. That's true. You should get one of those, wolf the wolfram. Have you seen the wolfram dude's little?

Jon

I think you mentioned that before.

Justin

I'll post it in the show notes, but he's got, like, this this harness that he uses to walk around with his computer all day. So he tries to like do most of his work outside. Now, That would be amazing. We get you, like, one of those harnesses, and you're, like, jogging down, like, the interstate, like, working on transistor state.

Jon

Can you imagine that? But

Justin

maybe that's the simpler way to go. Right. Maybe it's worth doing. I didn't yeah. Interesting. Folks, I'd. We've been getting a lot of feedback last few episodes. So if you wanna talk to us about this topic, if this resonates with you at all, if you disagree, if you think, you know, something we said isn't right, reach out to us at build your sass atjohmbuda@mijustin. Go to transistor.fm and talk to us in the chat. You can email us at shows at transistor.fm.

Yeah. Let us know what you think. John, we have 2 new Patreon supporters. Why don't why don't we thank everybody?

Jon

Yeah. Thanks, everyone, and especially the new the new supporters here. Mason Hensley. Oh, this is gonna be tough.

Justin

Yeah. I think it's I think it's a

Jon

Is it a silent j? A yeah. Yeah.

Justin

I think I think it's a yeah.

Gavin

Borjas Solaire? Borja Solar? Solar? Solaire? It's probably Solaire. Solaire? Bor Borja Solar.

Jon

It depends on that right.

Justin

Yeah. Just let us know. And it it's especially helpful, like, because we wanna say your names right. So if if you have a pronunciation that you wanted to send us, yeah, send it over.

Jon

Because a lot of people probably say Borgia Solar.

Justin

Yeah. Yes. So if that's not it, let us know.

Jon

We also have Ward Sandler, Eric Lima, James Sours, Travis Fisher, Matt Buckley, Russell Brown, Evandro Sassy, Prady Yumna Schimbecker, Noah Praill, Robert Simplicio, Colin Gray, Josh Smith, Ivan Kerkovic, Brian Ray, Shane Smith, Austin Douglas, Simon Bennett, Michael Sitvert, Paul Jarvis, and Jack Ellis, Dan Buddha, Darby Frey, Samori Augusto, Dave Young, Brad from Canada, Sammy Schubert, Mike Walker, Adam Devander, Dave Junta. Junta. And Kyle Fox from get rewardful.com.

Justin

Thanks, everybody. And, I was gonna I had a few things. I Matt Buckley. Every time you say Matt Buckley, I think the image that comes to my mind what what image comes to your mind?

Jon

Matt Buckley?

Justin

Yeah. Do you think of anything?

Jon

No. I think of Jeff Buckley. Oh, okay.

Justin

So I'm always picturing, like, a musician.

Jon

He is a good musician. Yeah. Did you see the movie about him or his dad? How about his dad? No. Oh, it's great.

Justin

There's a documentary about him?

Jon

No. It's a fictional well, it's a movie they made.

Justin

Oh.

Jon

A film, not a documentary about him, but also his dad because his dad is a musician.

Justin

Okay. I'll look for it.

Jon

Well, We can post it in the show notes. I forget the name of it.

Justin

Is it greetings from Tim Buckley? Possibly. Okay. We'll we'll look that up. And then the only other thing I was gonna say was, got a nice email from Colin Gray. So thanks for emailing

Jon

us, Colin.

Justin

Yeah. And we will see you folks next week.

Transcript source: Provided by creator in RSS feed: download file