You're listening to Cintax, the podcast with the tastiest web development treats out there. Just grab yourself in and get ready. Here's Scott Telensky and West Boss. Welcome to Cintax, the podcast with the tastiest web development treats out there.
We've got a potluck for you today. This is where you submit the questions and we will answer them. Please keep the questions coming on in. You can go to Cintax.fm in the top right hand corner.
There's a button that says ask a potluck question. Type it in there and we'll try to answer it on the show. We've got some really good questions for you today about JavaScript, CSS, tooling, caching, routing, all kinds of good stuff with me. As always, Mr.
Scott Telensky, how you doing today, Scott? Hey, yo, hey, yo, hey, yo. I'm too good. I don't know, not too much to report.
If you're feeling a little bit of relief to have our whole Black Friday stuff over with, that's always a stressful time of the year for us. And the fact that I launched a new redesign for the site and I am still a lot here. I have survived launching a redesign of the site. It's not something I do very often.
So, for me, feeling very good to be on the other side of that. Now I can just focus on all the things in life that need focusing on. Now that I have that big thing out of my face. What about you?
Yeah, feeling good, feeling good. Just working away, recording my TypeScript course. So, not too much. It's just pretty much that.
We are sponsored by three awesome companies today, Linnoed, Cloud Computing Developers Trust, Century, Air Exception Performance, Tracking, and FreshBooks, Cloud Accounting. We'll talk about all of them partway through the episode. Let's get on into the first question we have here from Nick. Hi, why is there no contact, a section on your site?
How can I provide feedback about your podcast? There is no search on the site, or you don't provide episode numbers for the podcast apps, or it would be great to specify the platform of the app you are sick picking. There is no such thing as things in Android. I think we usually say that.
I know you're not as cool as iPhone users, but we still exist. Yeah, why don't we have a contact? We do kind of have a contact thing, but I have contact on my own website, and we get a lot of people asking to come on the podcast that are not any way related to our company. Yeah, and a lot of it is just like this person wrote a book about whatever, and he was like LinkedIn type people.
They see that we're on the charts and they just want to spam us. But we do welcome your feedback on the site because there's probably a list of 40 things that we want to change about the website and the player and search, and like transcripts is one that I certainly want to do. I'm really excited about that. I have the code sort of half written on there.
So certainly would love to hear any of your feedback. The number, actually we should probably start doing that. The numbers in the podcast app. So putting the number in front of the show is probably a good idea.
Because if we say, hey, go back to episode 499, you want to just do a quick search on whatever. So yeah, we should do that. The only way I do that right now is on the website. I put this in here because I do feel like we are contemplating a large amount of different improvements here and there to the website.
So that's definitely on our brains in terms of this. Contact us. That's felt site. Felt site.
Yeah. I want to do it in spelt. I think it would be really cool. So if you do it in my heart to hear you say that.
Yeah, I've said it a few times, but like I'll say it for the record. I am all in on spelt. I think it is the best. It's so much fun.
So yeah, we're working on this. I don't know about a contact us for him because like you mentioned, we get enough contact. I get enough contact already through various means. And I think what it would it would just end up as like an unanswered box unless we have somebody working on filtering that for us.
We too busy. That's something that happens here. If you go to westboss.com for slash contact, I have what I feel like is a very good contact page, which is a list of all of the common things. And then at the very end, I give you a list of two ways to contact me.
One of them goes from my assistant. And then finally I tell you how to get in touch touch with me. So I feel like that's a pretty good approach. Yeah.
Yeah. Totally. All right. Next question is from Mike Adams.
He says, thank you for the show. I'm a back-end.net developer listening to stay informed of the front-end world. Thank you for representing. I almost never coded, but I read it very often.
So Scott, one thing that amazes me about level up is how many times you have rewritten it. I have not listened to all of the podcast episodes, but I think you have rebuilt it maybe about 42 times. Honestly, I'm jealous. Obviously you are the boss and you decide what's important and you make that happen.
Are there others involved in the decision-making process? And the answer is yes, there are others involved in the decision-making process. And I can tell you that they are frequently not happy with my decisions to do things like that. So I'm jealous because of my company's struggles over and over to stay the course to rebuild our legacy systems.
We start, but then something else comes up. I understand the company has to make the right decisions to keep on bringing in money and to be profitable so I can be paid and support my family. I'm grateful for that. I'm jealous that you are able to rewrite level up 420 times.
Can you talk about how you made this decision to do a rewrite? Can you speak to why the business needs this? Finally, can you talk more about the approaches you use to migrate to the new system? Specifically, I'm wondering if you used the Strangler Bigger pattern or the All-at-Once approach.
Thanks for the show. I look forward to level up's 4,000-3-right. Strangler Figg, I'm going to have to Google that. No, I don't think I use that unless I did by accident because I don't know what that is.
Strangler, I hope I'm saying that correctly, the Strangler Figg pattern was introduced by Martin Fowler as a way to manage risk when modernizing or rewriting large monolithic systems. The pattern is an analogy for the type of plant that begins life as a vine growing alongside an older established tree. So I think I probably have done this a little bit by accident. That's kind of what I do.
I basically start my rewrites or redesigns or anything like that for the most part in terms of moving part of the system, moving new parts of the system, having small little bits, small little new vines while maintaining the trunk and then eventually migrate the trunk itself. That said, I do want to clear up some things because I do think it is a little, I think from listening to me, you can hear the fact that I rewrite things a lot. But in essence, level up tutorials has existed as a website for just about 11 years. Now, it's just over 10 and a half years, soon to be 11 years.
So over those course of 11 years, I've only done four essential rewrites of the code base. That is, it was originally built on Drupal and the Drupal site was essentially an importer off of YouTube. I had a YouTube videos and it imported those videos off of YouTube to just try to give me some SEO juice. So that not necessarily the same site or system, right?
The same essential code base that I'm using today was started from my Meteor based website. And then the Meteor based website, I had two different websites. I had a store and I had a subscription streaming service. And it actually just started as a store and a streaming service and eventually I wrote the subscription service and then I eventually migrated them together.
Why? I should have just done them together in the first place. Then, you know, Meteor, the writing was kind of on the wall that I had to migrate off of Meteor. So I wrote it in React and GraphQL.
The reason why I did that, it was a fairly easy migration at the time because, you know, I had actually in my Meteor code base, my UI layer was already written in React. So I guess the first iteration should be seen as like React plus Meteor. So I was just essentially changing the data transport layer, right? I'm moving things from node functions over WebSockets to a GraphQL API.
And now this last transition wasn't just Salkette, honestly, my site being the fact that it was a UI written as a UI and a GraphQL API, I really wanted a more unified system to get access to SSR and all that stuff. So my choices were moving to next JS, which would require fairly substantial rewrite or biting the bullets, having a more substantial rewrite and just saying, hey, you know, I want to like stay on a system that I'll stay on for a long time. So in reality, over 11 years, three rewrites, doesn't feel like as much as what it may seem like. Now, some of the things you may hear me talking about is I moved our JavaScript to TypeScript, which was a thing, right?
That's considered a rewrite. I've done four major CSS redesigns, one of which was the Drupal site. So three major redesigns of the CSS from the site. So, yeah, I can't necessarily agree that I'm constantly rewriting it, but it is part of my personality and it's probably part of my ADHD and I do not recommend it to you.
So I promise to y'all, I will not be doing another major redesign or rewrite or anything. And every single time I made a choice like this, it was for a fairly important reason. Now, this latest redesign was because every other version of the site that I've designed, I've designed myself and I haven't necessarily designed it from the perspective of somebody who's coming at this with a lot of data or understanding of systems and funnels in a way that could like lead people to, you know, subscribe or want to check out or just want to use the site more. So what we did is we brought in for the first time ever a third party designer, my friend and Travis Nielsen, who's been a guest on the show before, actually, he works at Google, he works on YouTube music, he's worked on a whole lot of great stuff, very talented designer.
And one of the cool things that we said down with the Travis was like, here's the issues that we're facing. And he took a look at the site layout as a whole as a way to how can we facilitate what we want user behavior to be instead of like, oh, just make it look pretty with purple, which is kind of what I was doing before. He took it away and approached it like an actual designer taking a look at this thing. So I mean, we could probably do a whole podcast episode on talking about this redesign and what it needs to be.
But, you know, every single time it's been done, it's been done with intention, and there have been major issues or reasons why we need to redo it. And I promise y'all, you won't be hearing me say this again next year or the year after. I'm done with redesigns. Let me tell you that.
My course platform has never been like a full redo. It's been more just adding features refactoring. And right now we're doing like a slow move to TypeScript, which is basically have all the tooling, everything, some base types that are being generated from the database in place. And then anytime you touch something, it gets refactored into TypeScript.
And it's kind of nice. It's a nice way to go about it, not doing a huge one. But as we need it, and then I think at a certain point, we'll turn off the allow JS flag and then be able to go all in and have to do a couple days worth of work to make sure everything is nice and tight with my personal site. Definitely have done that more over the years, which is all right, time to blow it up.
Let's do a brand new one. Yeah, you know, the TypeScript thing, I definitely recommend that type of way, if you're not like committed to like having a solid month of hell. Like we did that is like whatever file or component you're touching, just make sure when you leave it that it's TypeScript and that it has tightened zero TypeScript pairs. And then that was like a nice slow way to do it.
Now granted, there's some bigger situations where you go down some rabbit holes of types and having to like make some bigger type situations. But you know, it's not all the time. Yeah, we did that. That was the same thing with callbacks.
I had a sick JS callbacks, the entire the entire platform was written with that because a single way was just not a thing when it was written. And then he said, okay, now we're moving to promises and a single way every single time that you touch something, it gets refactored out. And that at a certain point, we said, okay, let's let's drop this entire dependency. And I went refactored on six or seven more that I just hadn't touched.
That's a certain point. There's just code that is just working and it just works forever. So you have to explicitly go in. But I think we should probably do like a show on moving to TypeScript, like moving bigger code bases over to TypeScript rather than just like from scratch because it's certainly a bit of a different beast.
It's a different beast, totally. All right. Next question here is also from Mike. See Mike says, loving your episodes.
Thanks for helping this back and developer see more of the front end world to that end in your Dino Summer Club episode, you talked about Wes's site having a score. You all breeze right over what you were talking about. So could you pass the dish back around for seconds? How did you get this score is 100 the best?
What is the goal of what is the goal or minimum and how often do you monitor it? As a side note, Wes here, my son has just recently learned about essentially like things being out of 100. So like he'll look at our iPad and be like, it's at it's at 99. That's almost 100.
And like, yeah, whoa, that's 100 percentage. Yeah, our kids have learned percentages from the iPad battery. It's from the iPad totally. Yeah.
So Wes, what was the score? And this is so yeah, sometimes I forget like we should just assume people know everything. So this is a tool called PageSpeed Insights and basically put in a URL and it will scrub your website, it will load your website and analyze all the things like how long does it take to paint the first frame to it and how many CSS files are you loading and are your images compressed or not? All these types of things.
And then out the other end, it comes out with a score, which is our performance and accessibility, best practices and SEO score that it will give you the other end. And Ryan just dogged me and said I had like a 52 or something like that. And I ran it right after he said that and I had like an 87 or something like that. So it's a good way to, some people are just like religious about the score.
And just like crazy over it. And anything less than 100 is more and usually those types of people have like an h1 tag that says hello, my name is whatever I'm a developer and links to their GitHub. But it's a really good tool for figuring out like it doesn't just tell you the score, it tells you why the score is maybe not ideal. And ideally what you can do to fix that type of thing.
And it's up to use the developer to be like, okay, I can fix that or yeah, I need that stuff. You know, I can't just take everything out. To make it 100. Yeah, this is something that's again important.
But you know, what matters more is, you know, using the site using the site at slower speeds or 3d network or whatever, actually feeling like what it feels like. Because at the end of the day, it truly matters more than the number score is what the experience feels like to use for those users who may be getting, you know, less performance experience or whatever, more so than hey, I got a I got a 99 on this website, whatever. So have you run your your new your new site through it? The mobile scores aren't great.
And the desktop scores are fine. I'm kind of 20 on mobile. No. Oh yeah, mobile desktop 82.
Oh, what a difference. Holy yeah, desktop. I know for desktop, I get I mean, for both I get good SEO and good accessibility scores for both. But performance less so good.
I'm in 76 on desktop and whopping 23 on mobile. I'm getting dinged for my hero video that I have. And the hero video probably is causing some of that also. It looks like I have properly sized images.
Two of my images are coming in way bigger than they need to be. So that's easy fix easy fix. And you know what? For those of you out there might be like, how do you how do you launch a new redesign and not have it be perfect down here?
Hey, part of the role is you get it working. Then you know you yeah, whatever, and then you get it as fast as possible. Like for me, like getting it up to it. Do it good to it fast.
Yeah, for me, it's like getting it up then making sure all the edge cases have been found and whatever. And then, you know, next month, I'm going to hammer on some perf stuff and they'll dial this down. But it's good enough right now. You're loading the syntax RSS feed in on the homepage.
Yes, 7.5 megs. The feed is yeah. We have a TI who should use API. So yeah, obviously I have not really run the site through the page speed insights.
I'm going to be upfront about that because you got you sometimes you just got to get a launch man like this at the end of the day. Like you don't have an extra you literally didn't have an extra two days to do all this type of stuff, right? You need to get it up because you had black Friday to get it going for. Yeah, now I will.
I'll be number one getting rid of that RSS feed. This will make a good video of like here here is something that I didn't pay any attention to. And now I'm going to do it. And here's how I can get it up to whatever at the end of the day.
Actually, I did that. What am I say? Actually, yeah. I have a YouTube video years ago.
I did that. Basically, it's like my page speed is awful. Let's go through all of the suggestions that it has and see how high it can actually get it. Yeah, some of these are super easy fixes to considering I'm using Cloudinary.
It's just going to be like a tack out of the URL. Yeah, easy. All right. Next one we have here is from Concerned Citizen.
Where will we all go when Twitter implones under its new management? I love going on Twitter to interact with the web dev community and keep up to date with the latest tech trends. Well, if everything that is changing, I wouldn't prove your surprise if there's a mass exodus or if it all shuts down with Rocket Man at the helm. So I put this one in here because there's a little bit to talk about in terms of like of what's going on.
I obviously, probably both of us love Twitter. I think it is an amazing super value community. I have gained so much in my career from it. And it is very weird.
Like I've been on Twitter for probably since 2007, however many years that is, 15 years or something like that. And it's very weird to see it now in a place that has become very political. People think that your use of Twitter is endorsing something or not. Whereas like I'm just standing here being like, I just want to learn some CSS.
You know, so that's that's a bit unfortunate. That said, I don't think Twitter is going anywhere. It's not going to go anywhere. Like I don't, certainly there's lots of weird stuff going on at Twitter.
And certainly it seems like there's lots of I think very silly decisions being made. But the guy, Elon Musk, I know people don't like him, but he's not an absolute idiot that this thing is going to burn to the ground and there's going to be nothing left. Even if it does, somebody, the carcass of this website will be worth a very, a lot of money. And maybe somebody else could pick that up.
I don't even think it is going to go that far from it because of how valuable that type is. Certainly I've lots of qualms. Tweet deck is not there's lots of spam on there. But I don't think it's going anywhere.
But a lot of people are saying like, yeah, Mastodon is the place to go. And the developer in me thinks, yes, distributed, self hosted, you could send pull requests to it. It's just idealistic in my head, absolutely everything. But the type of person in me that understands social media, I don't think that that's going to be a what do you think?
I was the same thing. I was like, I just, if it when I use Mastodon, I just think this can't be the thing that takes out Twitter. It doesn't feel good enough to me. And you know, whatever that is, is probably going to be a web based platform, right?
You see some of these ones pop up that they're mobile iOS, Android app, only whatever. I don't think that's going to work. I think you need something that can be used on the web, something that is as versatile as Twitter. You know what, West, I could have never seen my space disappearing right before my space left us.
So you know, to me, I don't want to say that Twitter is not going anywhere because it certainly does suck. It sucks more now than it did prior to the musk ownership. The paying for Twitter thing, I think is just, you know what, paying for the check mark, I think that was a terrible idea. And I think we saw why that was a terrible idea very quickly.
I will personally not pay for Twitter. I would much rather not have a check mark next to my name than pay for a check mark next to my name. That is, I would pay to not have a check mark next to my name before I paid for a check mark next to my name. What would you pay for on Twitter?
That's something I bought Twitter blue the first day I came out. I said, here I am, I'm a power user. I'll pay all day long for Twitter. And like the editing a tweet helpful.
Every literally everything else, not helpful to me. And like, I'm a power user. I use it like I do. What would I do?
I would pay for TweetDeck to not suck. That's exactly what I would pay for. I would pay for tools that allowed me to categorize, manage my messages better, to save and bookmark tweets better in a way that's like organizing able to be found. Search my DMs.
Search my DMs. If I could have, like you said, TweetDeck, that was great. I would pay for that. That's something I would pay for.
And I think a lot of social media brands would pay for that type of thing too. But the whole eight bucks a month for nothing and a blue check mark to me is like, I cannot bring myself to live in a world where I would pay them to do that. I agree with you though that I think a lot of people look at the dumb choices that Elon Musk has been making and they say, oh, this guy's a dummy. And I think realistically, I don't think he is.
I think he's a lot of things that are not good, but I don't think he is dumb. And I don't think he's, whether or not the choices he's making are rational or whatever, I do think he's probably got a little bit more going on behind the scenes than what people would like to give him credit for. And he's playing a little bit of chess that we don't really understand everything. Yeah.
And he's going to wield this thing like it's a political tool and whatever. And I don't know, man, I could see it going either way. I honestly, I don't hold any attachment to Twitter beyond the fact that it has been a great place to find new information and to meet great people. If that community square changes and it's all the sudden, flip flop or whatever, I'm not going to care.
Where where that town. Yeah. Smart people sharing cool things will happen somewhere and where that happens doesn't matter. We will go there.
We will go somewhere else. And quite honestly, there's a lot of kids on TikTok right now that are not on, I can tell by doing, I'm like 50 videos in on TikTok right now. I can tell that there's a lot of people on there that don't set foot on Twitter anymore. So like, the next Twitter is not going to be a crappier version of Twitter.
The next Twitter is going to be some other platform that surfaces, surfaces interesting content to interesting people. And ideally, without having to build an audience, you know, like that was one thing about Twitter is that people spend the last 10 years trying to gain a following on Twitter to be anyone significant. And ideally, it would be like Google is good information, just surfaces to the top. Yeah.
Okay. What about if you were going to be building the next Twitter and you wanted to go ahead and just throw something up on a virtual private server somewhere, where would you do that? I would host it on Leno. Leno.com is where I would host my own.
Actually, there we go. If you do want to do Mastodon, you could just use the $100 in free credit that Leno does offering you and you can literally host your own instance of Mastodon. That is something I've been thinking about is that like, that is kind of cool that you can host your own instance of this thing. So if you wanted to host it or more likely you the web developer want to host your Node.js application or your PHP app or something like that, Leno does the perfect spot for that.
You're going to want to check it out, Leno.com.com.com. We'll sign up with that link. Thank you, Leno for sponsoring. Sick.
All right. Next question is from Jared. Jared says, how did each of you arrive at your business model subscription versus one-time payments for courses? What are the pros and cons of each approach?
Okay, Jared. So I came across my business model basically because it evolved out of the idea of having a YouTube subscription. My core strength is producing a lot of content fairly quickly. I for a long time was putting out 250 videos on YouTube a year, which is where I really learned how to make tutorial videos.
So for me, I took the idea of saying, well, I have these YouTube videos and I'm not going to stop that. So what's a way that I could take some of that pressure off of YouTube ads, which were decreasing all the time and monetize it in a way. So I had what's essentially like a pre-patreon version of a Patreon where you could subscribe to my website, which was just my YouTube content, but you could get it without ads and you could save the videos. And it was just like a nicer interface and it was organized and things like that rather than having to pay for exclusive content.
Well, it turns out that when you give a lot of content away for free online, nobody wants to pay for it even without ads or any of that stuff. So I kind of evolved that into all right now. I'm going to have a course out that's only for subscribers. And that drove our subscription numbers up from what we're very small to much higher.
So for me, it's an evolution of where I ended up. And if we're talking pros and cons, the pros are that it's a little bit more predictable. I can see when I have subscription accounts renewing, I know who renews when and what the total numbers are. And I know what to expect month over month in terms of there isn't going to be any shocking decrease in subscribers granted there could be a mass exit or something like that.
But for the most parts, I don't have to really go as hard in terms of really planning out, all right, this course really has to sustain me for an X amount of months. I'm more or less getting that month over month or reoccurring revenue. Cons are is that I have to really focus on putting content out constantly or have someone available to be putting out content. Because if you're having content that's behind a subscription with the idea that there's new stuff all the time, you better have new stuff all the time and it better be good.
So yeah, that's the pros and cons for me. Yeah, so I do the opposite, which is release single courses on their own domain name whenever I have a course release. And at the time I started, everybody was doing like Rails casts was the big one. And then every other layer of cast is another big one.
And then there was peepcode and it seemed like there was 100 people trying to start the same like $5 a month for unlimited whatever, you know? I actually based mine off of of Rails cast. That's what I based mine initial law. So same idea, I was like, I'm not going to be able to compete with that and to be able to churn out this content every single month.
And I'd rather be doing these large single purchase courses that I can spend like my beginner JavaScript.com course. I took me over a year to build it. And I was like, I want to have the course for learning JavaScript. Like it's there's obviously lots more ways to learn JavaScript.
But like, I want to have people be like, how do we learn JavaScript? Here's a course to learn JavaScript. Like that's it. This is the entire course that you can use to learn it.
You don't have to string together a whole bunch of different resources together. So it kind of just like started as a single product. And I thought, I'm going to keep doing that rather than move a lot of people told me like, no, you should be switching to the other way. Or like, why are you putting on every course on its own domain name?
But here we are 10 years later. There are lots of people even even Egghead has started doing what I'm doing for a lot of people, because they say, well, why would I do a course for you when I can just do what Wes is doing and release it out on my own, which is not true. There's a lot more than just recording a course to sell something. But yeah, that's kind of my thought behind the single course sale process.
And I've been really enjoying it. Yeah, I should also point out that I at one point did attempt to transition into single course releases before I made the plan to do like a premium content hidden behind a paywall thing. And I felt so hard at it because I chose the worst possible topic. And I think I could have had success if I would react native.
I spent, like you said, a long time, I recorded this ultimate react native course. It was super long. It was super in depth and it was super good. And not only did it not sell well, but the content became like invalidated very quickly because reactive moves really quick.
Also react native is so finicky that I was getting a ton of customer support emails because people are hitting very just typical normal things in a react native context. Oh, all of a sudden we're getting errors here or whatever. And these are the types of things that if you work in react, you know, you just stop and restart it, whatever. But like when you're trying to learn it and all of a sudden you're hitting some weird errors or you got some weird platform things and next thing you know, something changes API substantially, it just about ruined me for about a whole year.
I was upset about it. It's the only way I could describe it. Yeah. That's a good question.
Next one we have here from a Westcott Balinsky. Did I tell you the color I painted my office is called Westcott Navy? No, no, it's not a waterfall. It's not a baby.
I never forget it. People are like, what's it called? Navy? Yeah.
Oh, man, that's so cool. I cannot tell you what mine is. And it's not Westcott Navy. Actually, I wonder what the Xcode is.
West I have a website, bm.Westcottcom has every single Benjamin Moore color. Did you name it? Bm on purpose? Was that in?
Okay. It's a little laugh every now and then anyway, it's a good idea. I want to get into freelancing or have my own very small web dev company to not to try to work for the man for the rest of my life. I'm good for you, Westcott Balinsky.
But I have some concerns. Is it a good idea if I already have a career dev job? I'm also worried if I enjoy, I'm also worried if I enjoy the work, if it's a stack I don't prefer as much as that is needed. I enjoy JavaScript and TypeScript stack full stack much more than anything else.
It is just a reality that I would need to face or is it possible to pick and choose projects, especially when just starting out. Also, I'm trying to reason in my head why client would hire more expensive talent here in America where I'm from and not cheaper, but still very talented accessible devs elsewhere. I'm losing gigs to cheaper rates of real concern. All right, there's a lot to unpack here.
Should you go out on yourself out on your own? For a lot of people, they try it and they hate it because it's you got to run a business as well as do the coding thing. For a lot of other people, they've really enjoyed it. I did it for probably six or seven years of my web development life where I did freelance and I worked for all kinds of different companies.
I very much enjoyed that. The stack was always different. I was always jumping into random different stacks that were pre-made and whatnot. I feel like I have a very good appreciation for different approaches because of that.
Often you talk to people that are like, oh, nothing but the latest X, Y, and Z and everything else is garbage. I've never do that. That is not possible in the real world. You have to work within the confines of whatever the stack is.
You can't rewrite everything from scratch every five seconds. You have to be okay with that. That's something I see in senior developers a lot more than I see in junior developers is just being like, okay, well, these are the tools and the choices that are made. How do we go from here?
How do we work well within these constraints or are some of it possible to choose? The thing about the America versus elsewhere, certainly a concern, but you are running a business here. It's a lot about who you are and if people like you to hire you. It's not just about how much do you cost.
I'm going to go here and chip away at this widget for the next 10 hours. There's a lot more to that. That's the reason people pay lots of money for web development when you could likely find a very talented person for a third of the cost. You really have to work on that aspect, which is your personality, how you communicate with people, how you're able to understand business problems and show how you could solve that and turn that into code.
Networking. Yeah, networking, all of that good stuff. Chicken hands, kissing babies. If you would just want to write code by yourself without being bothered, it's probably not for you.
But if you literally think you can help businesses and other entities with whatever problems they have because you can write code, then I would say so. Yeah, I agree. I tried it too. It wasn't for me.
I did some freelance on the side. I never tried to do it as my full-time gig. But the communication stuff was too much for me really having to be my own manager of all of those things and do the tech. I was doing the designs and doing everything to me.
I preferred just getting a project dumped on my plate and say, hey, get it done by this date. I greatly preferred that. It is different, definitely different personalities that are involved there in terms of what works and what doesn't. Also, you mentioned picking the right tech for that.
I had such a big problem with that in design when I was doing freelance work. I would get really fixated on a design style that I wanted to follow. And then I'd get a client and be like, oh, perfect time to do this design style. And it would be like, not enough contemplation in reflection on, is this perfect for this client?
Picking the right thing. Oh, I just always wanted to try this style. Design. Now it's a good time to do it.
And the same goes for tech, right? Where you will have to make a choice in terms of what is the tech that works well for you and what doesn't. Now, granted, there's probably ways you can, you know, whether you're using a ghost instead of WordPress for blogs and things like that, you can tailor things to be a specific way. But there is some responsibility there to make the smart choice.
You know what else? There's a responsibility to make the smart choice in solving your bugs too. And with one of our sponsors, Century, you can have this tool that sits in your staff that reports bugs to you. It's like a little hallmark that says, hey, there's bugs here.
I found some bugs. And these bugs are affecting, you know, 100 users and you should probably live this because if you notice this number is pretty high, how many people this is affecting, and you can see that nice and easily on century.io, Century.io is a really great tool for having software that works well because you can understand exactly what's happening. You can find what errors are existing. If there are things you need to take a look at right now, or if there are things that are maybe a one-off situation, you can also find out if there's a regression introduced.
Maybe you have a new thing. I see one in mind right now that's affected one person that says invalid time value. I kind of feel like maybe a date's coming in as an all or something and I got to figure that one out. So it's only affecting one person but it just came in today.
So I'm going to hop on that thing. And I take a look at my century just about 24-7. It's one of those tools that I really, really need in my life. So if you want a tool like this to save your bacon anytime, you have any sort of code that people are using.
Head on over to sentry.io use the coupon code to tasty treat, all our case and all one word, and you will get two months for free. So thank you so much to Century for sponsoring. All right. Next question from Hugh Montso.
I've been developing for 20 years and I still don't feel senior. Does anyone else feel that way? I'm great at my job and I can get things done but I don't feel senior. That's a good question.
This is half of a coding question and half of a therapy session. I find it funny. I don't know if I would consider myself senior or not but I've been coding for 16, 17 years now and I feel like I can get most stuff done. I feel like one of the things that makes me feel senior is that I'm able to be okay with not understanding something, be okay with I don't I literally have never tried that library before but being in a spot where I say I know I can probably figure it out if I haven't like I know enough of JavaScript and coding in general that I probably can figure out X, Y, or Z.
I think that that's probably where most senior people are is that being able to do that? What do you think Scott? Yeah, it is a lot of what defines a senior dev comes like per organization in terms of like what do they consider a senior dev but it's also in your brain like what does a senior dev do? So I guess you kind of got to get past that.
You know, I became a senior dev when my boss left his role and they promoted me into his position. So at that point it's suddenly like, oh, you are the senior dev. What does that mean? Well, it means I got to do all the things that he used to do but that is a very different senior dev position than what may exist very much probably elsewhere.
I mean, it's it really comes down to like what in your mind is a senior dev supposed to do and why don't you feel that way? Because chances are you could be doing all of the things that a senior dev does somewhere else and maybe it's just updating that your brain, updating that software and your brain to say, you know what I am? I am the senior dev developing for 20 years and you still don't feel senior. I mean, you're probably just working on code problems and a lot of times what happens is is senior devs end up getting more managerial sides of things and you end up getting more responsibility in that way.
Maybe that's why you don't feel it. But at the end of the day, I think for you, if you want to feel more like a senior dev, just for confidence reasons or otherwise, what would be helpful for you would be to identify what characteristics you think a senior dev has that you're lacking and just gain those characteristics or start doing that stuff. As a 20 year developer, you probably have quite a bit of senior where you are where you can just start declaring things as such. If you are the senior dev, you have a wealth of knowledge, right?
So just again, think about what it is that makes a senior dev in your mind and figure out how you can get those things. Next question here is from Kyle. How do you manage notifications between various apps that are installed on your devices? I have iMessage and email and other apps, multiple devices, and I feel like it's an uphill battle to manage this stuff.
I'd love if you had any frameworks, third party tools, or mental models on how you handle notifications, sincerely and easily distracted developer who has to eventually snap out of a flow state. All right, here's my rule for notifications. I have them all turned off just about all the time. You know, I leave my iMessage notifications on after 95.
So 95, I have my work notification setup. Now, I know Nick was upset that we were just talking about iOS stuff. I understand Nick, I was an Android user for a very long time. But in iOS, you have these focus states now where you can say do not disturb is more than just do not disturb.
You can have a personal work or sleep or whatever. You can have all these new different focus states and they sync across devices. If you're out there, I use these things like crazy. I have them scheduled that they turn on at turn off different times.
So for me, during my work day, my iMessage notifications are turned off unless I explicitly turn them on. That's not to say that I want them off all the time. Sometimes I do need them on if I'm expecting a call for my wife or something. You know, I'll turn them off.
But for the most part, my default is almost always turn off all notifications. I absolutely never want to get a notification from a social media app. Never. I do not want you notifying me for any reason.
And email, sure. But even then I can check my email on my own schedule. I can determine what to do that. I'm a big boy.
So for me, I always venture into turning off all notifications, except for calendar notifications. I would like a button that makes calendar notifications larger so that I do not miss appointments. I have a policy or process where notifications are just handy. And if I miss a notification, it's not a big deal.
I don't have to process them. Same thing with tweets. I dive into the Twitter stream when I see it. And I don't worry about the stuff that I miss.
And same thing with my downloads folder. Anything in my downloads folder, I should be able to delete my downloads folder at any time. And there should be nothing important in my downloads folder. And if it is important, you got to move it out and process it somewhere.
So that's good. I also don't have notifications on for literally any social media applications. I don't get a lot of iMessage notifications. Just pretty much just my wife, a couple other people here and there, some family and friends.
I have my Do Not Disturb set to turn on when I am recording. Just automatically I hit a key on my keyboard. It starts recording and turns Do Not Disturb on. And I find that to be very helpful so that I don't accidentally go, what was that?
What was that? Right? That's about it. It's just stop caring so much.
I guess, like, there's you have to, I guess, have Slack. If you work on a team, you have to have those types of things on. But fight back. Fight back for your time.
Fight back for your being able to not be distracted because then you are going to produce really good stuff at the end of the day. And schedule that time. Schedule work time for yourself. If your company is like calendar based and people are looking for open time in your calendar or whatever, go on Do Not Disturb or go on.
Like, I'm scheduled work time and shut that stuff off where you absolutely can with the ability to have maybe overrides if somebody needs to override somehow or ping you directly or whatever. You can tell your coworkers to say, Hey, I'm going to be on Do Not Disturb but send me a ping or like a at if you really need me. Otherwise, I'm going to be like heads down in my work and just turn off all other notifications. Well, you talked about your files and stuff last.
Here's an app that I like and I used for a little bit but I haven't, I didn't buy it and I'm actually regretting that. Now I think I'll buy it. And it's called Hazel. Have you ever heard of this app?
I think so. Yeah. Yeah. This is basically a small app for Mac that sits there and you set up rules.
Like, is this a photo in my downloads folder automatically move it to this folder within my photos folder? Is this a this on my desktop automatically do X, Y, and Z to delete this every few minute, like clean up my file system? So it's a really cool app. I like that idea of automating those types of systems.
Have you I wonder if you can do this in the shortcuts app now? I wonder if you can. Yeah. You know what I need and this just makes me so mad all the time is fricking iPhone has a hike H E I C and whenever you airdrop a photo from your phone to your desktop, it is the hike and I get why it is and I'm not going to turn that off.
People are like, Oh, just turn it back to Jpeg. No, I like all the features of it. But except for the fact that I can't use that photo, I can't just drop that into a and anywhere, literally can't use it. The worst part for me was when I had an Apple support call and they're like, Can you take a picture of this?
I'm like, I took a picture and I'm like, your chat does not support your own image format. What am I supposed to do? Like, I have to convert it now before giving it to you? I mean, that's like, if that's a format we're going to use, like let's update the world to use that.
Yeah. Yeah. Anyway, so I made like a right click. You can right click convert to Jpeg.
I made like a a what is it? What's the Mac action or something? Yeah, action. Yeah.
And it works great. But I hate having to click it. So wouldn't it be cool is if a H E I C file drops in my downloads folder, immediately convert it to NPMG. Mm do that.
That seems like it would be a minor improvement in my life. Yeah. Right. That's what it's all about.
Right. Just enough minor improvements. I actually, recently, I took your idea of those like small little tubs, Tupperware tubs or whatever for campus. And I was doing it last night in man, my storage area looks really nice.
And I got all my cables organized. Oh, good. It's like, since I since I stick like that, I've had like three or four times where Caitlin comes in and says, I need a splitter. I need a cable to charge this thing.
And I'm just like, well, I could just roll back, open the door and I have literally everything. It's so nice. I love it. I need my whole life to be that organized.
I know honestly, I need a label maker now because I didn't have any masking tape. So I like put everything in its tubs. And then I like was like, Oh, wait a second. I had to open all these tubs to figure out what because I got like frosted tubs.
Oh yeah. So let's talk about label makers for just a second is let's do that. You actually, I have to just like regular label makers like you put the tape in and it prints it out. But now they have you know how I have that like label printer for like shipping labels and it's but they sell tiny little thermal.
Right now. Yeah, but it's not just paper, but like it has like a glossy top and they're just tiny little thing and you can type in your phone because that's the thing I hate about label makers. Like it's used the keyboard there. I was like, I'd rather just type it in my text editor and send it to the label maker.
So I'm been looking out getting one of those. It's called a there's like 800 of them on Amazon right now that I just since you said that I'm looking at them. There's yeah, there's there's like a standard one and you can buy like fun stickers because also like our kids, we put like we buy these labels that say boss kids and we put them on all their water balls and everything like that. Yeah, yeah, yeah.
This is a hell with that. Yeah. I'm talking about that. I want to go there's like 50 bucks or something at 2023 26 26.
What's it called? What I'm looking at right now is Jaden's JADNS label maker. There's like a big one out there that is like tons and tons of labels for it and I was like, I want that one. Printer Nimbot Nimbot NIIM BOT and it's like a handheld thermal printer.
It doesn't have the like Oh, this looks very similar to the other one. I was like, yeah, it's like the exact same. I think it's yeah. Oh, that's fun.
I kind of want this. Maybe I can't. I'll ask for this. Yeah.
Here's a here's a fun story. When I used to work at Target, when I was 16, I worked at Target and they left the label maker unattended next to the walkie talkies and it was like, I don't know why I chose to do that. I had like a bunch of like target pranks, like like like non harmful pranks that I was doing while I worked at Target. Yeah.
And one of which was like naming the walkie talkies. So like every single day, you know, there's like 40 walkie talkies everybody employees got one you just pick one out you sign it out, whatever. And every single day I was in the the back part where you sign in, I would look at the label name and I would just write a name like any sort of name like a name was preferably of somebody who did not work there. Like, you know, Michael or something.
Yeah. And then I would print it out and then I would stick it on one of the walkie talkies and eventually named like half of the walkie talkies and then they had to they couldn't catch me. That was actually the one big thing. There's no cameras there.
They had to send out a message was like, whoever is naming the walkie talkies, can you please not naming the walkie talkies? That did not stop me. I continued to do it. Oh my gosh.
There was no way they could catch me. It was very funny. Another one of the other funny thing I was submitting really bad poems to the Target newsletter, the employee newsletter under a pseudonym intentionally bad just to see if they would publish them and they did every single time. And I feel like I was just wanted to know what other people reading those poems were thinking.
Meanwhile, just looking at it and just like being like, oh, this is so funny. I can't believe they published this to the like what 20 Target employees reading this thing. All right. Just a little side drag there.
Let's talk about fresh books. One of our sponsors today, they got a new offer for you an exclusive offer. You get 90% off for four months. You can also try it for free with no credit card required at freshbooks.com for it's less than tax.
What are they? They're the ridiculously easy to use simple and intuitive cloud invoicing, expensing, time tracking, project management, payments, reporting, accounting, all of that good stuff. It's awesome. I've been running my own business on it for 11, 12, I didn't even know since I started business as a baby.
You're going to want to check it out freshbooks.com for such syntax. Thank you for sponsoring. What are some, this is a question from an anonymous user. What are some people using it to test their node apps these days?
99% of the time you're going to see just g g g j e s t dot j e s t j s dot IO. This is like the de facto node testing library nowadays. They're you know, in the past has been many others. The test the ightest.dev is kind of an up and coming option here because it uses esm.
It's super goober fast. It uses node V. It's very good. And in my opinion, it's really easy to swap out.
At least it wasn't our code base. So you want to talk about rewriting things? I just swapped from just to V test with like not even changing anything. So I got faster tests out of that.
Yeah, we tried to move to the V test, but we still have a bunch of common JS and V test very much. It will not work. So if you have one single dependency that is common JS, it won't work, unfortunately. Yeah.
Yeah. Other ones, mocha, chai, tape, those are extremely popular still in the node world for running tests. And they all how pretty much just do the same thing. They're just test running, right?
Yeah, you're kind of just swapping performance out at the end of the day. Yeah, that's why V test like you're like, Oh, what's the? Why would I use the over? Literally nothing.
It's faster. That's it. Yeah, it is not it's uses the entire just API. It's exactly the same.
So you literally just take all of your just test and plop them in over every test. All right. Next question from Clem asks from London. What are your thoughts on the tan stack router?
I'm not sure if I should use it over react router v6 with types from e-commerce store. Seems like it's inspired by a mix of interesting sources TRPC remix, Shikani. And next yes, what's Shikani? An artificial narrowing turn or road on auto.
What's this? Shikane. Shikane? Is that you said?
Shikane? Probably not what I said. Shikane Google just told me the pronunciation was simple safe router for react and TypeScript. That's cool.
So I use in my personal course platform, I use react location, which is I think the router before the tan stack router. We had him on the podcast. We should probably have him on again because it seems like he just he doesn't flop. He just releases amazing stuff all the time.
But I use react location in mine. And it is fantastic. It's a really simple API, really nice to use. And then it seems like he's taken that and made it next step, which is it's language agnostic, which we're starting to see that a lot, which is just like people are building things that work in JavaScript.
And then there is a thin layer of adapter for all the different frameworks. So there's an adapter for React. This is the tan stack router seems very, very early. All the docs are or half the docs are to do and coming soon.
But it has first class search params API. That's not always bugs me is you have to pass the query. In to the URL search params constructor and then parse it out yourself. That always annoys me like, do that for me, please.
I know what standard, but come on. It has a hot this is really cool 100% inferred TypeScript API, meaning that I honestly think that this is how a lot of TypeScript libraries are going to work in the future is you just use the friends. You don't type anything and you have 100% type safety because of all the inference, which means that it will it knows what the types are without you having to explicitly type them. And then it just says building caching, suspense, like route transition, file splitting.
I think this is a really neat high level router that knows about things like code splitting, fetching data, caching and whatnot. So would I use it? It seems pretty early. I'm not sure that I would bet the farm on it just yet, but knowing the track record of the stuff that Tanner linsey puts out, I would probably say it's going to be very good.
Yeah, I'm with you. I'm here for options here. I do think it's probably is good and going to be good. I just don't have any room for it in my life.
If I'm going to be writing a react site today, I'm picking a remix 10 out of 10 times. If I'm going to be writing a site that I don't know, maybe what friend in front I want to be picking Astro. I don't know. Astro remix to me, I'm aware it's that but in all honesty, I'm probably picking spell kit no matter what anyway.