James Apple 0:00 Well, I promise to do X men origins this episode. James I've disappointed a lot of people in my life. No one more than my family. I have to keep this trend going. When a friend tunes in for you feel the disappointment my parents feel through the microphone by next week, Frank Ianelli 0:28 so you've been content creating for quite some time pretty much your whole life. Yes, you're a content creator. Some would say, big famous YouTuber, you've got a Twitter bot. And we didn't even talk about this. Okay, this isn't on the list of papers. I want to know like, Yeah, you've got these famous software developers out there on Twitter. Yeah. Coming up with all these articles and medium articles and you know, their own blogs. Yeah. Sharing all this information. This knowledge trash information. There's a lot of trash. There's definitely a lot of trash JW tees are insecure. Why do they say click Beatty? I know, frustrating. James Apple 1:06 They just need to be more nuanced. I know. That's a dumb thing to say. Because obviously you need traffic. But yeah, it's a soft, it's going to be around on the internet for 100 years. So you might as well make it a little bit more raisins. I think getting that much in advertising. I don't know. I gotta look to other industries have this long. If you're in sale? Of course you do, actually. Sorry, I just realized Frank Ianelli 1:34 I'm actually guilty of clicking those articles where it's like view versus react. Which one's better? I've clicked that at least 100 times. But I still don't care. But I'd like to read. I don't know. It's like a James Apple 1:46 those. Those are always so fucking shallow. It's like the guy who's never used either react or view or he's used one or the other. In one side. Frank Ianelli 1:55 Like they just build a Hello World on both. James Apple 1:58 Yeah. And it's like, well, as you can see, the React one is much smaller. So therefore it's a much superior. Frank Ianelli 2:03 Actually, we need to get Jake on our expert camp. cohort is an actual view guy. He's actually done for you for like, he doesn't view for like two years. One of my favorite people have a great perspective. But anyway, James Apple 2:15 thanks very attractive, as well as a Twitter post. Yeah, he's got nice hair. Frank Ianelli 2:18 Jake. Hi, how are you? Hey, he does. Hopefully he listens to this one. But I want to what I want to know is how do you get as famous as Dan Abramov. On the Twitter? I, you've been reading some of his articles? James Apple 2:32 Yeah, unfortunately, you know, I, I hang around on the outlets for the articles. I look up some problems. And eventually I'm led back to a Dan Abramov article. He made one that was controversial a few months ago. Which one did you read it? It's, I think it's called goodbye clean code. Oh, yeah. Frank Ianelli 2:52 You're telling me about that. I didn't read it. But James Apple 2:55 he was just he posits that the whole clean code thing might just be like a scam. Well, maybe it is. What's his name? Uncle Ben. Go Bob. Uncle Bob. Sorry, I've had to remember that. I've had a few drinks. He's one of your heroes. I actually really don't have memory at all of names. I know who he is. He's the white guy. The white haired guy. Bob RR Martin. Yeah. Bob Martin. Yeah, of course. Yeah, I love I've read everything that he's written. Clean architecture, clean code, all of that stuff. Yep. Not even targeted at me. Like is the first version I read. I think he updated clean code so that it's not about Java. It's about JavaScript. How old is that book? ancient? Yeah, yeah. first principles still live on look. The only things that matter are the things before the advent of code like clickbait. Frank Ianelli 3:49 But not in dance. Well, Dan said it's over. Yeah. However, the line in the sand. Let James Apple 3:53 me just roll this back one second. How's that course going? That you bought? Speaking of clickbait, I know you bought a react course for like some amount of hundreds of dollars. Speaking of clickbait, so Frank Ianelli 4:04 what happened was, I follow Kent C. Dodds. And he was he was releasing a big course epic react. Yeah. And I was on the mailing list for ages. Because I thought, you know, I don't miss out when this thing launches. Anyway, when it did launch. The price was 300 Australian dollars, maybe? Yeah, 350 yet, and then I thought to myself, Ah, that's a bit expensive. Who would ever pay that much? I won't pay 350 for costs, like Nah, don't worry about it. Anyway, I kept still on the mailing list. And then about a month later, it's like, oh, now it's worth 600. And I'm like, oh, maybe I should buy it. James Apple 4:41 It's not like supplies or demand of this course. By the way. This is a digital course. Frank Ianelli 4:47 Anyway, didn't buy it. Anyway, got up to $900 in the final stages, and now I've really got to buy bitcoin. I didn't buy it the dip. I bought it. Yeah, at the highest peak anyway, I didn't buy it. But what it did do was it trained me device by ASAP on the next course it was released by a CSS guy called Josh. Calm camile. I believe his name is Brando, como como. comma, comma, comma. I'm not sure how to pronounce it. But it's a it's called CSS for j s steps. And so yeah, he released the early bird pricing. And I bought it like, straightaway, like I'm not missing out again. Now, I haven't opened the course. James Apple 5:38 That's the that's clickbait media, like distilled one thing like, and also value based pricing. I don't know. It's a great idea. Like, they've got it nailed, like, Frank Ianelli 5:48 Well, the thing is, he wrote a couple of articles which helped me. And like what, tell me, I can't remember now. Like, it's just that he James Apple 5:54 actually wrote a useful article he did. He's What's the last time you read an article that was actually useful? When I saw that one? Yeah. Frank Ianelli 6:01 Yeah. And then he done a couple of other things. And his website is really, really cool. In terms of what he's done with CSS. So I was like, You know what, this guy's probably courses, probably decent. css Daddy, it looked like he put effort into it. And it said it was CSS vagina steps. Yeah. So that kind of stuff. So yeah, sure. Very strange. So yeah, I thought I better get in now. So I will want to get a bit more time. I James Apple 6:28 don't believe Yeah. All right. Moving. You've been tricked. But, yeah, well, I like have you actually been reading articles? So the thing that I've noticed over time, we've discussed previously, like, I feel like articles, have articles gotten worse, or am I more jaded, like in software? Because I used to read articles all the time. Or like every bus ride I got on, maybe I catch let fewer buses. But I used to get on the bus. And I'd immediately start reading some article about like, algorithms or mon ads or something. JW teaser, insecure. Yeah, yeah. But now, almost none of my content consumption is from articles. Frank Ianelli 7:10 I think you need to stop producing content instead of consuming content. No. That's what we're doing here. All right. Sorry. I forgot. Yeah. No, I'm totally a valuable resource. yet. But if you maybe if you take the time to start condensing your thoughts into words, maybe that'll be more valuable, valuable for you instead of consuming other people's articles? James Apple 7:35 I suppose. Yeah. What's been interesting articles that I've read recently. It's just that Dan Abramov. One about react, actually, interestingly, was, is one of the reasons why I fixed that bug. Frank Ianelli 7:45 So hold on. We didn't we didn't get to the bottom of why Dan says clean codes finished. Oh, yeah, yeah. Well, so you've read to Dan, slightly. James Apple 7:55 Oh, my God. That's the thing is, you don't even like hating on clean code is like such a front end developer thing to do such a CSS junky thing? Let me tell you. The. It's, it's, it's more all of the articles tend to follow this pattern. Alright, I got into this code base, I saw something that was not abstracted. I abstracted it for someone else. And then it was wrong. And I got in trouble. I, I can't even enumerate the amount of times that I've seen this in terms of the like, goodbye clean code style writing is then ever evolve. It's not the first in this line of ignore clean code. So Frank Ianelli 8:37 explain it to me. Yeah. What the essence of clean code. What is the code? I haven't read the book? James Apple 8:43 Yeah, I mean, it's, it's about, you know, the solid, you know, oh, yeah. Yeah. single report responsibility, you know, all that stuff. Okay. And not duplicating yourself. Don't repeat yourself dry. all that sort of stuff. Make it legible. Make it good for the person who comes after you got to follow the boy scout rule. Right? With code. Leave it better than you found it? And if you wrote it, yeah, make it better than not. Not good. Previous self. Yeah. Yeah. Learn something while you're at it. very wholesome. Yeah. But yeah, these the the articles seem to follow the same pattern. But they there's no nuance in a lot of these articles where they just say abstraction is bad, essentially. But almost everything in computers in computer science and languages, everything. Everything is based on abstraction. Of course, it's just finding the right abstractions. Just because one time you had a bad abstraction does not mean that you should like tell off every beginner never try and abstract something someone else wrote. Frank Ianelli 9:51 Yeah. That's probably the like, one of the things I used to struggle with was taking something as gospel when you read it James Apple 10:00 Yeah, I remember that. I used to think everyone was better than me like I had a massive inferiority complex. So I'd look at code. And I think I'd never be able to do anything better. So I'd write really shitty code, because I'd be like, I don't want to change the perfect code. Yeah, I'd rather write something around the edges. So I don't have to, like, you know, break this glorious code that the senior developer wrote. Now you just go in with this taste in your mouth before you got the delete key, like, have the keys that I can press fastest RM, enter deletes the file. Let me just fix that for you. I'll just fix that interface that you that you fucked up the first time, fine. That's okay. But that's not bad. Like, I would expect anyone to do that to my code as well go in, you know, no prisoners, code is made to be deleted. Frank Ianelli 10:52 What happens if someone changes your coordinates? And a new implementation you don't agree with? Well, I'd sort of have to see the context, like, what does that mean? You would probably challenge them to say, okay, explain to me why you changed it. James Apple 11:07 Yeah. For sure. And, you know, I mean, it's sort of up to them, if they if they, okay, so one thing I don't like is making something simpler, because it's less lines, instead of making it simpler in terms of there's a difference between complexity in terms of like number of lines, number of files versus being able to comprehend a single part. Like a lot of people struggle to understand that more files, a lot of times, it's actually a lot easier to comprehend. Because if it's well separated, because you can actually separate different pieces of code into different units and understand them individually. And then you can actually keep those pieces inside of your head. The Sandy Mets thing, you don't want your classes to be more than I think it's 80 lines or something. Yeah. If it's any more than that, then you've messed something up. TypeScript, obviously, more Java, Java, it's more so. Yeah. What's she writing? Sandi Metz, she's a Ruby on Rails, she writes a lot of books, she writes 99 bottles of OPI, a hire some really good books. Actually, if you're interested in learning more about object oriented programming without all this, like C sharp Oh, wow. Okay. Well, anyway, I got to open my CSS course first, and then I'll buy we get our trash. Oh p much more important. CSS is just like colors. But yeah, if you if you want to learn about the object oriented, programming sort of system, then Sandy mat is a great place to start because it's in Ruby. So it's super easy to comprehend what she's trying to communicate. And it's even easier to bring that sort of stuff into other arenas, because the principles translate elsewhere. Yeah, keep things small, single responsibility. open, closed principle don't like make things that you don't have to ever change. Frank Ianelli 12:56 Yep. That sounds like it's in line with what Clayton code is trying to. James Apple 13:00 Is it? Yeah, it pretty much is. Yeah. So was Dan against it? I don't know, front end developers don't like clean code. They they much prefer the hacks. But I don't like I don't see many of these people reporting this building very large systems, very large front end applications. He's Frank Ianelli 13:19 built Redux. Surely he knows what's going on? Sure. Yeah, I believe that. He ought he also has said don't use Redux anymore. Yeah. I mean, he's yet he's backpedal a little, that's fine. Maybe he'll come out. There's different use cases, maybe the month, years time, he'll be like, actually, no clean code is good. James Apple 13:38 Yeah. Everything has a use case. Everything in software is a trade off. Yeah, we use reducers. Yeah, yeah. I didn't want to reduce what I think relative to what would have come out of it without the reducer. It's more useful than without for sure. Yeah. Yeah. Just because the pattern is simpler now doesn't mean that it's any less of a useful pattern. So cqrs. So what's next, therefore, command and query resource separation. So like you receiving data is separated from you issuing changes, so you don't just mutate a state and then like, Listen for that mutation somewhere else, you actually emit an event. And then there's a different system that manages returning you that data. Okay, and like so it's both at a small level in terms of software architecture, you could say, I expect to send commands to something and then receive a different state, or it could be at the infrastructure level, like we have a literal like EC two instance running that manages, like the queries, and one that manages the commands. So a frequent use case, for example, for C cqrs is in large organizations, where you would, you could have two different entities. So let's say we had posts blog posts, we only we might only need two instances running four commands, save post, update, post, delete, post, right because it's relatively And frequent. However, if we've got a million readers, we need to scale that up. So you separate those two things. And you can scale up readers independently of commands. Command and query resource separation. Yep. Anyway, how's that ran? Frank Ianelli 15:14 So? But then there was another day an article you're telling me that you read? James Apple 15:19 Yeah, that was the one that one you liked? Well, it was more about fundamentals. What was that one? He was the he was about understanding how react actually does it diffing I think I can't remember the name of it. But it's one of the Frank Ianelli 15:34 last time you like get into these you like go down react rabbit hole sometimes. Yeah. And then you'll be like, oh, okay, James Apple 15:40 well, it's because I get frustrated because react is like a DSL. And it's not just like, it's not very principled, like, it does not follow the expectations of code, in a lot of ways, doesn't mean it's bad. I obviously use it all the time, I probably would use it if I had to build an app from scratch again. But he was talking about the diffing algorithm. And we've had a bug in our app where, for example, inputs would shadow each other. That makes sense. So we would have two different items. There's like a case statement that swaps between these tasks, essentially. And occasionally, when you would change the between two of the same type of component, the input would be identical. So we've been using react hook form, and we've always assumed it's just a react bug. So we've like done these weird little hacks, we've got hacks all over the place, man to deal with react hook form, thinking reactive form was just sending constantly. But it turns out, it's actually fundamentally a react diffing issue. So I don't know if you know this, but the key, you know, key in react as a prop, that doesn't only have to be applied to arrays. So you can actually apply key to any, any item or anywhere. And if that value changes, it changes the identity of that, and rerender that function. So for example, if you have two resources that have one prop different, which is like the idea of a task, for example, and you're swapping between the two, you can change the key and react even though the tree is the same, it will update them in assume that the like, the actual values are different, you won't perform an on change event, for example, for inputs. But it would have if you didn't add that key, which is the sort of bug we were having. So like you would swap between one task, and it would say like the title would be changed. So we had this hack where you'd have to, like reset the form state at the start using a use effect. That's right. Yeah, there's like an on Mount hook for each component that like, verifies, Frank Ianelli 17:54 like we're setting the, we're setting the default value, I think what we want, it mounts James Apple 17:59 Yeah, to either an empty string, or nothing. That was already handled somewhere else in the code. So I always thought that was very strange. But I like I didn't dig much into it. Because like, yeah, it sort of worked. So whatever. But I did actually try and debug that, and I figured out what the underlying issue is that the tree looks the same to react. So it renders it as the same component with one different Prop, even though to us logically, we know that's a different thing with a different ID. And he was actually triggering on change events, for the same what what looks like it's the same input. So react actually goes down the entire tree. And if in the same slot, it sees the same type of element, it will attempt to see if it's the same as the one that was there before. And if it is, it'll just change the props of the same identity. Frank Ianelli 18:50 So I'm probably a bit guilty of that, because I always leverage packages a lot, or like in my code. So like, when I want to build something I don't always think are, can I build it myself? First thing I always do is like search for a package. So then when a package doesn't quite work properly, you assume it's the package, I assume, like, I don't think there's anything wrong with the package, but I'm just like, are not playing nice. And then just work around. Yeah, sort of understanding what's going on. Yeah. you implement these hacks, like we just spoke about that react hook for forum is like bug free, because it definitely is not bug free. Yeah. But it wasn't working the way. I was pretty sure that's the code I was writing. So thinking back to it. It's your biggest project. Really. Yeah. So I would have liked got it. Working, like you said, got it working one way or another and like, and committed and pushed. Okay, it's worth it. That's fine. Yeah, fuck it. But it's always nice to know how the underlying system is working. Yeah. James Apple 19:53 And it actually, once I actually take another look at it, I think it'll be dramatically simpler because a lot of it has become working around this underlying issue of identity not being carried across between renders, like the identity has changed. But between renders, it's actually using the same underlying component, which has been the source of a lot of bugs in that component, which I think we can get rid of now, once we revisit it whenever that happens, Frank Ianelli 20:19 yeah, we've worked it out, I'll just do the CSS and you did JavaScript, and it's done. We've worked out the perfect system now. James Apple 20:25 So I'm doing state management. And Frank is doing the colors. It's the only thing I can stand to do, because it's least it's a little consistent. Frank Ianelli 20:40 I think, you know, I didn't really care about CSS until I start using the platform. And then when I use it, I'm like, I can't handle it. I need to fix these things. And there's a contact that I just get get better at CSS, James Apple 20:53 Frank mostly uses the platform in like sales. So he's doing demos at the platform, because he's had to do less. Frank Ianelli 20:58 And then I'll come across bugs mid demo, and I'll like hide them from like a CSS bug or something. Yeah. Gotta make a reminder to fix the other day, I was on a demo call. Like, I actually got the customer to screenshare. And then they were doing something and I'm like, Oh, that is totally wrong. And I quickly like snapshot to fix the slide on now. I'll ask you what it was later. That was it wasn't a big thing. No, they didn't even notice. Most bugs you wouldn't notice. James Apple 21:28 Yeah. Well, top secret however, you know how we made our like, noticeable bug count go to zero. We changed the error display from red to blue. So every error, we used to display a red pop up saying, Oh, looks like there was an issue. But now we just say info. Looks like that didn't work. Thing stays error. It's actually a 100%. uptime system. No 510 ever occurred anymore. Nothing can break. Frank Ianelli 22:00 It just shows you like teaches you about psychology. But really does you put red and people just stress. Yeah, you put. Did you experience that before you change? color red would pop up? And even I would get stressed? Yeah. Just because oh, my God, what is going on? James Apple 22:16 They are like relatively regular bugs. But because we were early early, like, even now we're not like fully handling every error in the UI, right? We sort of just like say, Alright, if there's an error, we'll put it on the queue to be like registered. Yeah. But changing it from red to blue. If anyone's building a products, no angry error, pop ups make them nice. So they put a smiley face in fact, next to it. Frank Ianelli 22:43 So you you remedied that bug from Dan's post. And that's pretty good. Thanks. James Apple 22:47 Yeah. Well, it's Yeah, mostly remedied. But anyway, we'll talk about that later. Frank Ianelli 22:53 But okay, so this is one thing that I've been thinking about is like, Okay, we've got all the articles. So many articles, too many got courses guilty of buying courses. Yeah. But one thing is, a lot of the courses are focused at getting the junior or the beginner developer, someone who hasn't even coded. James Apple 23:16 Yeah, there's not very many that are up to a junior level. Yeah. Whereas the courses It really is. It's not even from junior to like a mid level. It's almost like there's no closure. It's like never code into Junior. Yeah, Frank Ianelli 23:29 yeah. So where's where is the pathway to get from mid to senior, or junior to meet even to meet a good meet? There's always that pathway. James Apple 23:43 Yeah, those the sort of courses that can help you in terms of technology. Like there's different factors to that. Like, what, man, it's such a loaded question. What is Junior? You know what I mean? Oh, it was okay. Yeah. What does it mean? What is a senior developer? And what is a junior developer? And what's the scene? Like a mid? Okay, it's something that I think we get a receptive because we're used to it. But what are your I think it comes down to expectations, like what do you expect from a junior developer and a senior developer? For me, I think it has less to do with technology getting from Okay, so from junior to mid, it's almost entirely tech like technology. Like, will you be able to deliver in a framework if Frank Ianelli 24:26 I give it to you, but even from junior to me, I wouldn't expect a made to understand all the fundamental principles to build great software. James Apple 24:35 I think it depends on the scale of the company. But yeah, cuz like if you're coming from a university background, you'd have more as Frank is currently doing a degree how far you are halfway, halfway through. You're gonna you're gonna know all the principles anyway. So Frank Ianelli 24:52 but when I say principles, it's like, Okay, if I need to build an auth service, do I know the fundamentals? Let's just experience Yeah. Do you think a mid should know what an all service entails? James Apple 25:05 If they've dealt with it, I think that's like a it's a mid level of experience, right? I feel like a means on the company. If I'm going to Google, they probably won't treat me as a senior. I feel Frank Ianelli 25:14 like a mid should be able to understand what a basic or service should encompass. Implement. They definitely need to be emerging. integrate with it. Yes. And then and then understand what they see like a perfect one understand why their service is has imperfections. Yeah. James Apple 25:32 have the ability to self reflect on what is wrong with your own? Exactly. Yeah. Yeah. Yeah. Okay, sounds good. So I think junior to mid is genuinely like more of a technology thing from my experience, like the people who move from junior to and there's more tears in between that. So for example, at a previous company, there was also associate for some reason, scam scam tier in between junior and yeah, yeah. So people like to add like little levels in between is like a fun little. Frank Ianelli 25:59 Well, it is a long time someone told me once you like, No, you can't be a mid until you've worked for two years. And like that's annoying. James Apple 26:05 Now. fakeness? Yeah, yeah. It also depends on like your general experience. Yeah. Yeah. Like you you work with someone I think, you know, right off the bat. I don't think it takes that much. But anyway, like going from junior to mid definitely mostly technological journey. Don't expect them to be handling features entirely on their own that sort of thing. They'll work in a team really well. But mid to senior, what does that mean? What What do you think? What's your experience with seniors? Well, seniors should Frank Ianelli 26:42 be able to architect the whole system. And also as Yeah, okay, discuss why they have chosen certain dis made certain decisions dependent upon on rationalize the decision decisions, depending on the underlying requirements, and also debate, someone who can challenge them on their choices. Yeah, why they why of what they have done is better than the alternative. Yeah. And then guide everyone through being able to break that all down into smaller steps to let the team implemented. James Apple 27:23 Yeah. So I think the more interesting thing is that like going from mid to senior, almost has nothing to do it. Most companies, I'll just for everyone listening. Neither of us have like massive company experience, like neither of us come from AWS or not those kind of developers, we work at startups. 100 200 company, 200 people, companies, that sort of thing, or do tutorials, mainly, yeah. We've got a pretty small company we work for right now as well. But in these sort of environments, what is expected of those people is more maturity of thought, that sort of thing, like understanding why you make decisions, not just following trends, necessarily, but being able to rationalize why one thing is better than the other. Yeah. Yeah. Frank Ianelli 28:09 Okay, so how do you get from mid to senior? This comes back to James Apple 28:14 just chill. You just got to chill. You got to you know, you got to relax. Don't take everything. So seriously. Well, hold Frank Ianelli 28:21 on. Yeah, sorry. I've jumped the gun there. Yeah, go. More questions. Okay. So that's what makes a senior engineer. Yeah. What makes a great senior engineer? Oh, that's a differentiator. What am I not like? Both? Think it's someone who you can talk to like this, those people who hang around for? They've been in the industry for 10 plus years. And just having experience in the industry, you learn so much. Yeah. But then what other kinds of traits Do you need to be? Excellent? Well, James Apple 29:00 I think, you know, it depends. It depends on where the excellence is coming out. For someone working with the senior for me, like I already know exactly who I'm thinking of. And I think you know, who I'm thinking of when I like, there's one person who is the epitome of a senior developer that I worked with previously. It was more of a Yeah. Tony de, that's the shadow. And the the things that really stood out to me was how relaxed he was about changes to schedules, about technology requirements about pull requests, and his ability to rationalize ideas and communicate to me why he did something or and also, even in like a review sort of system less about like, less ego, but more what is the actual value to the company in In what you're working on, I think, like it's even less of a technology role, the more senior you get. Yeah. So it's more about being able to talk to juniors being able to talk to product managers being able to understand when they say, I want to click on this button, and this happens, understand what that translates to in the system, which is not something I think you necessarily expect a moment. But as I've said, these labels are all very every company treats them differently. At AWS, I'm definitely not a senior. I don't think I'd be able to handle their, their their environment with unlikely, but that's not an environment where I would think you could, well, maybe I haven't tried it Frank Ianelli 30:47 until he ripped out. We're just gonna delete it, but he's wrong. No, it's totally wrong. We're gonna put Postgres in James Apple 30:56 no more COI, we're deleting the CLA interface, because it's not good enough. GCP is the standard. We can't beat that. I don't want to be part of it. But, Frank Ianelli 31:08 yeah, that seems like at the initial stage, in the journey of becoming a 10x. developer, you start out highly. With a high focus on learning the technical skills first. Sure, yeah. fundamentals. James Apple 31:24 I mean, you would remember this, right? Like everything was about learning. What's a class? Yeah. What's an object? Everything's good loop? Like, what's, what's the go? What is it? Yeah, Frank Ianelli 31:33 but then it moves into more. Okay, I go up one level into an abstraction of, you know, what's an all service look like? What's a good architecture look like? Yeah. And then going up one level more into be able to debate different architectures, different ways and methodologies of working? James Apple 31:49 Yeah. Well, when you're, when you're a senior engineer at a startup, you're expected to be able to just be given a task, not even you, there's no one to break anything down for you frequently, most companies don't have an architect to handhold, you when you're at a start up here. So being able to just take something and materialize It is one of the big values, but not just materialize it by yourself, because a very junior developer, can probably take your brief, do a really quick react app and get something out. It's making something that works with the whole team, as well as making sure that the systems work, even like an understanding of why ci is important, I think is part of seniority, understanding practices, that sort of stuff. Yeah. All right. So who's your? Who is the who's the most senior engineer? Like? How do you describe the most senior engineer, you know? After think about who, who the most. So you know who mine is? Yeah. They would have been in a different team, though, at the companies that you worked at one Frank Ianelli 32:56 of the one of the guys I really liked working with. He was a senior engineer. He wasn't in a leadership role. But yeah, he was. He was very much a person who was given those kinds of large tasks, and it would see them through from beginning to end, the difficult challenge, like the challenge things that were given as a piece of work that needed to be delivered. And I loved working with him, he would give me we'd like, break it down, break off little pieces of work that I could do, and hand them over to me safely, safely. Yeah. And he would let me do them. And then I would give them back to him. And I would ask him constant questions along the way. And he was, he was very good at not giving me the answer straight away, but kind of teasing it out of you. Yeah, he could learn something. I don't think he did it intentionally. But I think it was just the way he thought about things. He, he wasn't able to just give me a direct answer. Like he wanted me to, to work it out myself. James Apple 34:01 Yeah. I'm just very disappointed that it's not me. He was probably he was. Yeah, but yeah, he was. He was really good. Yeah, working with us good. So it's more of it. I genuinely think it's more of a maturity thing. I don't think it has as much to do with technology, because you can have a very technically skilled, and I had a meeting with someone who we, we both did an internship together. And they, from their perspective, they thought technologically, I could have been, like a senior coming out of the boot camp that we did. But from my point of view, comparing myself to other seniors that I know, like it, it just, it's more of a work, maturity, that sort of thing. It has almost nothing to do with, I know this framework and that framework. It's about being able to like pull yourself out of the frameworks and understand that a whole you Even being able to understand maybe a little bit historically, like, you know, don't don't be fussed about all these frameworks. Yeah. It's gonna be okay. The the industry comes and goes, all that sort of stuff. That's what I really appreciated about the my, my foundational senior engineer, my mentor. So, all right, but he came from the small talk days. So he's seen every wave there's possibly been JavaScript lazy thing. Yeah. So just a little toy language. All the kids are using now. It's one Frank Ianelli 35:28 of those toy apps with JavaScript. Yeah, that'd be fun. James Apple 35:31 If there was anyone I'd want to work with again. Oh, my God. So Frank Ianelli 35:39 we, we joined the boot camp. The thing I loved about the boot camp boot camp was it gave you a clear pathway, daily directed instructions on how to move from someone who knows nothing into a junior nothing to junior here. Why is there nothing? Why can't we have the same kind of thing to move someone from junior to meet is that just that, like the expanse of knowledge is just so wide that it's kind of impossible to do something like that, or surely, surely, in like modern web development, our course could be put together to really move someone from a very beginner mid to a very high grade, mid, James Apple 36:22 you know, there's a there's a system, I can't remember what it's called, instead of doing a course, or something. So we both did a boot camp together, one of the alternatives instead of doing the boot camp, because I was very nervous about the interview. So I needed something that helped me just get a job essentially, in the beginning. There was another alternative where you could rent a mentor, essentially, for like two hours a week. And that was the outside of the course that we both did. That was the strongest other offer, because I think the thing that puts you from junior to med is not only just like, Oh, you've got like more than a couple years of experience or whatever. But it's also you get stuck in tutorial, hell, when you're first starting out in technology, and in my early teens, I can remember that myself just doing like my horrific PHP, MySQL websites getting stuck, everything was a tutorial. And I didn't know how to break out. And doing another course would not have broken me out of that. The boot camp that we did would not have broken me out of Tutorial How because that was essentially just like tutorials, like, everything in education is tutorials, you have to learn how to execute something on your own in a way. And I don't know if a course is actually the right way to bring you from junior like someone who has some experience but needs to move up there technology experience, I think what you actually need is some sort of mentorship someone to tell you. Alright, this is sort of the direction that you need to go to advance. Yep. I don't think you could necessarily have a course that drove someone from junior, intimate. So I was lucky. You need a couch. Yeah, you need you need a coach, or you need to experience. Those are the only options the coaches, the coach, well, that's the I can't remember what it was called. But you that you would work on a project of your own, like build a, like a website, and then they would do some code review for you that sort of thing. Every every week. Like that's the actual thing that I think would accelerate growth more than anything. Frank Ianelli 38:33 I suppose the challenge is you've only got so many hours within the week. So yeah, your coach has to be if you're working in, if you're a mid level developer, you probably working in tech. You need to align yourself with someone who's going to coach you the right way. Yeah, that's pretty much the only way to do it. Which is luck. Really, like James Apple 38:51 where are you going to work? Yeah. Yeah. I mean, neither of us have worked at AWS. So I don't know if they have formal mentorship programs for people who are junior and mids. But Frank Ianelli 39:03 yeah, but the thing is, you know, finding the right mentor who actually wants to lift you up to that level, you need to have challenged. Yeah, you can't have a mentor who's just going to be like, Oh, yeah, do that stuff. James Apple 39:18 I've also, I mean, it's different for every person, because I also have known people who, they're, they're stuck at a lower level, because they don't have self confidence is another issue. You can be very highly skilled. But being skilled in technology can also mean that maybe you've put off some social intelligence, let's say, and you need to be able to have confidence in yourself and your work and be able to say, I deserve this. I produce this work. Yeah, that's something I've also experienced with people so coach can help with that too. For sure. Yeah. But yeah, so the coaching doesn't even have to be like you Should have added another two spaces in your that's that's tragic. You know there. Yeah. But it's more, where should I go in my career? Maybe? How should I have done this differently overall at a whole level? Not at like the small code level? Yeah. Pull Request level. Yeah. Maybe semi column. Yeah. That's that's what he is stands for. Oh, that's right. The linting episode, human linter. If I could only remember what that episode title was. Transcribed by https://otter.ai