Whiskey Web and Whatnot

A whiskey fueled fireside chat with your favorite web developers.


111: Adaptability, HTMX, and DivOps with Jonathan Creamer

Show Notes

Jonathan Creamer, Senior Software Engineer at Microsoft and a tech enthusiast, is carving out a niche in the world of front-end tooling. He's even coined the term "DivOps" with the help of his team. Jonathan is passionate about creating and experimenting with new tools that enhance developer workflows. He is on a mission to reduce the reliance on YAML configuration in CI/CD pipelines by converting repetitive tasks into code. For him, it's all about making these processes more efficient, maintainable, and testable.

Jonathan shares one of his core beliefs, which is the importance of staying adaptable in a tech career. He encourages developers to stay open to new languages and concepts. His advice? Invest time in specializing for a few years to gain an in-depth understanding, then move on to the next thing. According to Jonathan, the hallmark of a senior engineer is someone who continually broadens their skill set.

In this episode, Jonathan talks to Robbie and Chuck about hot takes on popular tech topics, the world of front-end tooling, and the importance of staying adaptable as an engineer.

Key Takeaways

  • [01:26] - Introduction to Jonathan Creamer.
  • [04:38] - A whiskey review: 13th Colony Southern Bourbon Whiskey
  • [16:58] - Tech hot takes.
  • [30:18] - How HTMX will change the way apps are built.
  • [37:08] - Jonathan talks about how he came up with the term, “DivOps”.
  • [55:27] - If Jonathan wasn’t in tech, what career would he choose?


[30:51] - “There’s no way in Office we’re going to decide, let's get rid of the 20 million lines of React code that we have in our code base and switch to HTMX.” ~ Jonathan Creamer

[35:36] - “There are so many ways to solve problems on front-end development. There’s just no reason to bash anybody for anything.” ~ Jonathan Creamer

[47:51] - “If you’ve been writing front-end code for 10 years and you don’t know how back-end works still, I would imagine you probably do.” ~ Jonathan Creamer


Connect with our hosts

Subscribe and stay in touch

Top-Tier, Full-Stack Software Consultants

This show is brought to you by Ship Shape. Ship Shape’s software consultants solve complex software and app development problems with top-tier coding expertise, superior service, and speed. In a sea of choices, our senior-level development crew rises above the rest by delivering the best solutions for fintech, cybersecurity, and other fast-growing industries. Check us out at shipshape.io.

--- Send in a voice message: https://podcasters.spotify.com/pod/show/whiskey-web-and-whatnot/message


[00:00:05] Robbie: What's going on everybody? Welcome to another Whiskey Web and Whatnot, your favorite podcast about Whiskey, Web and Whatnot, with your hosts, RobbieTheWagner and Charles William Carpenter III. With our guest today, Jonathan Creamer, who I hear loves milk.

[00:00:24] Jonathan: Uh, that is a, a, a false statement. Uh, I, I switched to oat milk a while ago. I prefer it way more in my lattes. Uh, yeah. So, but, uh,

[00:00:36] Chuck: so, I mean, is that still considered a creamer? Even though you are?

[00:00:40] Jonathan: um, we do oatmeal creamer now as well too, but that's a good question. But I mean, creamer has been non-dairy for a while. Like if you go up and down the aisle, it's been non-dairy creamer, so it doesn't have to have milk in it, I guess.

[00:00:53] Chuck: I don't want to go too far down this path, but don't you find that to be an oxymoron a little bit?

[00:00:57] Jonathan: does, I guess. It's maybe

[00:00:59] Chuck: No cream whatsoever.

[00:01:01] Jonathan: it's like the Kleenex sort of of like, it's just like a brand. It's just creamer. It's just creamer, no matter what it's like made out of. I don't know.

[00:01:08] Chuck: yeah, yeah, like the Hoover used to be the vacuum regardless of brand. Hey, want me to Hoover this?

[00:01:13] Jonathan: Yeah.

[00:01:14] Chuck: That was just in the fifties when I was growing up, but, um,

[00:01:16] Robbie: Yeah.

[00:01:18] Chuck: anyway.

[00:01:18] Robbie: the internet. Anyway, um, yeah, let's, let's actually go back to what we're actually here for. Do you want to give a few sentences about, uh, who you are and what you do?

[00:01:27] Jonathan intro

[00:01:27] Jonathan: Yeah, sure. So Jonathan Creamer and I'm a senior software engineer at Microsoft. I'm a company man. I love my swag. Call me Swagamemnon. I literally bought my Ford Fusion in 2011 because it had Microsoft Sync in it. So it's like how long I've been wanting to work for this


[00:01:45] Robbie: Oh, wow.

[00:01:45] Jonathan: so yeah, I've been my third year at Microsoft.

I guess it'll be three in February. And, uh, I do JavaScript tooling stuff.

My team at Microsoft is called OneJS, and we maintain the engineering system for, uh, building Office web, basically. And lots of different little widgets you find across the Microsoft 365 suite. So we have this big monorepo with about, I don't know, 700 or 800 engineers monthly contributing to it.

I'll go away from my computer for two days and do a Git pull and have a thousand commits, like it's just that much. It's a lot going on. So it's cool. My team is spread kind of across the world. , I'm in Nashville, but I've got folks in Redmond, obviously in Vancouver, all the way into Oslo, Africa, India is team of about 50 engineers that maintain our system.

I've been doing this here for, for two and a half years. Before that I was Eventbrite doing something similar for an infrastructure. , I really got into developer tooling over the last, I think, like five, six years. I started really enjoying engineers being my customers rather than relying on Google analytics to tell me if people like my stuff.

You know, I can ask developers how they like my stuff. It's just very fulfilling. So yeah, so to me in a nutshell, I guess.

[00:03:00] Chuck: Nice, nice. And you're remiss to leave one item off of your, uh, resume. Which is... Yes, which is the former interviewer of Charles William Carpenter, the

[00:03:11] Jonathan: that is true. Yes. If I keep going back in my employment history, there was a long stint I had at a travel company called Lonely Planet. , that was actually where I fell in love with React. Before that I was doing Backbone and jQuery. And then I started to switch from React into developer tooling.

And yes, I guess during my tenure there. I interviewed you, which is what you said, and I remembered it when you said, as soon as you said Nat Geo, that was, I think, what really kicked it into my mind. I was like, Oh yeah, I remember the Nat Geo guy. I don't know what happened after that. We know we were hiring a lot of people back then, which is obviously why you forget, you know, all that stuff.

But that is so funny when you said that. I've told everybody that, yeah, I'm on this podcast. And I guess I interviewed one of the hosts, and I completely forgot and felt so bad about that. But no, it's

[00:03:57] Chuck: big and small worlds. Well, it wasn't your fault. And I made it all the way through that process. And we, you can ask questions or not, if you want. It doesn't matter to me. Uh, but I, I opted out of

[00:04:08] Jonathan: I see, okay. Well, I wanted you to be there, if I recall correctly, so, I'm just, full circle, I guess. Here

we are. All together now.

[00:04:16] Robbie: Which brings us to our next question. Can you invert a binary tree for us real

[00:04:19] Jonathan: Uh, I can, if I have Copilot enabled in my, uh, editor, and I can just, like, write a comment and say, write me a, uh, a binary tree, and it can just do it. Heh

[00:04:28] Robbie: That's fair enough.

[00:04:29] Chuck: that's true. Chat


[00:04:30] Robbie: All right, Chuck,

[00:04:31] Chuck: for us.


[00:04:33] Robbie: the whiskey we got today.

[00:04:35] Whiskey intro

[00:04:35] Chuck: Well, Robert, our whiskey today is the 13th Colony Distillery Southern Bourbon, uh, 13th Colony Southern Bourbon, , 95 proof, aged four to six years, uh, a mash bill of 70% corn, 21% rye, and 9% malted barley. they are based in Americus, Georgia, which I thought was kind of cool.

And I couldn't get any clarity as to like, if Americus, yeah.

[00:05:01] Jonathan: Americus.

[00:05:02] Chuck: Yeah, Americus. So, anyway, uh, and it kind of looks like the birthday bourbon,

[00:05:07] Jonathan: It does. I wish it was, uh, but this I'm sure is going to be just as good.

[00:05:12] Chuck: we don't have that kind of budget right now, so. Maybe, uh, Microsoft should sponsor this

[00:05:16] Jonathan: Oh, there we go.

[00:05:17] Chuck: Then we

[00:05:17] Jonathan: Let's see what we can do here.

[00:05:19] Chuck: you know,

[00:05:20] Robbie: we'll say good things about TypeScript, we promise.

[00:05:22] Jonathan: He

[00:05:23] Chuck: you say good things about it anyway.

Uh, yeah, when you take a look at the, I mean, like, Microsoft gets a bad, bad rap, I think, on the long term, in some ways. Anyone who had to deal with Windows and IE battles kind of has a me about it, but they've done a lot of good stuff for us.

[00:05:38] Jonathan: Oh yeah,

[00:05:39] Robbie: yeah, Chuck, Chuck can be quoted from an episode saying that Microsoft are the purveyors of everything terrible on the internet or something like

[00:05:48] Jonathan: was laughing when that tweet came out and I was like, Alright, this is going to be interesting. But hey, no, it's cool. It's cool. I can understand.

[00:05:55] Chuck: I said what I said.

[00:05:56] Jonathan: Hey, we all have PTSD from IE6. It's okay. We can all, we can all move past that together. Like,

[00:06:01] Chuck: Yeah. And it was part of, you know, maybe I shouldn't admit this openly, but I certainly way back in the day when I would build my own computers and stuff, I may or may not have paid for copies of Windows, and then would complain when they would break often.

[00:06:14] Jonathan: Yeah. I mean, I had a long stint, uh, on Mac as well, but to be fair, like, I work at Microsoft, but this is my work provisioned M1 Mac. I use it a lot. And this is my iPad Pro that I take Teams meetings on all the time. So, I get to use whatever I want. But I also do like Windows 11 a lot, so I'll admit that.


[00:06:38] Chuck: It seems okay. Yeah, it seems okay.

[00:06:40] Jonathan: Ahem.

[00:06:41] Chuck: we'll put a pin in that. Let's come back to some Microsoft things. I don't only want to shit talk some things, but Teams is the fucking worst. Okay.

[00:06:49] Robbie: Oh God.

Anyway, this whiskey, um, it smells a little like, uh, like powdered sugar to me.

[00:06:57] Chuck: I'm getting a little corn syrup. I'm getting a little corn syrup on my... But I've had some allergies this week. It's been raining here, believe it or not.

[00:07:05] Jonathan: Where?

[00:07:05] Chuck: I'm in the

[00:07:06] Jonathan: Phoenix. Okay. Yeah. Yeah. That is crazy.

[00:07:08] Chuck: Yeah. There's, uh, what they call a monsoon season. Other places would just call it rainy season. But, uh,

[00:07:14] Jonathan: Oh yeah.

[00:07:16] Chuck: Yeah, uh, maybe I'm getting a little cola. Because I feel like I'm getting some corn syrup, but maybe it's a little more cola ish. gonna

[00:07:24] Robbie: I'm tasting some mango.

[00:07:26] Jonathan: I have a little caramel maybe. I will

[00:07:28] Chuck: Yeah, I could...

[00:07:29] Jonathan: like I'm really bad at the, I have, as you can see, I have a lot of whiskey behind me and I know which ones I'd like, but I don't necessarily always know how they taste, but I know what I like. If that makes sense,

[00:07:41] Chuck: Yeah, yeah. Well, this is all a made up language anyway. I mean, all words are made up, but, uh, in particular, in a sign for this descriptor, is just us trying to come up with flavor words that we can sort of agree

[00:07:55] Jonathan: hmm. I think, after listening to the D'Arles podcast for so long, I realized what I need to do though, is I need to read what the flavor notes of the specific whiskeys are, and then kind of learn how to like, sort of like, use their story points, like do them relative to each other. Like this one says it had a lot of vanilla.

Maybe this is what vanilla is supposed to taste like in a whiskey. Yeah.

[00:08:14] Chuck: right, right. That's whiskey vanilla versus regular vanilla. So, okay, I'm getting a little, like, flat cherry coke,

and then a finish that has a slight lemongrass to me. It's pretty light, but I'm getting a little, like, Lemony, lemongrass kind of you know, how like lemongrass almost has like a windex like, you know thing quality


[00:08:34] Robbie: Like a lemon verbena

[00:08:35] Jonathan: Did you say how long this was aged?

[00:08:38] Chuck: uh, they said four to six

[00:08:40] Jonathan: I could see for, it's got a little bit of a young taste, but not as, some, some, like I can tell when it's like, just came, like four years, they're like the bare minimum.

[00:08:50] Chuck: Yeah,

[00:08:50] Jonathan: not that, so they've moved past that stage.

[00:08:53] Chuck: And with such a high corn mash bill, if it was just for, I would say you're going to get like a corn bomb, but you're getting a little more of the sugar syrup, like caramel side of it. So I'd say that that tells you that's, you know, maybe five or six years. It does lack some depth for me though.

You know, like I'm getting just these flavors here and then it kind of just goes away. 95%, I don't feel like it's got a lot of hug either.

[00:09:20] Jonathan: hmm. I can see that.

[00:09:21] Chuck: I'm gonna give it one more taste and then I'll set up to your listener, because there's one, um, the, uh, tentacle scale

[00:09:29] Jonathan: Yes, the Centical Scale, of course.

[00:09:31] Chuck: Yeah, I don't know, I'm kind of sticking with it. I'm still getting a little lemon citrus finish, a little cherry cola start. Not bad. I've maybe, we'll see how it opens up. Alrighty, so, dear listener, as, uh, you may not know, we do a very simple, uh, we are, Developers, so we can do a zero based scale. Zero to eight tentacles now are your options.

Um, because hey, we're clever and an octopus has eight tentacles. So zero or one being horrible, I don't want this anymore. Four being like, middle of the road, not a bad thing. , and then eight of course being amazing. I'm gonna clear the shelves every time I see this. , and clear the shelves is like a little whiskey term of...

That's amazing. I found, like, the best deal, the greatest thing, they've got eight bottles, I'm taking them all. So, uh, we'll start with Robbie. Let him do him.

[00:10:23] Robbie: I'm gonna actually give this one a seven I think because I don't exactly know why but in terms of bourbons I'm not usually a good like a big bourbon fan Like I write like rise and spicier stuff more but this has a lot of different flavors going for it And I don't know. I'm just feeling the seven

[00:10:40] Jonathan: I like it.

[00:10:41] Chuck: You do you. Jonathan, what do you think?

[00:10:43] Jonathan: I was gonna go 5, now Robbie's swaying me a little bit more towards the 6, but, uh, but I do love bourbon, and I have a, I have about, probably, 60 or so bottles in my house, and so like relative to the others that I, the other 59 now, uh, I think it's still good, it's, I would def, I can't wait till, I'm gonna keep sipping on it for sure, and maybe I would buy another bottle one day, I think I would like to share it with a friend and say, hey, look at this really cool, I think, I think I like the bottle and the presentation so

much, and sort of the story of it, that I might even go to six for that reason alone, just to like keep it kind of on my shelf.

Because it's gonna draw, it doesn't look like the rest of the things. It's like, got a different look to it.

[00:11:26] Robbie: Yeah takes up double the room though

[00:11:28] Jonathan: It does take up a little bit more room. But, but then that, it's like a conversation piece, you know? It's like, hey, what is that thing? I need to try that thing.

[00:11:35] Chuck: Yeah, that's a pretty good point. I do like the story. I do like the bottle's shape, and I would be interested to try some of their other expressions, because I believe there were a couple of options. There's like a double oaked one and something else, and I think something like that might bring out some additional, like, flavor profiles for me.

I'm gonna go with your original, like, It is kind of a five for me. I can't recall the cost. It wasn't like inexpensive, but it's not like crazy. I don't know. It must've been between 50 and 70 bucks. I don't know. That'd be a pretty good guess. That's like all new distilleries basically. Everything's 50 to 70.

So there's no like entry level, you know, real thing into it. So I'm always a little annoyed with them around those things. But yeah, a decent story in general. Appreciate that. Like. there's a lot more players in the space trying to push whiskey in different areas and experiment with it. And so who knows, you know, where that goes over time.

But, uh, so for those reasons, , and it's not bad, but it's, it, I can't see it yet standing out for me where I'm like, Oh guys, have you had this yet? Because that's, it's really good. Um, so it's a

[00:12:41] Jonathan: there's a store down here near me in Spring Hill called Elixir and I'm in their Facebook group and they're always posting about stuff and they've posted about the cask strength one and it's a green bottle I could see that being kind of interesting sometimes when they cut it it's like you cut a little too much of the flavor out there like maybe at a higher proof I might like it even more

[00:13:01] Chuck: Yeah. I do like that. I want to get, like, the mash bill and, like, everything they were thinking of when they put it in the barrel initially. You know, I really, I'm always interested to try it in that way, so that's one of the biggest reasons. And cast strength gives you so many more options, too.

Because it's high proof, you can kind of take a little nip then, and you're like, if you add a few drops or a cube, you're not, like, totally crushing it down, um, and making it too watery. So, so I actually prefer that, too. So it would be interesting to try more of

[00:13:28] Jonathan: I generally love cask strength or foolproof or whatever anything like it's funny when I try like an Irish whiskey or even like a Jack Daniels or something it's like this has no there's nothing to it it's like what am I even I'm like I don't know if I've just burned all the flavor off of my tongue or something and I can like

[00:13:45] Chuck: it could be that.

[00:13:46] Jonathan: whiskey now but.

[00:13:48] Chuck: I don't, I don't know if you have the same, uh, uh,

heartburn issues that

I do. Yeah.

[00:13:52] Jonathan: I, I don't have, I have a lot of harpoon issues, but whiskey is actually not one of the things that does it. Only tomato sauce. That's what, that's what nails me bad.

[00:13:59] Chuck: Well, it sounds like you got a few more years of just chugging the, the hard stuff and then we'll see where that lands. But, uh, yeah, I mean. Cast strength I think is a very interesting way to try like a new distillery and I, we're, we're beholden to what certain places online will mail to us or what Robbie can get as his local ABC, unfortunately, because he decides to continue to pay taxes in the state of Virginia.

[00:14:25] Jonathan: I see.

[00:14:26] Robbie: Lots of taxes.

[00:14:27] Chuck: Yeah.

[00:14:28] Jonathan: Moved to

Nashville, it's way

[00:14:29] Robbie: them.

[00:14:30] Chuck: We've been to

NashVegas. Yeah. Yeah. Yeah. Well, I I've obviously been

[00:14:36] Jonathan: Well, you have obviously been

[00:14:37] Chuck: I came, yeah. Well, Franklin, but also Nashville. Yeah. Um, right before the pandemic, right? Or something. Uh,


[00:14:45] Robbie: during


[00:14:46] Chuck: during,

oh yeah. We're


[00:14:47] Robbie: everyone got vaccinated, like, and we felt safe for a little

while, it was like during that


[00:14:52] Jonathan: you guys


[00:14:52] Robbie: we're invincible.

[00:14:54] Jonathan: Or what'd you do in NashVegas?

[00:14:56] Robbie: Uh, we,

where did, I forget the place we stayed. We stayed in like the uh,

[00:15:01] Chuck: The old train station.

That's a

[00:15:03] Jonathan: Union Station.

[00:15:05] Chuck: Yes. That place is cool. Like, historic buildings. Very cool. Obviously, spent a little time on the main, main drag. And we went to, uh, yeah, we went to, um, uh, Kid Rock's

[00:15:15] Jonathan: Mm hmm. Mm hmm.

[00:15:16] Chuck: feels like a daytime place to be. And then a couple, uh, oh, and the rooftop of Justin Timberlake's place.

Yes. Yeah, went up there, that was fun. And then we, there was like this uh, place near us that had a bunch of games, and it was like bring your own food, and they had drinks there, and they had like the mini bowling

[00:15:34] Jonathan: Yep, that's Pins Mechanical. I was literally there this past weekend for my anniversary. It's an awesome spot.

[00:15:40] Chuck: is, yeah, it was a lot of

[00:15:41] Jonathan: Yeah, yeah, yeah. Uh, Nashville has a good new distillery, too, called Nashville Barrel Company, and they're starting to pop up in other areas. I saw Nashville Barrel Company in San Diego when I was out there in July, so look, look for Nashville Barrel Company stuff.

They're usually, single barrel picks are just really

[00:16:00] Chuck: I was gonna say, do you know anyone in Nashville who would mail me a bottle? Maybe?

[00:16:05] Robbie: mhm, haha,

[00:16:07] Chuck: We went to Greenbrier. We did a tour of

[00:16:10] Jonathan: Greenberry is good, yeah,

[00:16:12] Chuck: Yeah, we liked


[00:16:13] Jonathan: different little ones popping up. Leapers Fork out in Franklin, uh, is another one that's just, and they actually just opened a new, brand new place called Stable Reserve in downtown Franklin on the main strip, so like, we've got a lot of little distilleries popping up.

But Nashville Barrel is one of my favorites.

[00:16:28] Chuck: Okay,

[00:16:29] Jonathan: hook you up for that, for

[00:16:30] Chuck: okay. We should, yeah, we should, uh, check it out. I mean, I would check it out personally and we could even do it on this podcast.

[00:16:37] Jonathan: Yeah, I might have to come back for that one, I

[00:16:39] Chuck: Yeah, there you go. You'll be evangelizing. Then it will be sponsored by both Microsoft and

[00:16:44] Jonathan: Nashville barrel. Company.

[00:16:45] Chuck: Alrighty. So



[00:16:47] Robbie: to keep going.

[00:16:48] Chuck: Yeah.


yeah. Uh, alright, well let's dive into a few hot takes.

Although I, I found, uh, a lot of tech Twitter to be somewhat lukewarm over the last week or so. I had a, a thing that was interesting this morning, but I'm getting older and I forgot things if I don't put it in notes. So, you know, it'll be what it

[00:17:07] Robbie: Is

this, is this even a thing that can be compared? I mean, you can ask this one.

[00:17:12] Chuck: Yeah, I know. Well, there's a lot of talk about the first part, but then, you know, I'm just tying it into him personally. It's just called personalization, Robbie. You should care about your

[00:17:20] flutter vs coldfusion

[00:17:20] Chuck: craft.

so what do you think? Flutter

or cold fusion? You had to choose one to use for the rest of your life. Flutter or cold fusion?

[00:17:27] Jonathan: I would, I mean, I got my start with ColdFusion, so there's, I would go write some, some, uh, ColdBox MVC framework and write some CFCs all day long.

[00:17:38] Chuck: There you go. See, that's a hot take.

[00:17:40] Jonathan: Oh yeah, it's still a thing. It's expensive though, man. God, I like got an advertisement for Adobe ColdFusion the other day. It was like ridiculous what they're charging for it, but I did really like it back in the day.

[00:17:51] Chuck: Interesting. I think you're the first person I've heard that, uh, that doesn't do it currently that still, that liked it.

[00:17:57] Jonathan: I loved it. Well, I wasn't doing like your typical just like CF dump, CF calendar, CF all the things thing. We, we used a, an MVC framework back in the day called ColdBox and did like, you know, controllers, models, views, and then did jQuery on the front end. And so it felt like any other backend way to query a thing.

And, you know, we had DTOs. It was almost like Java, ColdFusion, and then BackboneJS, jQuery on the front end. So. And this was 11


[00:18:26] Robbie: is back now.

[00:18:27] Jonathan: Did it ever go away?

[00:18:28] Robbie: It's a thing.

[00:18:29] Jonathan: I,

[00:18:29] Chuck: true.


guess it

[00:18:30] Robbie: it did. It went away.

[00:18:32] Jonathan: Well, we stopped using it, but I don't know that it went away.

[00:18:35] Robbie: Yeah. True. True.

[00:18:38] Chuck: There's definitely places. I, I know it exists in, in places here and there.

[00:18:42] Jonathan: I love jQuery.

[00:18:44] Robbie: Yeah.

[00:18:44] Jonathan: Still.

[00:18:45] Robbie: So, uh, tying back to Microsoft with TypeScript,

[00:18:48] Jonathan: Yes.

[00:18:49] inferred vs explicit types

[00:18:49] Robbie: do you, uh, use inferred types or explicit types?

[00:18:53] Jonathan: go mostly inferred, uh, and then make interfaces to make it, like, easier to discover, like, what my intent behind a type might be.

I'm definitely not one of these that puts, like, you know, the return type and const this colon string, like, I'll use infer most of the time. But if I have some options object that's getting to be too gnarly, I'll, I'll make that a, type or an interface or something and stick it out in the export it so you can find it and know kind of what my head was at with that type or whatever.

I think people can go very verbose and I don't really like that so much. So maybe kind of a middle ground, like, infer the easy stuff. And then when you start getting into objects flying around, I'll probably type some stuff and use some cool generics and all those kinds of fun things.

Try to use some of the tricky, fun, magic types.

[00:19:46] Chuck: Yeah, there is definitely some

[00:19:48] Jonathan: I was reading about the infer keyword today. I still don't understand how it works, but it looks cool though. You can like magically

infer. Yeah, there's like this new ish thing. I don't even know. I read an article about it this morning and I still can't explain it. But you can like magically figure out what a type inside a generic is.

They call it unwrapping a type using the infer keyword. Um,


[00:20:11] Robbie: Oh,

so it like takes the thing that you pass through and then like grabs it

[00:20:16] Jonathan: Yeah, yeah, you can infer the return type of a thing through a generic. Like you use it with the extends, in combination with the extends keyword, you can infer something that you extended. Something like that.

[00:20:28] Chuck: Oh, interesting. Okay.

[00:20:29] Robbie: Yeah, I don't get too complex. I'm learning new stuff every day, but definitely typescript over not typed for

[00:20:36] Jonathan: a hundred percent. I remember back in the day when I was, uh, when CoffeeScript was still a thing, if you guys

[00:20:42] Chuck: Yeah. Oh, yeah. I, I remember I loved it.

[00:20:45] Jonathan: Yeah, see, I didn't. I was like, oh, let's just write pure JavaScript. What do we need to, like, translate? JavaScript's perfect. And then really, even when TypeScript came out, when I was still, I guess, at Lonely Planet, I was not into it at all.

And I was trying to tell everybody, Just write JavaScript, there's no reason to like, do all this work. And then I realized after using VS Code for a year or two, That somebody said, You realize that JavaScript is just going through the TypeScript compiler in VS Code, And you're just writing TypeScript anyways.

And I was just like,

[00:21:16] Chuck: You're like, well, I'm trapped. I might as well do

[00:21:18] Jonathan: may as well just throw some colons in here now I guess, And call it a day. And then I became a huge TypeScript advocate.

[00:21:25] Chuck: Yeah, well, I, I will regress and say that I did like CoffeeScript, but I was in the


I was

[00:21:32] Robbie: all the time we

[00:21:33] Chuck: world with Python and it felt kind of close. So it was

like, I don't have these massive leaps and you know, you could omit curlies.

[00:21:43] Jonathan: Yeah, that's what I was going to say. You were already in a curly list


[00:21:46] Chuck: yeah, so,

you know, it just kinda, it

felt more natural to work on both

[00:21:51] Jonathan: well, but it kind of came from Ruby, didn't it? CoffeeScript? Wasn't it like a Rubyism thing? As far as I recall correctly, I thought the guy that made it was like a big Ruby developer

[00:21:59] Chuck: well that I don't know.

[00:22:00] Jonathan: Ruby to...

[00:22:01] Chuck: I didn't used to care about the who. Remember when who didn't really matter? Like, who was just like behind the scenes, and you just talked about the what? Where, like, now people are more, like, the face of the what? And there's this whole who that we, we talk to the who's now. I don't know.

I just feel like that has been a massive

shift overall, is.

[00:22:19] Robbie: it's helpful to have a good advocate, like in charge of the, a leader for the project that everyone can see. And, and, you know, if they're charismatic, then the project takes off better,

[00:22:29] Chuck: Oh, sure. I get that. But I probably used, I probably used jQuery for like four or five years before I ever heard the name John Resig. Right? Like,



[00:22:38] Robbie: built jQuery?

[00:22:39] Chuck: yeah, I was just like, I don't know. I love, I love these, uh, I love being able to grab a thing and change it. That's all I want to do. And he makes it easy across browsers.


[00:22:50] Jonathan: there's a lot of branding to things now.

[00:22:53] Chuck: yeah.

[00:22:53] Jonathan: I could see that.

[00:22:54] tailwind vs vanilla css

[00:22:54] Chuck: Alright, so, controversy. Cause I don't know where you stand on this one, so this one I left in. Tailwind or Vanilla CSS?

[00:23:01] Jonathan: so this kind of goes, it's very reminiscent to me of like the same market we have in the JavaScript community, which is like this frameworks versus, you know, not frameworks thing. And I think like, if I want to make something fast, and I don't care about, getting into the nitty gritty, then I'll just grab it.

Yeah. Tailwind and throw it and make a thing and be done with I made a thing I think it's better to make a thing than it is to debate about how the thing was made In the first place, I would I would I would debate that you know, and I know

there's a lot

[00:23:31] Robbie: people would debate that that is debatable.

[00:23:35] Chuck: I bet. I think most people would just say it depends.

[00:23:38] Jonathan: Yeah, I do think there's always the it depends factor, right? I mean, like if, you know, uh, but I am not against it. So there's that. There are people I know, like my friend, Chris, who, uh, rakes tail when developers over the cold. So, um, but he's a

[00:23:53] Chuck: Chris, don't be a dick.

It's okay if you don't want to use it, Chris, though.

[00:23:59] Jonathan: It's, yeah, it's cool. Uh, but I do love, I've, I've now been getting back after listening to the episodes, some episodes of you guys, hearing Chris Coyier talk about some of the view transition stuff and all those cool things coming.

It's got me wanting to like, kind of mess with some CSS again. I've been in, DevOps tooling land for so long, for the last five years that like, I don't even remember the la I, I don't even know if I could, if you had a gun to my head, I don't think I could like use Flexbox without like having to go read W three C articles for a few hours or something.

Like it's just been that long since I've written C Ss ss.

[00:24:32] Chuck: And for now, you can still reference CSS tricks until they continue to F up that

site. I don't know

[00:24:37] Robbie: Oof.

[00:24:38] Chuck: Um.

[00:24:39] Robbie: Chris. He keeps his money and gets his site back.

[00:24:44] Chuck: think that's how it works. but, you know.

[00:24:46] Robbie: got money. They're okay.

[00:24:47] Chuck: Yeah, just a little. You know, we'll keep the links back to DigitalOcean. Can you let us,

[00:24:51] Robbie: Mm hmm.

[00:24:52] Chuck: know, own the content? Thanks.

[00:24:54] Robbie: Yeah, like, do like the syntax acquisition with Sentry. Like, you own it, but the people that were doing it right, that brought everyone to the thing, keep running the thing. That's how you keep it working.

[00:25:05] Chuck: right, well, yeah, and I don't want to get too much into Chris business, but you know, also, he was trying to focus on CodePen, right? So he was sort of like, this journey's over, it's time for the next journey, we'll see later, there's that aspect of it, but I think the community as a whole, having it, or some version of it, there was a little bit of, , Twitter talk for a bit of like, how about we all get together and put like ten bucks a piece in and see if we can get it back.

[00:25:29] AD SPOT[00:25:29] rebase vs merge

[00:25:29] Robbie: Oh, uh,

Get rebase or get merge?

[00:25:32] Jonathan: Definitely a rebase fan, for sure. And a fan of the squabaserge, the squash rebase and merge into main. Uh, we used to call it that at Lonely Planet.

[00:25:42] Robbie: Oh yeah.

[00:25:43] Jonathan: I, Yeah, merge commits drive me bonkers. Especially when I see somebody that had, you know, not a tremendously long running branch, but long enough to where they just like kept merging main into their branch over and over again, and then they just merged that thing in without squashing it.

I'm just like, could you not have just, you know, not done that maybe? And, and not made the git history look just horrible. , so yeah, I'm definitely a big rebase fan, and it amazes me. That I'm still having this conversation in 2023, to be honest with you. I kind of thought we settled that a long time ago.

So, yeah, definitely rebase. And, you know, when I was at Eviprite, we had a script. It was like, every morning, people ran it, and it rebased their branch on top of main. And so, I guess I was just used to that. And then I didn't realize when I came here

that was actually a very unique thing.

That I want to do it here. People don't really really take that for granted. You know, just rebase your branch every now and then and then you won't have problems in your PRs because you'll be on top of main more often, you know, and then you won't have weird merge issues. Just please rebase.

[00:26:44] Chuck: Yeah, that's definitely a caveat to a large, , organization with a lot of people, particularly when a lot of them are working within the same repos is that the rules of engagement, the rules of how you decide to work. And if you don't want to utilize automation to enforce those, right, you want good citizens.

You don't want to be like a police state, but then conversely, you, like you said. Go away a couple of days, come back. There's thousands of commits already. Does that need to be tenfold because someone doesn't embrace the rules of engagement that's a real back and forth controversial thing.

It's like, it's annoying if I'm going to have like a five minute, you know, commit hook, uh, locally. Right? But then also, then do you offload those rules to CI, but then like,

Your feedback cycles get, you know, so what's, what's the trade off there? It does kind of suck, but.


[00:27:38] Jonathan: get rebased, man. I don't know. I don't

[00:27:40] Chuck: same.

[00:27:41] Jonathan: People,

[00:27:42] Robbie: especially when merging PRs, like if you don't squash and merge, then it gets really gross. And it also like throws off statistics where people be like, Oh, I had, 000 commits in the last six months. Well, cool. But were they meaningful? Or was it like, save this, do

[00:27:59] Jonathan: yeah, well and I like some people make the argument that like they don't rebase because they don't want to like lose the history of their pull requests, but I'm like when you rebase, you can squash it down and you can write yourself a nice pretty note that says what you did in your pull request, you get the whole, you know, maybe we need to teach people how to use Vim better or something, I don't know, because like I Vim and I'll go and I'll copy the

[00:28:20] Chuck: Oh, so you interactive rebase. So you're an advanced rebaser too.

[00:28:23] Jonathan: and I think that's the thing. I think I take that for granted, right? Like, I, yeah.

[00:28:28] Chuck: well, maybe there should be a developer tool that does that automatically for you, uh, on a post, uh, maybe like a post merge hook or something like

[00:28:35] Jonathan: Well, and I will say, if you point, your Git editor towards VS Code, it has a pretty nice, like, rebase UI now that I've seen. I don't know if it was a plugin that I had or if it was VS Code native. I can't, I don't know. Because I have GitLens. I don't know which one it was. But it had, like, a whole dropdown thing where I could, like, pick squash and pick edit from, like, a dropdown in



[00:28:56] Chuck: Ooh, that's

[00:28:58] Jonathan: Yeah, so that was pretty rad, uh, like that whole thing.

[00:29:01] Chuck: Yeah. Like making those tools a little nicer and accessible regardless. Yeah. Cause maybe it's not a, the other controversial thing is if you reply, it's a skills issue, but maybe not necessarily, it's a knowledge issue and then pick the tool that

does. the knowledge for

[00:29:15] Jonathan: yeah, I do, you're right, you said it and I glanced over it. I interactive rebase, if I have a long running branch and I have 10 commits in it, and I start getting conflicts as I'm rebasing and I'm like 5 in and I only have 5 more commits, I'm gonna say, alright, let me stop what I'm doing, I'll kill this rebase, I'll abort it, and then I'll interactive rebase down to 1 commit, and then rebase, and then it's like, that was much easier to do.

than trying to continually edit conflicts through 10 or 15 or 20 commits.

Just get it back down to one, and then only rebase over one commit, and that's much easier.

[00:29:49] Chuck: Yeah, I agree. There you go. There's a pro tip for, for a listener.





[00:29:55] Robbie: Like if it's more than 50 commits or something, you can just be like, I'll just merge or like, you know, but, but you do that into your branch so that whenever you're actually merging to

[00:30:06] Jonathan: You still squash and rebase.

[00:30:08] Robbie: And it doesn't matter at the end of the day.

[00:30:10] Chuck: Food for thought. A couple of ways to skin a cat. for a bunch of, , front end folks, my next question will be a little more about, How entrenched in our own tools and ideologies we are, which is, so I started with will HTMX change the way we build apps,

[00:30:27] Will HTMX change app development?

[00:30:27] Jonathan: hmm. I saw that.

[00:30:29] Chuck: slightly loaded though.

[00:30:31] Jonathan: Ha ha ha ha. I mean, It looks cool, I'll admit. it's one of those, like, up and coming things, but... I just, I can't imagine the entire front end community giving up on whatever the thing they're on right now is, right? Like there's, there's no way that at least in, in office that we're going to decide, Oh, let's just get rid of the 20 million lines of React code that we have in our code base and switch to HTML.

for the young and upcoming startup. Who, , has no, nothing to lose. I could see, you know, a case for an HTMX or if you're in like, uh, you know, a smaller code base even, maybe not, you're not a startup, but, uh, you know, I feel the same way about Svelte. is another really cool looking framework that I would love to try.

, I can't do it in my day to day work. If I have like a dashboard or something that I'm making that doesn't, that's like a one off thing, maybe I could go that way and see it. But is it going to be some ground shifting thing? I don't think so. Uh, yet, uh, the jury is out. ,

[00:31:34] Chuck: Yeah. I mean, I could see that in the sense of like, if it ain't broke, don't try and fix it kind of thing, but we're,

[00:31:40] Jonathan: yeah.

[00:31:41] Chuck: you know, it is cyclical in a ways though you think about it, like. The web applications inherently were initially, server rendered served.

Hence server, right?

And that's kind of your experience. And then you look at this, or when you mention it too, like transitions API, a bunch of new APIs coming to the browser, to say, you know, HTML is a first class language, and there's some APIs here that'll just actually, and sure, I'm gonna go ahead and say a language, even though it's a markup language, it still is a language, maybe not a programming language, I don't

[00:32:17] Robbie: No, it is a programming language, fight me.

Let's do it.

[00:32:20] Chuck: I would, but you're far away. Um, and I'm lazy, so just taking a look at our base tools and saying, let's re look at this and how much complexity do we need to add? But I, I think you have a good point. There is like, there's diminishing returns of things that are working just fine in saying, Oh yeah, let's do Gmail.

But. Minus all, all the JavaScript that did all these things, right? Like, what's, what's the advantage? What's the thing there? Like, they can afford it just fine. Uh, they can, you know, it's working, there's lots of users. Like, what's the point? there is a lot of developer community that have invested in front end complexity, right?


[00:32:57] Jonathan: For better or worse. I

mean, it just is what it is.

[00:33:00] Chuck: For whatever reasons, there's tons of complexity that exists there and there's tons of tools that can change the complexity or shift it off to another direction or whatever else. It's going to be an interesting, I think, next five to 10

[00:33:12] Jonathan: Well, and I, I think the thing that a lot of young, a lot of people on the tweeters and all the things miss is like, You know, we've been doing this a long time and we've seen some stuff, right? Like we've had to fight the, the IE6 and Firefox and Chrome and Edge and all these things for years. you find all these new things all the time and, you know, you don't have the baggage that we have

[00:33:36] Chuck: Right, right. Like we fought all these things and finally got them where we want them. Are we going to abandon them? I don't know.

[00:33:41] Jonathan: yeah. if I have an opportunity to do a side project or something then maybe I could see an htmx or whatever, but for me, I don't, I don't, I'll stick with React for a while. It's working pretty good.

[00:33:51] Chuck: You're supposed to say Angular, by the way.

[00:33:53] Jonathan: Angular? Oh no,

god no. I haven't touched Angular in, uh, since, I don't even remember.

2013? Maybe? I don't even,

[00:34:03] Chuck: Yeah, that's fair.

[00:34:03] Jonathan: yeah. 1. 3, I think? I don't know.

[00:34:07] Chuck: I jumped ahead to razzing you about Angular, but, you know, I don't know.

[00:34:11] Robbie: Yeah.

I think all of the frameworks have really gotten pretty good, honestly. And, like, I'm all for teaching people that HTML is a first class citizen and, like, just sprinkle in the JavaScript when you need it.

And then who cares what you use? Like if you like react fine, like if you don't find use felt or whatever, like it doesn't matter as long as you're conscious of, you know, when do I actually need it?

Cause I feel like we went down a huge rabbit hole of like, let's do everything in JavaScript. We want CSS and JavaScript, JavaScript. Everything's in JavaScript.

[00:34:44] Chuck: Yeah.

[00:34:44] Jonathan: mm, mm.


[00:34:48] Chuck: applications that are brochureware are weird, you know.

I don't know.

[00:34:51] Jonathan: Yeah, yeah, yeah, yeah, yeah,

There's no merit to me in... bashing anybody's way of doing things, right? Like that's the thing that I hate is such and such sucks and you shouldn't use it. is just such a bull crap sentiment, man. Like people like the way that they do their thing. And, , you know, you should just hear what they have to say no matter what that thing is.

And everybody has their thing they like to build in they're comfortable. And, but I will say like, I did change on that a lot. I remember Back in, when I was doing Backbone and people were doing other things, I used to be like, why would you just use anything but this one thing? But I've just learned over the years that like, there's so many ways to solve problems on front-end web development.

There's just no reason to go bashing anybody for anything. There's just so many different ways to solve problems. Just let people, you know, you can have an opinion and certainly talk about it and teach people your way of thinking, but don't bash other people. Like, don't


Just don't be mean.

Just be cool, man.

[00:35:50] Chuck: But don't you know that we live in an age of evangelizing things like... To the degree of, of religion or sports or whatever else. Like

[00:36:00] Robbie: yeah,

[00:36:01] Chuck: a long time ago, I used to be a bartender and they used to say like, , a couple of things you never talk about at the bar are sports and religion and politics and pro and programming languages now apparently or whatever, you know, and yeah, JS framework tabs versus spaces is always spaces though.

It's always basis.

[00:36:19] Jonathan: Yeah, yeah,

I'll go to the mattresses on that one.

[00:36:22] Robbie: yeah.

Does anyone still like tabs?

Like, I

feel like people that even say tabs really just mean, I want tab to be a shortcut to like two or four

[00:36:31] Jonathan: I swear I just saw somebody talking about tabs on Twitter the other day, and I want to say it was Svelte, something in Svelte was a tab, they were fans of tabs, I don't

remember. I don't know.

[00:36:42] Robbie: dead then.

[00:36:43] Chuck: Yeah,

yeah, that was a, that was a bad purchase decision.

[00:36:47] Jonathan: ha ha ha!

[00:36:49] Chuck: It's felt stead.

Um, cool. Well, let's, yeah,

let's talk


[00:36:55] Robbie: of... Yeah, random shit.

[00:36:57] Chuck: Yeah. But, uh, tech random things. Okay. It's a nice segue to, uh, so I know you wanted to talk about your, you've coined the term div ops and you're a part of your div ops team at Microsoft one JS internally, but, , outwardly you talk about it as div ops.

So I want to know what's up with div ops.

[00:37:17] What's up with "div ops"?

[00:37:17] Jonathan: I've had this long journey, right? Or it's like I did cold fusion. net, then mostly JavaScript for like, you know, forever. And then I got into react and I was like, Ooh, I like this thing. I don't know if I felt react, just felt nice. Like I love as a language and it was the first time I was writing a UI.

thing that I was like, Oh, I like this a lot. Like this just sort of makes sense to me. It just feels like good. And then I built some cool stuff with it. I, you know, I was building, uh, infinite scrolling and, and server side rendering, and this was at like, I don't know, React 15. Before, a lot of that was, , you couldn't really do a lot of Googling, uh, or Googling with Bing for, uh, how to server side render stuff, right?

So I had to sort of discover that, and I was using Node, I don't know, 10 or 12, server side rendering React. , and I was doing mostly UI development before that, right? Like, for my stint at Appinto, I was doing all JavaScript stuff. Uh, and I made Lonely Planet cool things, and the developers... The designers, rather, my friend Brad, made me push this pixel down over here a little bit or change that color to the wrong thing.

And I started realizing, like, I don't care about... pixels anymore. Like, I care about this cool server side rendered app thing I just made. Uh, and this component library I just made so that, like, other developers can take my, both the component library I built and build other things with it. And also, I really got into this idea of, like, building, you know, the BFFs, the backends for frontends, with Node and server side rendering my frontend.

That got me really excited. And, you know, I had a, I don't know, at Lonely Planet, we had, I don't know, ten people or so, and I was the only person that really had... Sort of a bench towards, and maybe it was because of my time in CodeFusion and NET before that I had like this backend bent. So then I was like, I think I like building tools for my team to like, to do their work better.

found that to be very rewarding. You know, they'd show up for work and I'd have some new tool that I built to be like, Oh, that, oh, that's so much better now that my day is going to be so much quicker now because you made that thing. And that's when I got the, the, the like, oh, this is my thing.

JavaScript tooling is now my thing. I'm, maybe I'm just a sadist, but I, I kind of like writing Webpack configs. Like, I, I got to where I was like, I actually like knowing what... This little knob on a webpack config does versus that one, you know, all the different whatever's you could do in there.

, I got to love that stuff. then after I went to Eventbrite and I was on a team, I didn't even realize that that was a thing. I, I just sort of went to some conferences and somebody said, Hey, you know, there's people that just do front end tooling as a job. And I was like,

really? That sounds cool. I kind of want to do that.

And my friend Ben, a Legbo dude, uh, Ben MVP, uh, hooked me up with a gig at Eventbrite on the Fe Infra team. And we were split doing our ED frameworks, uh, our UI library, uh, EDS, and doing, uh, Fe Infra and, uh, front end infrastructure. But it felt weird because all of a sudden, , our team was called front end infrastructure.

We were doing tooling, writing Webpack configs, and I worked with, uh, Jamie Kyle, creative learner, came and worked with us a little bit, and taught us how to do monorepo stuff, and so I was suddenly writing Bash, and, doing Docker, and doing things that normal front end developers don't do. Do you know like I'm not doing front end development anymore, but I'm still called front end infrastructure.

This doesn't make sense. So like, what am I

Kyle, my friend Kyle Welch and I just sort of jokingly went to Twitter and said, What do we do? Who are we for for front end developers, but we're not writing JavaScript. We got a lot of like, you know, front end DevOps or front end infrastructure, front end platform.

And then this one guy said DevOps in angle brackets, and I just I was like,

[00:41:16] Chuck: You were

like, that's

[00:41:17] Jonathan: that's it.

yeah, you won, Enrique, my friend Enrique just got Twitter.

So yeah, that's sort of the, the term I use internally to describe what we do. , and it's this weird, you know, I'm a front end developer, but I write. I do backend code, I do Node, I do Docker, I do Bash scripts, things that most front end developers just take for granted, you know.

I don't want the folks building Copilot in Word right now to have to worry about, you know, their Webpack startup times or their CI infrastructure. You know, I just want them to write, just build Copilot for Word, guys. Like, I'll take care of the rest of that stuff for you. You guys go do your stuff. And that's what DevOps is to me, is this whole, that whole idea.

[00:42:01] Robbie: So what about documentation? Do you do

[00:42:04] Jonathan: I do. I write a lot of documentation as well. I, in fact, just like tweeted that I, I started doing this sort of DDD of, uh, documentation driven design, where I try to write the readme of a package before I write any lines of JavaScript.

And I'm trying to coach my team on that as well. , another reason why I got into doing that was because, , in my, uh, borderline obsession with Microsoft for so many years, , Scott Hanselman is, a big C Sharp guy at, underneath the, the cloud here at Microsoft.

And he talked years ago about this idea of you have a limited number of keystrokes in your life, right, until you don't have any more. And so he says if somebody asks him a question at work, rather than just responding in Teams or Slack or whatever it was, he will write a blog post or a piece of documentation or a wiki.

And send them that link back. And then he has written down, for himself, and for that person, and for anybody else who ever happens to have that question, the answer. And it's then documented. So that's sort of my mantra here. And I do the same thing even with videos. As you can see, I love, like, recording videos.

So if somebody asks me a question, Or if I'm deep diving on something technical for people at work, I'll record a video and, and still maybe even write a little bit of docs too, but then put the link to the video in it and describe it that way.

So yes, documentation is key in maintaining

your, your infrastructure, your architecture, uh, as well.

[00:43:33] Chuck: I love that. That that's basically your cue that something should be documented that isn't. If you're getting a question about it,

it seems like, Oh, let me think about what that makes sense to document it once. And then, you know, that that's been covered. It's interesting. This space has been named a number of things.

Over the years. I remember going to a conference in 2014 and it was called Front End Ops. Yeah, there you go. Represent! I love your upgrade. And I guess for anyone listening to the audio, Jonathan also has a bottle of our Sagamore Rye.

[00:44:08] Jonathan: It's just very good. So

[00:44:10] Chuck: has shifted over. Um, so that just goes to show you, uh, what he feels about it.

But, um, yeah, shifted

left into a bottle of rye. And you will be shifting a little back and forth later when you leave your office. But, um, That's okay. ,

so yeah, this whole space of like, tooling and, methods of operating and support and all this thing, you know, it was just like ops existed for a long time.

And then there's been like this focus on ops specifically for browser. Side rendered applications. It was called front end ops. When I went to this conference, it's been called, developer experience, platform engineering. Most recently, I do feel like that the lines are blurring more and, you know, while it's a focus inherently at the end of the day, it is a support role where your customer is a developer, a product developer, and I almost feel like I was around at times where front end developer was kind of looked down upon in ways, and I feel like,

I almost feel like things like react and, single page applications and NBC front ends and all this kind of crazy stuff. It's almost a, uh, a reaction to that of like, Oh yeah, hold my beer. I'll show you how shit gets real complicated here too.

And we can do it. And a lot of smart people figure that all out. So it's not a. slide against anyone in that way, but it just is like, makes you start to think about like, we're all working on these things towards a mutual goal and solving problems in the ways that we know how with the tools that we think are best.

But like, aren't we all just? Developers and, uh, you know, you're a front end engineer. Are you, I mean, you're an engineer and your focuses are in a particular areas, right? So like, and it was thinking like, these are all the same things that we're coining all these different things. And maybe it's necessary for, I don't know, you know, salary bands or whatever else bullshit thing is.

But the re at the end of the day, you could write cold fusion. At one point you wrote. net. At one point you can write node, you can write react, you're an engineer. And you can solve problems in the place, in the space that you're put and the problem that you're asked to solve. Right. I think that's really all that is.

It's just,

[00:46:22] Jonathan: I love

[00:46:22] Chuck: anyway, that was just my blah, blah about that. Like when I, I still get a little reactive when I hear front end, back end, front end, back end, front end, back end, you know, it's just sort of like, it's not even that anymore.

[00:46:35] Jonathan: yeah. Yeah, the lines have been blurred for a long time on that. , I feel like I, I saw the term full stack developer coming up again on Twitter recently, which I thought sort of went away, but I guess it never did,

[00:46:46] Chuck: Budget cuts. That's what that is. You

[00:46:48] Jonathan: Ah,

[00:46:48] Chuck: is?

[00:46:48] Robbie: I have

[00:46:49] Jonathan: ha

[00:46:49] Robbie: opinions on full


[00:46:51] Jonathan: Uh, ha. ha

[00:46:52] Chuck: is a master of none. Right.

[00:46:54] Jonathan: yeah,

yeah, yeah,

[00:46:55] Robbie: that, it's, it's, full stack developer is a term coined by companies who want to pay one salary and get two developers. And you can't do that, like, there's so much on just front end tooling that you need to know for being a front end developer that...

Like trying to be a master of all of it. Some people can do it. Don't get me wrong. But I think like most of the time it's like a startup without the budget. And they're like, Oh yeah, we need a full stack dev. Okay. Well, does that mean they're doing DevOps and backend and front end and whatever else, and like

[00:47:30] Jonathan: Maybe, I have a thought, this just popped into my head, but maybe a full stack developer is just like a senior developer. Like, because I feel like at a certain point in your career, everybody's a full stack developer if they've been doing something long enough for like 10 years. Like, if you've been doing, if you've been writing front end code for 10 years and you don't know how back end works still, like, I would imagine you probably do.

So maybe what they really want is they just want someone that kind of knows their way around both sides of the house.

And, like, that's just somebody that's been doing the front end. Ha ha


[00:48:00] Chuck: Yeah. But then they want to, but then that interview is eight rounds and includes like JavaScript problems and systems design and, you know, like everything in between. So, you know,

[00:48:13] Jonathan: It's really just about how long you've been doing it and the skills you've picked up along the way.

maybe if you're just starting and you just came from But even Yeah, is there anybody that's just only a front end developer now? I mean, surely people know something about how their back ends work.

[00:48:28] Chuck: I think that there are niches that are more about. UI developers. I've seen, like, where there's been, like, UI developers and they're closer to design or design systems and then

[00:48:41] Robbie: Yeah.

[00:48:41] Chuck: dangerous enough to implement some of their design systems and I have

[00:48:46] Robbie: Like, you implement the design in HTML and CSS,

[00:48:49] Chuck: yeah, right. Nothing becomes interactive.

[00:48:52] Jonathan: Yeah,

right, right, right. And I mean, there's certainly one of the questions I always ask when I'm interviewing people is, do you prefer the front end or the back end of the front end? Right? So like, you know, do you want to make the design systems and push things on there? Or do you want to do, you know, , the more stuff like I do, the back end of the front end.

I can't remember where I heard that term, but I really liked that term too, back end or the back end of the front end.

[00:49:18] Chuck: I do like that. I mean, like, understand, do you want to implement logic or do you want to Work on the visuals

[00:49:24] Jonathan: And make a, make



and transition, yeah, it's about enablement, I think, you know, and being empathetic towards your developers and helping them make their lives better. That's my whole thing.

[00:49:38] Chuck: You know, especially like when you talk about things around accessibility, which I've often admitted that I'm still naive to so many layers of. I really like high level, understand certain things that you should be doing, but I know I'm like, 30% of what you really should be covering and that's okay because I don't really claim expertise there And it's not and so then you know that's another element of where you can understand that there's a lot of rules there that people really have to like dig into a Bunch of knowledge around and you want people to specialize in that

[00:50:09] Jonathan: Yeah, I think specialization is great. , in fact, my, Corey Haustaus talked a lot about this. Like, he, when he first went into consulting, he had like his company name was like, Front End Consulting or something. And he wasn't getting any

leads. And, uh, then he changed to, he bought, he bought reactjsconsulting.

com or something like that. And, uh, and

then he just.

I mean, he's never been starved for business, like, specializing is a good thing, and I think we should teach people that it's okay to specialize, and in fact, maybe it's a desirable trait to specialize, not drive yourself so crazy trying to think you have to know everything.

[00:50:46] Chuck: Yeah. And understand that you're not making a commitment for life, like specializing in something for a few years to really deeply understand it and then move to the next thing. That, again, is another sign of, of, of senior engineer is to gain those experiences across the areas that you're most interested

in and, and,

bringing that.

[00:51:08] Jonathan: you learn how to learn. I think that's the, the key there,

if you've learned multiple things enough times, it's like. Here's a new thing. I know how to learn, so I think I can figure out how to learn, how to learn this thing, like, that's how I feel about Rust right now. It's like,

I really want to get into it.

I've been hearing so much stuff about it, and that's like, I guess where the front end tooling industry is moving, is like, let's just re implement everything in Rust.

And so I'm like, okay, I, and, you know, debate that, I guess, but I do, I do think it's cool. I think it's a thing that maybe could do some cool stuff.

when I, we were just in a meeting the other day, and the developers, , that build the loop, the loop thing, Microsoft Loop, were telling me that they used, , Vite, or I think it was Vite, and they're transpiling like all of their repo from TypeScript to JavaScript in like 15 seconds using this new Rust based tool.

And I'm like, like, if you get everything from TypeScript to JavaScript in 15 seconds, then you could start bundling and like, and type check in parallel. And like, that's a game changer.

So like, bring on the rest if it's going to like transpile my whole, you know, million line repo in 15 seconds. Like,

okay, cool.

[00:52:16] Chuck: mean, proof's in the pudding. I, yeah, I do think it's a fad that's being talked about a lot, but I think the fact that real things are getting made that are making real improvements, you have to take that seriously. And so tooling seems to be a great place to, to, to implement that.

[00:52:32] Jonathan: Yeah, and that's why I love tooling so much, is I just like experimenting with these new things that we're making and learning about all this new stuff and, our PR times are high, and I can't wait to make them not high anymore, like I, and then I will hear how excited people are when their PRs are now faster or CI is faster.

That's, that's, that's all part of the things that get me excited to come to work every day now.

[00:52:56] Robbie: Yeah. Chuck's excited about that, too. He likes YAML, so anytime he can work in CI, CD.

[00:53:02] Chuck: I like to, I like to be the antithesis of anything Robbie is interested in. So I just like

[00:53:09] Robbie: Yeah.

[00:53:09] Chuck: And he's like, Oh, I don't like that. And I'm like, well, it's the greatest thing ever. So

[00:53:14] Jonathan: YAML, it's so, it's literally so funny to talk about YAML because we, I feel like, I feel like I joke all the time that I'm just a glorified YAML developer at this point, dealing with CIC systems. one of my items of my to do list right now is to like, figure out more coding tasks for the team I'm on because we've just been stuck writing YAML for so long.

I think

of. Hey,


[00:53:37] Chuck: hire me.

[00:53:38] Jonathan: Okay, let's do it. Uh, let's talk. The

[00:53:41] Chuck: Yeah. Follow through on what we started 10 years ago. Okay.

[00:53:45] Jonathan: yes. Let's make it, let's make it a thing. , I want to treat YAML like I treat, like they told us to treat controllers back in the day. It was, it was like thin controllers and fat models, I think.

I'm on this mission right now from God to, to decrease the amount of things I do in YAML and relocate those things into code. ,

we had a release pipeline thing that was like, about 200 lines of bash inside of a YAML template. And I was like, this is, this is not okay. I know it started as like a few lines and it was like, okay, that's fine. And then it just kept growing and growing and growing. And so I recently took that 200 Line Bash script and converted it into TypeScript, and then I wrote like tests and the, the Bash script is like doing get checkout things and doing get tags and pushing the remote.

But because I rewrote it in TypeScript, I was able to mock the get call and make sure that it's like doing the right, get calls and, and I rewrote it as code. It's been so nice because now I can refactor it, I can change it, and I understand our whole versioning flow. It's documented, it's got a unit test, the whole nine yards.

So yeah, I am a big fan of thin YAML and fat logic, I guess, I don't know, but just don't

[00:55:03] Chuck: Infrastructure is code and then other things as code configuration as code, I think can be,

um, yeah, smart stuff. Uh, yeah, I feel like we could go down that path rolling, but I want to make sure you have some whatnot time too. I know we're going

on and on around


[00:55:18] Robbie: rambling.

[00:55:20] Chuck: Uh, so here's our, uh, first big question around that is if you weren't in tech, what other career would you choose?

[00:55:27] What else would Jonathan do outside of tech

[00:55:27] Jonathan: I, uh, I'm a big fan of photography. ,

I used to in college shoot second as the, you know, the photojournalism photographer. And so while the main photographer was over there doing the bride and groom and the bridal party, I would just kind of be in the backgrounds with a big 70 to 200 zoom lens, just

kind of getting shots from all over the place.

we shot some really cool stuff together. One of the coolest was at the Nashville Zoo. And there was like an elephant behind the bride and groom and have this like really cool shot of like the bride and groom and an elephant behind. So I love photography and I recently just bought a Canon R6 to start doing it again some more.

I got to the point where I was like, Oh, my iPhone's good enough to take pictures. You know, I was in that camp. And so for the last, for like five years, I just was like, I'll just use this more. But then I took a picture. I had my father and I'll take a picture of my family at Disney in front of the castle.

And he used portrait mode, of course, you know, cause you do. And then when I tried to put it on my desktop, on my computer, I noticed. the bokeh, the blur was like cutting around my wife and my kid's hair. And it looked horrible on a big screen. And I was like, ugh,

[00:56:37] Chuck: yeah, large format. It's not as good as you think, but I am in, I'm in that camp as well. It's funny because I started out as an architecture major. Then I went down the photography path and actually got into the Brooks Institute of Photography. Uh, but I couldn't afford it, so I didn't go. Uh, took a bunch of classes, whatever else, for a while, and then kind of faltered off later on.

But it was my gateway into, development, actually, doing websites and stuff. Uh, Photoshop was how you built a website back in the

day, so. And that was a one to one. So I'm actually starting to follow your path a little more. We got these nice, fancy cameras now, and I'm like, Well, I've got a nice camera that can do more than just sit here.

I wonder if I should pick that up


[00:57:17] Jonathan: Yep. Yeah. I love my full frame mirrorless camera, man. There is just nothing. Especially, like, I've got my girls are, you know, she just turned, one of them just turned five yesterday, the other just turned nine in a few months. And being able to get these just amazing pictures of them. We went to London and Paris on a trip in May.

And, I mean, we have this incredible photo of my family with the Eiffel Tower behind us that my father in law shot with my camera. And I've got those for like a lifetime now and that you could not have done what I did what I had him do on my r6 there's no way my iphone could have replicated

And so yes photography hands down.

That's my that's my gig

[00:57:57] Chuck: That's a good one.

[00:57:58] Robbie: Yeah. We, uh, are unfortunately kind of out of time here, so not a lot more what not, but, uh, is there anything major that we missed or anything you want to plug before we end?

[00:58:09] Jonathan: Uh, I just thanks for having me on I mean, yeah, I I think like the main thing I I'm searching for in, in my next, like, where am I at situation is I am doing big scale things on my team, and I want to find other opportunities to converse more with people that are also in the same boat where like, we're no longer in the, packages, 100 packages, couple thousand, 10, 000 lines of code, we're in like the 2000 packages, 10, 15 million lines of TypeScript world.

And, uh, you can't really Google for problems like that very easily. They just, uh, they don't

exist. And so, I'm trying to figure out the right way to go about, like, talking to more companies that, you know, sometimes people hold things so close to the chest. And I'm like, I'm like, we're all solving the same problems here at every different company, the bigger ones, you know.

You know, we're all solving the same problem, just a little bit different. Like, can we, can we talk? How are you guys doing? This, like, transpiling thing that, or this webpack thing, or what are y'all doing? Like, that's where I'm at. I want to learn

[00:59:17] Chuck: no IP there, so you need to start like the main group for support engineers or something. I don't know.

[00:59:23] Jonathan: Yeah, yeah. That's where, like, the DevOps thing or whatever. I don't even care, man. Like, I cheekishly call it DevOps. I don't even care. I just want to talk to people that build big stuff and figure out how to make building big stuff better.

[00:59:35] Chuck: Also, you have to let us know when your fitness course comes out. Fitness. Fitness for DevOps.

[00:59:40] Jonathan: Yeah, I, God, uh, I have thought about that a lot too. , I've got into that a while ago and it's, uh, I, fitness to me is a mental health thing too, right? Like I, if I don't do an something on a day-to-day basis, now I go crazy. Like I've gotta go. run or lift something heavy to just deal with life and everything and it's just fun now like and i'm just like i have all these heavy things going on but it's just part of my routine i like the the the work of doing that and resetting my mind getting it away from the keyboard for a little bit I'm here for eight hours a day and so I, I'd rather not eat a long lunch and go just eat at my desk and then take an hour and work out at two o'clock or whatever when no, when there's no meetings.

Um, so yeah, I, I could, I could start, I've, I don't know, we'll see. Dev fitness, I don't know, something.

[01:00:33] Robbie: Thanks everyone for listening. If you liked it, please subscribe. Leave us some ratings and reviews. We appreciate it. And we will catch you next time.