Geeking Out with Adriana Villela

The One Where We Geek Out on Vibe Coding with Jean-Mark Wright

Episode Summary

Adriana is joined by fellow Torontonian Jean-Mark Wright. They discuss software development in the age of AI, and what it means to be AI fluent. Should juniors learn things from first principles? Should they learn how to code and debug without the help of AI to gain core troubleshooting software development and debugging experience? Can it be a mix? Jean-Mark shares his thoughts on cultivating junior engineers into senior engineers, and how those of us who grew up pre-AI can learn from those who are part of the AI-native generation.

Episode Notes

Key takeaways:

About our guest:

Jean-Mark is a builder at heart, driven by a passion for creating sustainable architecture, fostering strong teams, and championing Observability.

He has dedicated his career to building across various disciplines with a keen focus on creating systems that are both fit for purpose and built to last. Jean-Mark’s journey into Observability began from a practical challenge: the difficulty of understanding complex production systems at scale. This sparked a deep passion for designing and implementing solutions that provide clarity and insight into these systems.

A natural leader, Jean-Mark is as invested in people as he is in technology. He has brought many others along on his journey, mentoring and training colleagues in best practices and making countless tooling improvements to enhance system visibility across the organization. This commitment to both technical excellence and people development has made a lasting impact. At his core, Jean-Mark is still a builder who finds great joy in investing in people and engaging in endless conversations about all things Observability.

Find Jean-Mark on:

Find us on:

Links:

Episode Transcription

ADRIANA:
Hey everyone, welcome to Geeking Out, the podcast, in which we dive into the career journeys of some of the amazing humans in tech and geek out on topics like software development, DevOps, observability, reliability, and everything in between. I'm your host, Adriana Villela. Coming to you from Toronto, Canada.

ADRIANA:
And geeking out with me today, I have Jean-Mark Wright. Welcome, Jean-Mark.

JEAN-MARK:
Thank you. Happy to be here.

ADRIANA:
Lovely to have you. And where are you calling from today?

JEAN-MARK:
So today I'm calling from Toronto, Canada.

ADRIANA:
Right on... fellow. Torontonian. And we, I would say we like we met in person. I, I definitely remember we met in person at least once.

JEAN-MARK:
Yeah.

ADRIANA:
But before that, did we originally meet online?

JEAN-MARK:
Yeah. Yeah. I think we we exchanged... we exchanged a couple of conversations and had a little bit of a debate on LinkedIn.

ADRIANA:
Yes. That's right, that's right. Yeah. You always, Yeah. You would. You responded to, a number of my LinkedIn posts and then you've always asked, like, really thoughtful, questions like, DMed me on LinkedIn. And I remember one of your, one of your questions even led me to, like, I started, like, writing it out in, in, LinkedIn messenger. And I'm like, I feel like this is a blog post.

JEAN-MARK:
Exactly. Yeah, that's exactly...

ADRIANA:
Yeah. So, yeah, it's always, so exciting to, like, have the folks that I interact with on LinkedIn. First of all, I get to meet in person and then secondly, have on the podcast. So I'm super excited to have you on here. And to get started, I've got some, icebreaker questions. Are you a lefty or a righty?

JEAN-MARK:
Yeah, I'm a lefty.

ADRIANA:
All right, team lefty. Awesome. I get so excited with other lefties. I swear.

JEAN-MARK:
Oh, you’re a lefty as well?

ADRIANA:
I'm a lefty as well. Yeah.

JEAN-MARK:
Oh, that's great.

ADRIANA:
Every every single time. Like, I have a lefty and people have like listen to this podcast from the beginning. No matter what, when a lefty comes on, I'm like, yeah, you found my people. It's always so fun. Are you like, because I am definitely dominantly lefty, but I, I do a few things right handed. Like, I, it turns out, like for archery, I do it right... the right handed way, and I mouse, with my right hand. How about you? Are you,

JEAN-MARK:
Yeah. My wife keeps telling me I should never tell anybody I'm left handed. Because the only thing I do is write.... with my left hand. Like. Everything is the right hand, but it’s okay.

ADRIANA:
That’s so funny.

JEAN-MARK:
I claim it. I claim it. I love being left handed. I tell people I’m left handed. It's fine.

ADRIANA:
That's awesome. Yes. That's right. You got to lean in to the leftiness. Amazing. Okay. Next question. Do you prefer iPhone or Android?

JEAN-MARK:
Oh, definitely Android. I'm sorry, I can't.

ADRIANA:
I don't know if we can be friends anymore.

JEAN-MARK:
I like... I like my freedom. I like my freedom. I like being able to, you know, make decisions on my own, you know, make, make choices. I also don’t want to be part of a cult. Hmmmm....

ADRIANA:
No, it's true, I am part I am part of the Apple Cult. Proud, proud member. That's awesome, I love that. So, have you been like an Android user from the beginning? Like when the first Android came out?

JEAN-MARK:
Yeah....pretty... I mean, it it's actually takes me back because I remember I used to be, like started on like Sony Ericsson. I remember Sony Ericsson when, like, they had no.

ADRIANA:
Like, yes.

JEAN-MARK:
This is like pre Android pre.

ADRIANA:
Yeah. Yeah.

JEAN-MARK:
Because I remember. There was like Sony Ericsson and then I had a Nokia and there was the whole Symbian operating system. And that was like a huge thing. Like Nokia had like this dominance. And then like Nokia I just never I don't remember it was iOS or Android that came out. But yeah, eventually I switched to the Android.

ADRIANA:
Nice, nice. You. It brings back memories. We're talking about like the Nokia. It's so funny because, like, you know, I remember in those days, everyone had a Nokia. I never owned a Nokia.

JEAN-MARK:
Oh, you never, never? Wow.

ADRIANA:
No! Never, never. I yeah I never jumped onto the Nokia bandwagon. I had I had a couple of LG phones. I had three LG phones, two flip phones, and then one, which was the LG Chocolate, which was like my favorite dumb phone ever.

JEAN-MARK:
I remember the Chocolate.

ADRIANA:
It was a slider and it looked like a little chocolate bar. It was like the most beautiful little phone. I think that was like my favorite phone. And I that was that was my last phone before I got my first smartphone, which was a BlackBerry Curve.

JEAN-MARK:
Yeah. I mean, do you remember the infamous Nokia 3310?

ADRIANA:
Vaguely. Vaguely.

JEAN-MARK:
That was like. That was like the phone that like....

ADRIANA:
I have to Google.

JEAN-MARK:
That like. Everybody talked about playing snake on that.

ADRIANA:
Okay, I'm going to Google.

JEAN-MARK:
The other thing about that, that phone It was allegedly indestructible. Like you couldn’t... Drop test. It would pass every drop test like yeah.

ADRIANA:
I mean every person that I knew who had a Nokia loved it. And I don't know why I never got around to it. I don't know, just maybe because, like, my, my phone carrier didn't carry it. Because... I don't know. I don't know if you remember in the Before Times, like in Canada where like certain carriers carried certain brands of phones and then like, and this was before you could, easily switch carriers, before you could even port your phone number. So, like, you're kind of stuck with the same carrier unless you wanted to, like, switch to a new phone or like, you were willing to part with your phone number. And it's funny because I saw a meme the other day referring to that Nokia model, and I'll. I'll post a link in the show notes for. For those who want to feel nostalgic, where it was like a picture. Of the Nokia with a phone case and it was like making fun of the fact, like, why do you need a phone case for the. For this phone that’s so indestructible.

JEAN-MARK:
Yeah. You know it.

ADRIANA:
Which is hilarious because I remember I had phone cases for my old phones as well, and those things were way more indestructible than the smartphones of today, where, you know, I've got like, I've got a nice little plastic case for my phone. Screen protector and, you know. Phones keep flying out of my hand. So.

JEAN-MARK:
Those, those phones strike back literally in the midst of.

ADRIANA:
Yeah. Yeah.

JEAN-MARK:
That was really well built.

ADRIANA:
Well even, you know, even the BlackBerry was a great phone.

JEAN-MARK:
Yes.

ADRIANA:
And one of the reasons why I switched though, is because my Curve started switching off, like turning itself off in the middle of phone calls spontaneously. And I'm like, screw this, man. I don't want. I'm getting an iPhone.

JEAN-MARK:
Yeah, yeah, I was on a BlackBerry. Back a while for little bit too.

ADRIANA:
But it was a great phone. I loved. I loved typing on the BlackBerry. I still like, you know, the typing mistake I make on my phone now. I'm just like BlackBerry. I wouldn't have made those mistakes.

JEAN-MARK:
Yeah. And I mean, I think that's that's something I miss from the tactile era. You know, because I remember having, you know, phones and, like, the QWERTY keyboard like, well, sorry, pre-QWERTY keyboard when it was just the numbers and like. Touch. Touch typing. That's what it was called. Touch typing.

ADRIANA:
Yeah. Yeah, yeah, yeah. That's right.

JEAN-MARK:
I remember I used to be able to like. I used to be able to put my hand in my pocket and like, I could actually type like a full sentence, full paragraph and just, like, hit send without ever looking at the phone. Because. That was the difference with, with tactile. Right. Like, do that kind of feedback that you get, like you just don't get that, from screens and like, I mean, that's one thing that we've lost that we just haven't regained because that kind of accuracy like. Like I think that's just gone forever.

ADRIANA:
Oh, I know, I know, but that is, that is a next level talent to be able to. Type in a message in your pocket. Like that. That's amazing. I found those, the numeric keypad keyboards so irritating for typing texts. And I remember, like I reserved texts for very special occasions because also, do you remember when it would cost you, like, so much money to send a text. Or if you like. Opened. Your web browser by accident and you're like. Noooo! I'm going to get charged a fortune now.

JEAN-MARK:
Back to the days of GPRS and you know.

ADRIANA:
Yes! Exactly, exactly. Are you using CDMA or TDMA? These things of long, long ago that kids these days will never appreciate.

JEAN-MARK:
Never appreciate. It's funny because it's like one thing I was saying is like, my kids are never going to appreciate this because like growing up, I used to get in trouble, running up the phone bill because, you know, you'd actually call and you get charged per minute.

ADRIANA:
Yeah.

JEAN-MARK:
And I would get in trouble for how long I'd be talking on the phone, but now you have WhatsApp and you have all these different apps that you just call like it's it's not. You have a flat rate and it's like, they wouldn't know. They're on their video call. You could be on a video call for hours and like, you know, because it's a flat rate. It's like.

ADRIANA:
It’s wild. Yeah. I remember like I had a special evening and weekends plan. So like, I had.

JEAN-MARK:
Yes!

ADRIANA:
A boyfriend in university who, lived in Mississauga, which for people who are from outside Toronto, I lived in a suburb called Markham. He lived in a suburb called Mississauga, and it was long distance calls between Markham and Mississauga, even though we're like in the Toronto area. And I remember, well, first of all, we both had we both had Toronto numbers, 416 numbers instead of the 905 numbers, so it wasn't long distance. But, in order to call each other in the evening, we would call. So we would call each other on our cell phones. But in the evening, because it was free.

JEAN-MARK:
You know, we had similar plans like that in Jamaica. Definitely remember those days though.

ADRIANA:
Yeah. Yeah, it's, definitely a blast from the past. Okay, next question. Do you prefer Mac, Linux, or Windows?

JEAN-MARK:
Definitely Mac. I used to be, heavy on Linux. Actually. So there were 2 or 3 jobs ago. I remember, like, I spent. I hope my boss from back then isn't watching this. Like, I spend too much time, like just trying to configure Linux. Like, I don't know if you remember. There's this, back then, there was this OS, and it had this, this flashy, GUI called Burial. So it was it was just like, really animated. So if you clicked. And I'm like, this just looks normal now with Mac. But like if you clicked minimize like the window would just kind of like dance, and like, go down. Every time. It was crazy back then. Because every time I updated the OS, like I'd have to spend like almost a day trying to get the GUI working. Like, I just jumped back to the terminal and I'm like, some driver is not working. And I'm like, I can't. It was pre ChatGPT days when I could just say, hey, like, this is the error, give me a series of steps I can try.

ADRIANA:
Yeah, yeah. And then and then if, if your network was down but you're trying to troubleshoot your network card, you're screwed. And I can't tell you the number of times I had issues with my network interface. Yeah. I mean, I'm the same as you. Like, I, I loved playing around with Linux, but my god, trying to get things to work in Linux was like.... UGH! WHY?!

JEAN-MARK:
Back then it was a pain. It's. Thankfully it's gotten a lot better. I think somewhere along the line, like eventually like got into Mac and I was like, okay, this just feels almost like Linux because, you know, you still get the terminal and the... like it feels a lot more native. That kind of experience from Linux. But then it just feels like, oh, but this is so much more polished and like, I don't have to spend all day trying to get my GUI working. So yeah.

ADRIANA:
Yeah. And you plug things into it and it just works and it. GASP Magic. Yes I, I fully agree. Okay. Next question. Do you have a favorite programing language?

JEAN-MARK:
Yeah. I think for now it's Python. Like I've spent a couple of years working with Python, so yeah.

ADRIANA:
Nice. I, I'm a huge Python fan too. And for folks who have listened to the show, I came out from a Java background many years - 16 years. And then turned to Python because of a friend of mine. And I like, fell in love. So yeah, I am so with you. Love Python so much.

JEAN-MARK:
Python is an easy language. Yeah, I love it.

ADRIANA:
It is. Yeah. I, I don't know, I, I know a lot of people have like issues with the indentation. I kind of, I, I kind of hate curly braces, to be honest. I think it’s cluttery. And I love I love the indentation. I think it's just easy to read and it's like, pleasant to program. Yeah. Like I write Python code... I'm like, oh, my god, this is the most fun ever.

JEAN-MARK:
Yeah, I definitely don't miss curly braces. Yeah, I do TypeScript every now and then, but yeah, I love Python. It's it's nice and clean.

ADRIANA:
All right. Go team Python. Okay. Next question. Do you prefer dev or ops?

JEAN-MARK:
Dev or ops. I think definitely dev. Yeah, definitely dev. I love the product engineering side of things. Yeah. Ops is... Yeah, just just not for me.

ADRIANA:
Fair enough!

JEAN-MARK:
I leave my heart to, you know, to folks who do ops, because, like, it's it's a different world over there. It's a different world. In ops, like, so much Terraform and, like, you know, just the style of coding and so on, and, like, it comes from a completely different perspective. It's a whole paradigm shift.

JEAN-MARK:
And, I respect you.

ADRIANA:
Yeah, I, I do agree, like, if you're, if you're Terraforming and you're, you're used to like procedural languages and then you go into Terraform, you're like, what the hell? Does this thing have a mind of its own? It kind of breaks your brain a little bit.

JEAN-MARK:
Yeah.

ADRIANA:
I feel ya. Okay. Next question. Do you prefer JSON or YAML?

JEAN-MARK:
That's a tricky one. Maybe. JSON.

ADRIANA:
Oh yeah? In spite of the curly braces?

JEAN-MARK:
Yeah. I mean I've always felt like YAML is like, a little bit too quirky. And I think over the years, like I've, I've really come to dislike some of the weird syntaxes that they use, to do things. For example, like when you have like a template section and you want to reuse it, in, in another section. I’m like, this... This is not obvious at all. Like, like somebody has to sit down and teach you that. Like, this is exactly how this thing is done. And I mean, to be fair, like, you can't do much of that. Some, some of the features I'm thinking about... you, you don't get that natively in JSON. And like, yeah, probably need to figure out how you do that in JSON. But yeah, YAML, like it's kind of weird and like it's too... I think there are different ways that you can, you know, represent different things. Like, it's too much flexibility for me. Like, I prefer, you know, the structure that you have, like with JSON, the fact that. Yeah, like, you can have nested objects, you can have a list of things, but not... Like, like, YAML just feels like this Wild West alternative. Like, I prefer a bit of structure.

ADRIANA:
Fair enough, fair enough. Yeah, I totally get that. Okay. Next one. Do you prefer spaces or tabs?

JEAN-MARK:
I don't even know. Just, you know. For me, because it was funny. Because when you're saying, the indentation in Python so very bothers people. Like, for me, I just think, let the editor figure it out. You know, get your editor configured so you never have to think about it. So that's, that's actually one of the things I don't think about. Like, I mean, I use the, the tab key, but like, is it doing spaces, is it doing tabs? I think more than likely it’s doing spaces. But I don't care. The editor is, the editor is configured to just do the right things. I do have think about it. So.

ADRIANA:
Right on. Right on. Yeah yeah I, I totally agree with you. Like, configure it once and then don't think about it again. Cool. Okay. Two more questions. Do you prefer to consume content through video or text?

JEAN-MARK:
Maybe video? Sometimes I like video because it's, it's easier to. Yes, I guess sometimes I prefer video, you know, just seeing somebody, seeing a human, you know, talking through, you know, the expressions, the the intonations. And, you know, there are certain things that you pick up, you know, just from, you know, hearing a human. Because there's so much that I think is embedded, you know, just watching a human talk that you don't get a lot of that tone. You know, a lot of that, you know, when you’re just reading text, because you, I feel like you have to reinvent that for yourself, in many ways, when you, when you're just reading through something. And I feel like video is kind of cheating because it does a lot of that for you. So you actually just get that for free. So yeah.

ADRIANA:
Oh, nice! I love that perspective. That's so cool. And then final question, what is your superpower?

JEAN-MARK:
What's my superpower? I'd say my superpower is. It would have to be something to do with problem solving. Like, I, I think I have a really unique way of of looking at problems and solving problems and, like, it doesn't matter how chal lenging it is. Like, I always I'm able to find some interesting way of solving problems. I think that's that's my superpower.

ADRIANA:
I think that's, so cool because, you know, I, I find oftentimes some people don't associate tech with creativity. Right? And I honestly think tech is one of the most creative jobs. And to be able... and we're afforded this ability to solve problems in like nonstandard ways. And then, you know, speaking to your superpower, like being able to look at problems in different ways and solve them in like different ways as well. I mean, that's what leads to like, innovations and building on ideas and all that, which I think is amazing.

JEAN-MARK:
Yeah. Which which is something I really think about a lot because like, I think like, one of the keys to like, problem solving in like really novel and interesting and innovative ways, I think is just the ability to be able to, you know, break down a problem that you have into like first principles and you really start to understand, okay, like these are the elements of the problem I'm trying to solve. And then that enables you to look at a wide variety of other disciplines now, where they've probably solved that problem before. And, you know, I think that's where innovation really comes in, because you're able to to look at, you know, this problem from a completely different angle, completely different perspective, and you're able to pull on, you know, experience and experiences of others, you know, and you know, look at look at other ways that that that problem has been solved, but just from first principles and then, you know, reapplying and putting the layers back on. Yeah, I think that's, it's like one of the most rewarding things ever.

ADRIANA:
I agree. And I think, you know, you hit on a really important part, which is like breaking down that problem to its essence, because I think oftentimes it can be so easy to get overwhelmed by a big problem and you're like, oh my god... this thing seems impossible. But then it's like, what do you boil it down to? What are the like the main things that I have, what's the thing that I have to solve at the end of at the end of the day? And then solving that problem and then building, reconstructing it, right, as you said. And as you reconstruct it, you, you can find like interesting things that you had not even considered before, which I think is so cool.

JEAN-MARK:
Yeah, yeah. I really love that idea of breaking things down because, like, I mean, one of the things I've done several times is, okay, just try and break it down. I explain it to my wife and, you know, get her perspective on how she’d solve, like a simpler version of the same problem. And then you just work in reverse. Because, you know, once you kind of step outside of the box of, oh, it's this server and it's a gRPC, and we're trying to connect this thing to this other thing, like it's actually not that unique. You know, because we've solved like right across the world, we’ve solved so many different problems and it's it's just really exciting to think about, you know, you know, a lot of the paradigms that we have today, they're just, they're just, you know, variants of problems that we've seen before, but just masquerading with different names. That really throws me back to the university, because I remember when I was doing my, I think it was my Master's in computer science, I was learning about the different networks, different network types. So you remember when we talked about, like, you know, GPRS and so on. And so I learned about... how 2G networks are structured. And how 3G networks are structured. And then it really started to annoy me because I realized that, hey, look, you guys have the same components, but you just give them different names So in 2G you have a set of components that you know, that do this, that, that. And then you come to 3G. It's like, okay, roughly the same set of components, but because it's 3G we have to change the names And then you come to 4G and it's like, okay, different set of components. Structurally, they're kind of doing the same thing. But because it's 4G we have to give them different names. Right. And it's the same thing that applies like in tech. I think, you know, to any other discipline, whatever problem we're trying to solve, chances are, you know, that problem, it's been solved elsewhere. And, you know, we can draw a parallel, if you know, we’re careful enough to just break down the problem. We can actually start to see, you know, examples of how, you know, similar problems have been solved.

ADRIANA:
Yeah. It's so, so true. Like, I, I found, a number of years ago, I was working in a company where they, they were using, HashiCorp Nomad, for their workload orchestrator instead of Kubernetes. And I never... I heard of it, and that was it, right. And I’d never used Nomad. I’d used Kubernetes. And so I'm like, I'm trying to learn Nomad. And so I'm like, okay, I'm trying to draw parallels. What's similar but what's different. Right. And drawing on that preexisting knowledge really helped me... like having had that base, right, really helped me understand Nomad a lot better. So, to your point, I think having having something as, as a basis, to be able to compare, I think makes a huge, huge difference.

JEAN-MARK:
Yeah. I was going to say, definitely in terms like even how our brains work, like, the more like we draw kind of connections to something that's already established that we, we understand well, it really helps us to accelerate just our understanding. And it helps with retention as well a lot.

ADRIANA:
Yeah, absolutely. I mean, even with, like, learning new programing languages. Right. Even if it's, you know, something there, I mean, there are obviously like programing languages that are similar. And then there are ones that are like, similar but different, but still having like a base, that base level of understanding, it's like, okay, well, everone... everyone has a loop. Everyone probably has like every language probably has like an if else. Variables. What can we. What can we start with like, you know, we have like some common elements. And then. and then figure out the ways in which they're different as well. I wanted to ask because you said you, you know, you ran, some, some stuff past your wife when you have, like, some of these, like when you're problem solving. Is is your wife also in tech?

JEAN-MARK:
She's a pharmacist.

ADRIANA:
That's awesome.

JEAN-MARK:
But more importantly, she's incredibly smart. So, like, I always run stuff by her. She's she's a great problem solver. So, you know, I use it as a cheat. So I just need to break down my problem. Like I get some perspective from her. Always helps.

ADRIANA:
That's so cool. And it I guess the cool thing too is it forces you to break down a problem in a way that she, as a non techie, can understand, which then has the side effect of making you understand the problem better.

JEAN-MARK:
Yeah, it definitely does because it really takes. Yeah. Because that kind of rigor, to be able to, to, because like, it's one thing that comes to mind is just thinking about this whole, I mean this idea of if you read something like, you know, that helps, right? But then if you actually get to the point where you can actually teach someone else, like, that requires this advanced level of rigor, and you really have to understand the material and to really test your understanding because like there's this whole saying that causal knowledge, is nested, is deeply nested. Because, you know, when you, when you, it's, it's easier to think you understand something. Right? But it's as soon as you start trying to actually relay that to someone else and you start even, even just explaining it to yourself. Right. As soon as you start to do that, that's where you start to realize, oh, shoot, how does this thing work? Like, where does this thing connect to that other thing? That doesn't make sense, right? And you have to keep digging. And that's the nested nature of it. And then you dig somewhere, you're like, wait, I don't understand why this microservice actually makes that call to that service. Like, what's the purpose of that? And then you then keep going and it really forces you to, to understand it a lot better.

ADRIANA:
Yeah, I, I totally agree. I find also, nothing forces you to understand a topic better than when you're like having to give a talk about it or write about it. Like I find whenever I blog, on stuff, especially things that are new to me. You know, it's tempting to like and I see this in a lot of blog posts. It's tempting to get like an explanation for a concept from, you know, quoted from another blog post. And I... often times, these explanations are like, like... what? What are you saying? What? What does this mean in actual human terms? And so I, I try as much as possible to resist the temptation of just parroting it and trying to figure out a way to explain it in my own words. And I have to say, I give credit to my English teachers in high school. Who. Always put the fear of God in us when it came to plagiarism. So always forcing us to like, you know, re, reword things in our in our own words, explain things in our own words. Or otherwise quote them from the source. So I always have, like my high school English teachers like nagging at me. But I it's a good.. You know what? When you're student you're like, UGH! WHY can't you just copy from here? But I think it's like such a valuable exercise because it really forces you to, like, explain something rather than just, like, parrot something out that you're like, I don't even know what I'm saying.

JEAN-MARK:
Yeah. And I mean, so I think one one way that really comes in, I'm just thinking about like, LMS and everything that's happening now, you know, with LMS being able to generated code and being able to, to generate so much text. You know, there's this danger now, like, I often worry about the industry and like, where we're going as an industry because, we're losing that, like, you know, that temptation that you talked about, like, if you can get something else to actually do the rigor and, you know, understand what's going on and then actually generate the explanation of the thing, right?

JEAN-MARK:
Then you could feel the temptation to be just like, okay, let me just accept this. Or, you know, you decrease the the level of rigor that you're, you're using to kind of vet and validate what you're actually looking at. Right? And it means that we understand it less. Right? And it's really like I think it's like we, we end up having to build like a completely different muscle

JEAN-MARK:
now. Because now that, you know, the code generation can happen a lot faster. Now we really have to build that muscle for being able to read and quickly. You know, really deeply, you know, understand exactly what's going on. Right? Because it's like a lot of time the reading of code happens, like, you know, in our mind, but it's it's actually a lot better when you vocalize. Because, like, that's where a lot more of the rigor starts coming. Because you vocalize, you're like, okay, okay.

JEAN-MARK:
So this function cause this... Wait, why does this function call this function? But, you know, if you're just going to read in Instagram, I'm like, okay, the function called a function. And then you just kind of keep going, right? And we have to find creative ways to, to ensure that we, we, we ensure that we get that same level of rigor.

JEAN-MARK:
So we're understanding exactly what's what's being done.

ADRIANA:
Yeah, I agree with you so much on this. And I think, I think it always brings back also that the conversation about like, where the juniors fit into all this. Right? Because juniors are in so many organizations are essentially being told, you must write all your code like AI assisted, right? Vibe code your code. And like, I think if you're an experienced developer, first of all, you can cut through the bullshit that is vibe coded. And also you can, I think, read... You can tell like a good design versus a bad design. Right. And for a junior, like, I almost feel like they miss out on the I'll put in in air quotes. The “joys” of troubleshooting because like, on the one hand, like troubleshooting. Nothing puts the fear of God in me like, you know, when my code doesn't work. But also there's a certain joy to troubleshooting, right? Because like when you go from like, oh my God, I understand why it's failing. Oh my God, I have a deeper understanding of the problem. And and it leads to like this deeper knowledge overall of of what's going on. And so all of a sudden, I feel like it just expands all the neural pathways. And like, it's this exponential expansion of neural pathways in your brain where it's like, holy crap, there's like so much stuff I understand now. And I feel like, as you said, it's like a different it's a different muscle that's being worked on when you're vibe coding. And I think as a junior, it becomes so much harder because like, they haven't gone necessarily in the same way of like troubleshooting. They've never... they will never experience what it's like to be on StackOverflow in the middle of the night trying to figure out, like. “Why is this thing not working??”

JEAN-MARK:
Post it, and then go and by the next morning refresh and refresh and just hoping, like, please tell me that somebody around the world has seen my question and has posted an answer.

ADRIANA:
Exactly, exactly. Or even, even stuff like, you know, the LLM spits out some code. Like it was funny. My husband was telling me he was like messing around vibe coding the other day and and, the, the AI assistant was like, even doing its own, troubleshooting and stuff, and, and I don't know that, juniors would necessarily understand the troubleshooting process. Like, they would just take that for granted that the LLM would do that. And how do they know that the troubleshooting is correct? Like he's got enough experience under his belt. You know, he's got over 30 years of experience as a developer, as an architect of various solutions to like, yeah, okay, this makes sense. This doesn't make sense. Cool that you did this. But like what? What of the juniors? Like they'll never quite have that same experience. And I think it's a really interesting philosophical question because it's like, well, you know, there's so many things like we we don't we don't do assembly. We don't code with punch cards, but like on the one hand, I will say in.

JEAN-MARK:
Those are non-deterministic systems.

ADRIANA:
Like I, you know, I didn't I didn't study computer science. I studied industrial engineering. So I, I, I don't know how a compiler works. But I will tell you, I did take a microprocessors class in, in university and learned and, and did some assembly language. And I will tell you, I had so much more of an appreciation for like, memory allocation. When I took that course where I'm like, oh, this makes sense. You know, all of that stuff with C with malloc, which was like, oh my God, these errors are so irritating. All of that stuff like, I think having that like base knowledge, like, do you have to be proficient in it? No. But to have like that base understanding to like give you that foundation, that was so cool and so helpful for me. What's your thought?

JEAN-MARK:
Yeah. So I have a couple of thoughts on it. So I think number one is the fact that one of the things that's changing is, junior developers. Well, all developers, have a much more powerful weapon, right? So like, you know, previously we had an IDE and, you know, we had to do this whole debugging thing by ourselves. We have to generate code by ourselves and so on. But now we have this amazing LLM that can just like spit out code and so on. And like one of the things that comes back to me is I remember in the book Observability Engineering, they talk about this, this loop where you basically come up with a theory. So like you're investigating a problem in production, right? So there's this core, loop that you go through. You come up with a theory, you test that theory, and then, you know, if if the theory doesn't pan out, you realize, oh, yeah, it's not that theory. Then you come up with another theory, right? And then you keep, running that loop. Now, and I think what's actually happening is that the speed at which we can do that loop is a lot faster. Right? And I think what's unfair to juniors is they don't necessarily understand that loop yet. Right. And they don't understand the, the power of that loop and like why that loop is important. Right. Because I think what you talked about in terms of, you know, really debugging things, feeling the pain of like, why is this thing not working to like the, the joy and the satisfaction? Yes! Like, finally! Like, you know, going through that joy and so on. Like that's creating neural pathways. That that's helping us really understand how how things work. It’s changing our mental model. It’s expanding our mental model of how like, system works, on how different things work until they're connected and so on. And with the LLM, like, being used as a tool, like the way I see it is that we can really accelerate that loop, right? Because like as a senior engineer, you can use an LLM to test a lot more theories, right? Because, you know, like talking about that whole, idea of StackOverflow. Like, that's a really protracted process, right? Where you have an error. You're like, okay, I don't know, like what's causing this error? Okay, let me go post on StackOverflow. Thirty minutes.

Right. All right. Let me Google in the meantime and see, like if there's anything I can find. Couple hours, right. And then you still don't find out, and, you still don't find an answer, right? So, like, tomorrow you come back and you're like, okay, let me actually check StackOverflow, see if anybody saw, like, what was happening. Okay. Maybe let me reach out to some folks, right? In the community. Let me check other people in the company if I've seen that. Like, all of these are really long, feedback loops. Right. But with the LLM you know, because it's so powerful, like, you know, it's like it's trained on so much data on the web that it has so much context already. And then, of course, like with MCP, model context protocol, you can hook it up to other things like context. And this is one of the ones I use, so that it brings in documentation from, from different places. Right. So that allows us to do that loop a lot faster. Right. So I could say, for example, say like, hey, I'm wondering what's causing this problem. Like I'm thinking maybe 1, 2, 3 of these things could be, wrong right. And then I could say, maybe I don't even know how to verify those things. And I could just ask, like, how can I go about verifying this, right? And it tells me. So then I'm learning. Oh, that's how you... Oh okay. So ah! So that, okay, so that's actually a command that can run and blah blah blah. Right. And so like I can cycle through like testing so many different theories like so much faster. And like I think we can really accelerate like how so many of these mental pathways and our mental understanding. And our mental model for how the entire system works. I can really accelerate that pace. Right. But then I think it comes with time. And I think, you know, this generation of like senior engineers, having been through many StackOverflow days and the Google days, I think it's easier to appreciate that acceleration. But, you know, for junior engineers who are just coming in, it's hard not to look at a LLMs as like, an authority. And it's like, oh, this thing is like, so smart. And it's like, okay. And it's not like they like, you know, to be fair to them, they don't necessarily know how to differentiate quality. They don't, you know, they haven't written and, you know, felt the pain and, you know, seeing things break in production and seeing how, you know, different patterns and so on. And, you know, just that level of, rigor and the level of evaluation that they can subject, is really hard.

And so we're asking them to... to learn about this loop and, you know, to learn to accelerate, to use that, that loop effectively, using LLMs, which is, which is really hard. And I think, you know, mentorship, I think, will help a lot with that, you know. Really helping engineers, some of these junior engineers to really understand, like, these are the ways you are training and stuff. And like, I'm really hoping that, you know, just in general, you know, I'm seeing like, Anthropic put out they had put out an AI fluency course, like a mini course and I'm sure there are lots of others. I'm like, I'm really hoping that, you know, when a lot of these things, like industry starts to shift and, you know, junior engineers get the help they need.

ADRIANA:
Yeah. And now, here's a question for you. Because the I thought of this because of, something that my daughter has experienced in her high school. So she said, because of AI Everything, you know, when she started high school, even middle school, like, she would bring her laptop into, into class, but because because of teachers being afraid of kids, plagiarizing, using AI, relying too much on AI, they're actually having to go back to like, first principles and handwrite a lot of stuff. Which is quite interesting. It's it's kind of hilarious. And I feel like, you know, on the one hand, I'm like, oh, this is this is pretty neat. On the other hand, I feel like, can we just find a middle ground? Because, like, why can't they also teach the students to leverage AI? Like, you know, my my thought process around all this in general is like, I'm not saying junior developers should never use AI. I'm... my thought is, wouldn't it be interesting if we required, rather than having our junior developers using AI from the start, why don't we require them to actually do things without AI assistants and then gradually introduce that so that they have that flavor? For what problem solving can be? That that's one way, I think to approach it. And I guess the the other way is, maybe we we give in to it in the sense that we, we have to, maybe retrain ourselves how to how to code in the age of AI and maybe... So then providing maybe not not saying, hey, we must code the the olden days way of like 20, 25 years ago. But maybe like maybe have an emphasis of like what does proper, you know, it's like what you were saying with, that course on AI fluency. Let's teach proper AI fluency so that our juniors aren't basically, like, left going, well, left producing crap. Essentially. We don't want that. Right?

JEAN-MARK:
So I have a couple thoughts about that. So I think primarily one of the things that I think as, as folks that are on the frontier of, you know, seeing, you know, what LLMs can accomplish today, I think one of the things we have to be very careful of is we don't want to be stuck being those old people who said, you know, don't use calculators, only use pen and paper, right? Only work things out the old way, right? Because the truth of the matter is, this is a new level of abstraction, like whether we like it or not, like this is a new level of abstraction. And I think one of the things that is, is, fundamentally different is that the fact that this is a non-deterministic, abstraction, which is, I think, very different from what we've seen in the past. Right. And when I say in terms of non-deterministic stuff, folks who are not familiar. It's just this idea that if you give one input, you always expect the same output. Right? So a calculator is a great example. Give it two plus four, you always expect to get six, right. You always expect to get an output. But with LLM, you know, you put in the same input ten times, you're getting ten different results. Right? So so I think that that's one thing. I think we have to accept the fact that, okay, this is a new level of abstraction, right? So we're not using pen and paper anymore. This is a calculator. And this is a really powerful calculator. So I think we have to figure out what are the right set of guardrails that we put in place, so that people can learn how to use this thing effectively. Right. Because I'm pretty sure that like, if we go back and look at, like, again, the introduction of the calculator, I'm sure people had like lots of similar concerns. Okay. Oh, we were afraid that people aren't going to learn how to use math properly. You know, people are not going to learn math principles. And I'm sure there are some professors that, you know, probably had heart attacks because, you know, they're like, oh my. Like, this is the worst thing that could ever have happened, right?

And like I said, we don't want to be stopping those people, right? What we really want to is really want to understand, okay. Like this is something that's really powerful, but we need to think about guardrails. So I go back to your example about like weather, like do we need to do we need to basically say to juniors, for example, okay, now you need to code without an LLM. So I think that's one strategy of putting some of those guardrails in place, because I think inherent in what, what it sounds like the goal is there, is that we want them to learn how to use this thing effectively. And I think, you know, that's one possible strategy, right? So we could say, okay, just don't don't use it at all. Right. And I think the strategy has to vary based on the environment and based on the processes that we have in place. Right. So but like some of the things I'm thinking about and don’t have all the solutions to this, but like I'm thinking some of the ideas that comes to me, I think about like Cursor has like are dot rules thing now. Right? Where you can say and specify like how you want to behave and you use like a rules file to confine, you know, just how confined some of the flexibility of the LLM. Right. And you teach it structure. And you have things like age and skills where you can teach different skills and so on. I think within some of that framework, where we're able to basically describe to the LLM and put guardrails around the LLM, I think that's where we start to encode some of the, the practices and the processes that really help to inspire that growth from junior engineers. Right.

So like one of the things that come to mind is I think about, you know, I use LLMs for like, system design interview practice, for example. So, you know, if I want to do a system design problem and I've seen, you know, lots of folks do this right, where basically what you say is you say, okay, walk me through this. You know, don't give me the answers. You know, you know, let's do a turn by turn. And, you know, that way what you're doing is you're really constraining, and you're really helping to put those guardrails in place so that you ensure that it is used the way that you want it to be used. And I think of it and I think, know, the the responsibility really falls to especially those who've had the experience and understand you know, you know, that that experience of like the core debugging loop and really understanding the benefits of really understanding exactly what we're doing. Like we have to take that experience and we have to say, okay, how do we help folks to get the benefit of that experience with a more powerful tool? Right. And which is part of the hard part because we will have to minus the the slow tools that were had, you know, five, ten years ago. And then we have to reimagine, okay, how could we have done what we did before with a more powerful set of tools, but just much faster? And like, what guardrails do we put in place so that we preserve those foundational elements that really help to be flexible?

ADRIANA:
I really like that. And so by by having some of those guardrails in place, like even even like your, you know, instructions, files, that describe exactly how things are to be done. It also, forces your junior engineer to look at those. And I guess it has two effects, right? One is like, oh, now I know what a good instruction file looks like. Secondly, you've basically codified best practices in a file in markdown format, which is extremely valuable, which is, it's funny because, I, I think back to the, you know, when I started my career, 25, it'll be 25 years this year. 25 years ago. You know, there's all sorts of, like, style guides, right? Coding style guides.

JEAN-MARK:
Exactly. Yeah.

ADRIANA:
You know, there was...

JEAN-MARK:
I remember those.

ADRIANA:
Right, it was, it was. And it was.

JEAN-MARK:
CSS style guide. HTML style guide.

ADRIANA:
Right, right. But like, you know, you still had to rely on people to follow them. And now you are saying, like you, we have a means of finally enforcing this. Forcing our will. Our coding will upon people, if you will.

JEAN-MARK:
Which is actually a really interesting example, because if you think about the evolution of even standards, now we have design systems, right? And like so many people have design systems and what actually happened there is, you know. So in the older days when you had a style guide, like you had to you had to, like you said, rely on people to follow it. And then you had to have some kind of gatekeeping somewhere. You know, hopefully that was actually a linter and not like a human having to, you know, prod people. Hey, you didn't use this prefix in this class, right? But then how that evolved is we stopped arguing with people, right? And we actually just encoded it into our design system, and it's like some of these rules are just deeply encoded, and you don't have a choice, like you don't have a choice anymore. Right? Unlike some of those elements are just completely removed. And what we're left with is like some syntax that folks can use and like hopefully, you know, we're preserving the elements that we actually want people to learn, right?

ADRIANA:
Yeah, yeah. You're basically saving saving people from themselves. I mean, yeah, and that's why I love what you said about about guardrails. Because in, in, you know, there's, there's the creative side of tech, which I think is something we all appreciate. But then there's the let's please follow some bloody standards so that, you know, it doesn't look like a fucking mess. And we all, like, understand each other's code because there's nothing that drove me crazier, especially in my Java days. Reading someone else's code and and then, like, I'm used to formatting my code a certain way, and then other people are used to formatting their code a slightly different way, and I had to stop myself from like, going in and reformatting their code my way, which is horrible. Like, you know, I, I resisted temptation, but, you know, there's that. Right. And fortunately, modern tooling, in, in the form of, of AI assistants and instruction files in particular, can can help prevent this from happening because now we're all following the same style and you just gotta do that, which is awesome. I see that as a huge plus.

JEAN-MARK:
Yeah, definitely. And I mean, even with LLMs, like I thought that was also like a really cool idea. This whole idea of LLM linters, I think, brings us to like, a next level of what we can do because, you know, with linters you have like, you know, a lot of linters are static types are basically that take your code and, you know, build out what is called abstract syntax tree. So they're basically just breaking your code into a tree and then it traverses the tree trying to figure out if the code is structured in a certain way. And like largely and, you know, you have some simpler, linters that don't use, don't need to like, build a whole tree. But, there still were lots of limitations in terms of what we could enforce. Right. But, you know, with LLMs, it brings us to like a whole new generation of different kinds of things that we can enforce. Right. And I think, again, using those guardrails and, you know, starting to throw because it's, it's so much better, you know, to let somebody argue with, a robot about certain things that we've already decided, like, if it's if we’ve decided two white spaces. No. That doesn't need to be human to human conversation. You can't argue with your linter after we’ve like, already said to the linter, hey, it's two spaces. And it's the same thing. I think we can leverage some of those some some of those examples to try to enforce some higher level paradigms as well. So it's not just, you know, like Python, sorry, not Python. Like Pylint is like what we use in Python community a lot.

JEAN-MARK:
And, you can really start to enforce, you know, some ideas that are much more nuanced. So maybe you want to talk about your architecture layer, like, code, you know, some of these higher level concepts like coupling, like we don't want, you know, different things to be too coupled in terms of how components work. And, you know, you can use those as teaching points. Right? Because, now, that's now where we talk about this whole idea of trying to embed some of the knowledge and, you know, all of that into, into the system and into the guardrails so that, you know, as folks who are not as familiar with these patterns and why they're important, we can use those as teaching moments.

ADRIANA:
Yes. I love that so much. Oh my goodness. Yeah. All of a sudden it opens up this whole world of possibilities. And it goes from like, you know, LMS can result in like bad habits to like, no, let's use the LLM for good. And to, like, structure your project properly when it generates, code for you. Now it's following a particular coding style guide. So there there is no, there is no question. Or like even. Yeah, I mean, as you said, like decoupling. Stuff like API design. Like that all... but also I think providing providing as you said, the mentoring to your developers so that it's like, do you understand why this is happening this way? You know, like so that they know where it's coming from rather than like, oh, magic. Right? Like that's the way it is for all projects. But like there's this magical like instructions file that has all the things that I need so that when they go to their next job or next team or whatever, they're armed with that knowledge.

JEAN-MARK:
Yeah. I mean, it's you you touched on it there. I'm glad you brought by the point of mentoring, because I think it's so important. I can think of so many critical things that I learned from other senior engineers as I was, growing as well. Things that stuck with me, you know, like, just like how to debug. And, you know, I've had the privilege of also sharing my workflow with lots of other folks, and it's been incredibly helpful for them. You know, you know, somebody will come and say, hey, Jean-Mark, can I just shadow you and see how you debug this problem. And I get to show them my process and like, how I'm thinking and I'm going through it step by step. And I think it's going to be so important again, because we have to blend, the best of both worlds.

Like, engineers of this generation, we understand the pain of having protracted feedback loops and having tools that, like, are just so slow and like we have in our hands now, a tool that helps us to really accelerate that feedback loop. But then we have an AI-native generation that, you know, they're much more familiar. You know, at least some of them are much more familiar with AI. And, you know, they're growing up on this. They're they're using it a lot more. And in many ways, they have a higher fluency than we do. So it's really how do we blend the best of the both worlds to ensure that, you know, we inspire growth. And, you know, we're also growing our senior engineers.

ADRIANA:
Yeah, I love that. That's that is just a perfect way to to wrap things up. We are, coming up on time. So before we go, though, I wanted to ask you if you had any parting words of wisdom for our audience, whether it's related to vibe coding or career or anything that kind of tickles your fancy.

JEAN-MARK:
Yeah. I mean, I think when I think about it, I guess that’s top of mind for me now. I think, let's let's learn to use it. Let's let's learn to use it. Let's, let's all figure this out together. Let's share as we're learning, you know, let's share with each other and let's see how, you know, whatever patterns we're seeing that are successful, let's share those. Whatever better. Interesting that are not successful. Let's also share those. I really love some of the some of the, feedback I'm seeing from like honeycomb. Like honeycomb is really great that, you know, being public about lessons that they've learned, and things that went well, and things that don't go well. Let's not be worried too much. Like, we've, we've, we've weathered different, different, you know, different, different times where new abstractions have come in and we've had to really adjust.

JEAN-MARK:
So I think we'll be okay.

ADRIANA:
Oh, I love that. That's such a great way to, to leave this off. Well, thank you so much Jean-Mark for, geeking out with me today. And y'all, don't forget to subscribe and be sure to check the show notes for additional resources and to connect with us and our guests on social media. Until next time.

JEAN-MARK:
Peace out and geek out.

ADRIANA:
Geeking Out is hosted and produced by me, Adriana Villela. I also compose and perform the theme music on my trusty clarinet. Geeking Out is also produced by my daughter, Hannah Maxwell, who, incidentally, designed all the cool graphics. Be sure to follow us on all the socials by going to bio.site/geekingout.