Soft Skills Engineering - Episode 472: Should my junior dev use AI and thrown in to ETL

Episode Date: August 4, 2025

In this episode, Dave and Jamison answer these questions: I’m the CTO of a small startup. We’re 3 devs including me and one of them is a junior developer. My current policy is to discoura...ge the use of AI tools for the junior dev to make sure they build actual skills and don’t just prompt their way through tasks. However I’m more and more questioning my stance as AI skills will be in demand for jobs to come and I want to prepare this junior dev for a life after my startup. How would you do this? What’s the AI coding assistant policy in your companies. Is it the same for all seniority levels? Hi everyone! Long-time listener here, and I really appreciate all the insights you share. Greetings from Brazil! I recently joined a large company (5,000 employees) that hired around 500 developers in a short time. It seems like they didn’t have enough projects aligned with everyone’s expertise, so many of us, myself included, were placed in roles that don’t match our skill sets. I’m a web developer with experience in Java and TypeScript, but I was assigned to a data-focused project involving Python and ETL pipelines, which is far from my area of interest or strength. I’ve already mentioned to my manager that I don’t have experience in this stack, but the response was that the priority is to place people in projects. He told me to “keep [him] in the loop if you don’t feel comfortable”, but I’m not sure that should I do. The company culture is chill, and I don’t want to come across as unwilling to work or ungrateful. But I also want to grow in the right direction for my career. How can I ask for a project change, ideally one that aligns with my web development background, without sounding negative or uncooperative? Maybe wait for like 3 months inside of this project and then ask for a change? Thanks so much for your thoughts!

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than keeping your mouse keyboard pencil headphones and other headphones all charged to be a great software engineer this is episode 472 of the soft skills engineering podcast where i'm your host jameson dance i'm your host dave smith soft skills engineering is a weekly advice show about all the non-technical things that go into the technical field of software development like turning your pencil off and on again oh man we have so much crap to keep charged we do i wonder how many things are on my desk that are charged i don't know there's probably like 10 or 15 i i had an apple watch for a brief period of time and i i just i just couldn't stand having to charge my watch i got rid of that one i have one it does
Starting point is 00:00:47 go dead sometimes for days at a time and i just forget about it you're like i guess i won't be able to tell the time for the next three days yep a simpler existence oh man before the invention of the water clock the wrist the wrist worn water clock yeah the portable water clock yeah had complex gyroscopes before they had electronics so it was still pretty accurate no matter how you were moving dave do you want to thank our patrons i do thanks to those that are contributing on patreon where we say their name or whatever they type into their patreon profile name field they are reba reby greasy rep assaults on fringe flyers is merely unconscionable that took me a moment to read nice job okay matthias my actual name on linkedin is yammy debugging in the dark canny
Starting point is 00:01:39 the mobile development ordinary first of his name quote or one equals one drop table myomics jacob chandling bjorn there is a very particular smell coming from your desk please create a spike to investigate the missing semicolon christy the world's okayest programmer noah labhart every time i change my name and you don't laugh i get a little sad inside very well played alexander kutuzov nick molyneux unsalted french fries are not morally objectionable yum if the service org uses a subservice org and the controls of the service org subservice org are necessary pretend it's not i think that's like a sock to control or something yeah i was gonna say this sounds like a uh some security standard thing javier gonzalez chewy ted timbrel simone i want
Starting point is 00:02:30 you to know the coup wasn't personal just business you're still invited to taco tuesday kind regards your boss doing my part to make dave's hearts well but he should probably get that checked dan the optimal name for the for that begins with d from drone deploy also i'm Not a crab. J's W Norton. Unsalted password hashes are morally objectionable. This is true. Never is not just a creator on Mars.
Starting point is 00:02:54 Flamingo emoji. I like chicken. I like liver. Meow mix. Meow mix. Please deliver. Trash Panda. Python dash summit dot ch.
Starting point is 00:03:00 16th of October. A Swift's Python conference. Kyle Boskent. C. Dodds. That guy over there. Jenny Kim. The stochastic parrot. Quinton.
Starting point is 00:03:09 We have not heard from you in a month. Please go see Susan in HR ASAP. Jonathan Kings. And I. Beautiful functional user documentation. unsalted morals are objectionably french should williamangel.net use a cookie banner vote now only doing this to impress kevin kevin i hope you're impressed brayden canes john grant britney ellick beetlejuice cumberbund
Starting point is 00:03:34 oh man they get better every week oh you rock yes nice work everybody nice work should i read our first question yes let's do it all right this is from a listener named matthias i'm the cto of a small startup we are three devs including me and one of them is a junior developer my current policy is to discourage the use of ai tools for the junior dev to make sure they actually build skills and don't just prompt their way through tasks however i'm more and more questioning my stance as ai skills will be in demand for jobs to come and i want to prepare this junior dev for a life after my startup how would you do this what's the ai coding assistant policy in your companies is it the same for all seniority levels well i'm going to say that not
Starting point is 00:04:23 only should you strictly ban all ai for your junior developer you should also refuse to answer any of their questions to you about any topic i think you need to ban autocomplete in their ide ban linting maybe you should just give them one of those keyboards that's just two keys a one and a zero and say listen if you're going to learn this thing start by typing in the bootloader exactly
Starting point is 00:04:48 it was good enough for Seymour Cray it should be good enough for you well I can answer the easy questions here how do you do this? we don't have junior developers right now at the place I work and this is an open question I have what's it like as a junior now in the age of AI
Starting point is 00:05:04 the AI coding assistant policy is use it as much as is helpful for you which is probably more than you think right that's our general policy is it the same for all seniority levels yeah I think yeah we don't have junior devs so we don't have anyone who's sort of like encountering a broad class of problems for the very first time in the most case yeah everybody still has stuff to learn but there's a there's a base framework everybody has at least I I'm worried that this is the end of junior devs i don't know how i mean maybe this is just what people said when the internet became a thing and you could google technical questions instead of like reading through every page of some printed out manual how will they ever learn if they never have to figure it out i don't remember
Starting point is 00:05:44 that i do remember maybe it's because i was a youngster but i do remember giving other developers a really hard time for not googling things they would just come to their co-workers and this was when i didn't create this but boy do i wish i had but this is when the website let me google that for you.com came out yeah you remember that guy i do yeah this is like the most passive aggressive wonderful way to respond to a question yeah it's less helpful now too because you just get a bunch of slop if you google something for someone else yeah you see a lot of ads yeah let me let me advertise that for you yeah yeah i don't know i i you know we were talking about this among my engineering team just uh this week actually and we were talking about it in the context of learning
Starting point is 00:06:28 in a university computer science program. And we were trying to decide like what's best as a learner. And I think we all concluded that there is value in the struggle during the learning phase, but sometimes that struggle lasts longer than is necessary to get optimal learning. You know that feeling when you're just stuck on a problem, you can't figure out how to write the code,
Starting point is 00:06:52 you're banging your head against the wall, you're making no progress. And the more you sit there, the less the problem seems to get solved. and it's like it almost feels like what's that what's that little device pomodoro or something what's that device you put on your desk pomodoro pomodoro yes it almost feels like there needs to be like an ai pomodoro equivalent where you say i will work on this problem for some amount of minutes in order to get that like frustration state where your brain learns things and then
Starting point is 00:07:15 the pomodoro will tell me what is it called again pomodoro pomodoro pretty sure it's italian for tomato that's what i thought too okay so you run that thing and then say it's 10 minutes it's 30 minutes i don't know what the right time is and then you're not allowed to touch ai until that thing tells you it's time you're saying as a as a junior developer or just in general well this is more as a student i was thinking it's like i would hate to deprive students of the of the beautiful opportunity of going through that struggle and then having your brain develop this memory of all the light bulb moments like i still remember as a student a computer science student i was working on this problem of how do i represent a tree structure in a associative array
Starting point is 00:07:54 like you know just like a dictionary and i just couldn't figure it out and it sounds like a silly problem to not be able to figure out now 24 years later or whatever it was but i finally after like an hour of trying lots of different things and getting stuck and stuck and stuck i shut down my computer and i left the lab and i started walking home and i hadn't been more than like 60 seconds down the path toward my apartment when i the answer came to me and and i realized like that hour that I had spent working on this problem was kind of wasted. If I had stopped earlier and allowed my mind to cook on the problem subconsciously, I probably could have gotten the same answer. And I think AI is kind of like that. Like it can short, it can shortcut that
Starting point is 00:08:32 long wait time. Whereas junior developers, if they deprive themselves of using AI might waste time. Like, I don't think I was better off because I spent an hour. I think I would have been equally as good off if I had spent 10 minutes. Interesting. I think I agree with you that the struggle is important and you can convince yourself you know the right answer if you see a thing that looks like the right answer and then say like yeah that's what i would have done yeah but i think if i had a junior developer i would i don't know how you would enforce this but one problem junior devs have a lot is they have a lot of questions and sometimes they're afraid to ask them because they don't want to look dumb true someone's talking about a system and they're like
Starting point is 00:09:14 I don't even know what, what do you mean when you say socket? Some basic fundamental question that seems like everyone obviously understands all this stuff yet. So it'd be, it's really helpful for stuff like that, I think. And it can do a decent job of helping you plan and kind of talk through design trade-offs and discussions. It'd be pretty nice to have access to that all of the time when you're first trying to figure out how to design technical systems. As long as you do still take some effort to think through how I would do this and then kind of go and get feedback on it. If you just say, how would you do this? Then you're probably missing out. But I don't know how you enforce that as a policy. Yeah, maybe. But see, so isn't the counter
Starting point is 00:09:54 argument to that, that junior developers won't know how to differentiate a crappy plan from AI from a good plan from AI? Yeah, that's true. I think to myself, well, yeah. What if the idea had come from the junior developers mind instead like it's probably more likely to be bad than the ai plan so and they still can't differentiate good from bad so have at it like i guess i don't see a reason to deny a junior developer it's like you're already like let's say pre-ai we hire junior developers their ideas were bad like in some percentage of their ideas were bad or worse than a senior developer and you were okay with it then and now you're saying you have this ai who most of the time produces really great ideas and now you can't use it like it feels i have a hard time
Starting point is 00:10:38 justifying that policy yeah yeah so i think i think we're both sort of coming down as like we wouldn't ban it i do think there is value in i think the the the more you build stuff yourself early on the better off you will be maybe i'll be proven wrong by this but it just feels wrong to say and then like tell it to go crank stuff out i also don't think you'd be able to do that do it that effectively though like i look at the conversations that i have and my team has with agents and they require a lot of deep technical skill and expertise to tell it like no don't go down that path i yeah you're gonna get so lost if you keep trying to make it work that way or i don't know there's these constraints you don't understand that are not obvious from the
Starting point is 00:11:21 context i have given you and stuff like that so you mean exactly like junior developers behave anyway like yeah except they spend days down these rabbit holes instead yeah and they can get a lot less done so they they can't say like like i banged it together as quickly maybe you're implying a little bit about this but it's kind of like saying well it's hard to justify even having a junior developer on your team right now because a senior developer can command these agents to write so much code and it does it so much faster and it goes down just as many rabbit holes but as a junior developer would but you can have like five of them running yeah and they're way cheaper way cheaper yeah so i don't know maybe that maybe
Starting point is 00:12:00 that's a side quest of a question yeah i mean i think i have i don't know if i've said it on the podcast i've i've definitely thought it and said it to other people that i i feel like the bar for hiring a junior developer for me has gone up a whole bunch because of the the cost of productivity like the relative opportunity cost not relative just the normal opportunity cost feels way higher yeah like bringing them online versus that's time that could be spent by all the senior folks doing way more way higher leverage work yeah i don't know it feels like the timeline to pay off is is a lot different now anyways you've got one yeah but right so that's not your situation like you you have a junior developer and and i'm thinking like if someone had been
Starting point is 00:12:42 willing to sit let's just imagine myself as a junior developer let's say a senior developer was willing to sit down next to me someone who understood the language syntax that i'm using so well that they could bang out anything I asked them to bang out. And they could explain to me any block of code that I give them and be right like 90% of the time. Why would I deny a junior developer from having that? I would be all over that. I think the junior developer though needs to focus the way they interact with AI to be a little different. And they need to look at the code that's generated by AI and understand every line of it. Read it carefully and be like, what is that and anything you don't understand just ask it like i recently had the opportunity to
Starting point is 00:13:25 make some code changes in a scala code base now i've never worked in scala before and prior to generative ai i would have spent i probably would have spent a few hours like reading up on scala basic syntax you know like i happen to be working on a switch statement and it's a little bit of a different semantics from what i'm used to i would have spent a whole bunch of time just like reading that i would have written a bunch of like sandbox programs to test how it works but now i just took this block of code that I needed to modify. And I dropped it into an AI chat. And I said, explain every line of this to me. And it did it perfectly. And it was contextually relevant to what I was working on. It wasn't just like referring me to some paragraph in a book that
Starting point is 00:14:02 I could reference how switch statements work in Scala. Instead, it was like this exact token means this in this context. It was wonderful. And as a junior developer, if I had had that, it would have saved me a ton of time. I could have learned languages a lot faster. I also am sort of assuming this is in a web development context, because I think that's where LLMs do the best. If you're in, I don't know, like low level systems programming or assembly or something, they're probably not as good. But yeah, I don't know.
Starting point is 00:14:30 So I think we're broadly saying, let them use it as a tool to accelerate their learning, not as a crutch to get a bunch of stuff done that they don't understand. Yeah. And I think, you know, realistically, as any engineer, you should be reading all the code your tools generate anyway to kind of sign off on it yeah and i think as a as a junior developer you must do that it's not like you can just let these things run rampant and unchecked and for you it's got a little bit of an extra requirement which is you got to read it and you're going to stumble inevitably you're going to stumble upon code you don't understand because it's using concepts or
Starting point is 00:15:02 syntax or libraries or packages you've never seen before that'll happen to a senior developer too but it'll happen more to a junior developer and you should you owe it to yourself and your team to just stop and review that stuff and frankly i don't know i just see that as nothing but a a win for learning. And I totally agree with one of the premises in the question, which was, if I deny the junior developer from using these tools, won't that be harming their future career after this company? Yeah, absolutely. It absolutely will. Imagine a junior developer has like three or four years of experience and they go to apply for a job and it's like, oh, what AI coding tools do you use? And they're like, oh, I don't use them. That would look so bad.
Starting point is 00:15:38 That's fair. I mean, there is a big skill set of just using them well. Yeah, totally. I think you've convinced me. I think I came into this saying, I don't know how junior developers work in the age of generative AI. And it seems like it's really bad for making new junior developers.
Starting point is 00:15:52 But I think I'm coming out of it saying, if the commandment is, you have to understand everything you produce, even if it's produced with AI. Yeah. And use AI to help understand the thing that you're producing. That seems more reasonable.
Starting point is 00:16:05 But I bet I haven't convinced you that your next hire should be a junior developer. You have not. Absolutely not. Yeah, see? So it doesn't really matter, right? Like, if you are a junior, this is our advice, but, like, it's hard to justify making that hire.
Starting point is 00:16:17 So, rough time. Yeah. Well, question answered. All right. You want to read our next one? No, I want you to, because it's your turn. Oh, my mistake. She's trying to shirk on me.
Starting point is 00:16:27 Yeah, I'm always trying to get out of these. Yeah, you know Dave, always trying to dodge these episodes. Every week I have to show up at his house, corner him. Dave, come out of your room. it's time to record i don't want it dave we do this every friday okay all right this comes from an anonymous listener who says hi everyone long time listener here and i really appreciate all the insights you share greetings from brazil all right james how do you say like greetings from or to you or something in portuguese back to this oh the to you part you just lost me
Starting point is 00:17:02 what's like a common salutation you could just say oi hola oi okay nice okay jameson speaks Portuguese. A little fun fact. Yeah, some. Yeah, some. And less every year. Less all the time, yeah. Okay. All right, continuing. I recently joined a large company of 5,000 employees that hired around 500 developers in a short time. It seems like they didn't have enough projects aligned with everyone's expertise, so many of us, myself included, were placed in roles that don't match our skill sets. I'm a web developer with experience in Java and TypeScript, But I was assigned to a data-focused project involving Python and ETL pipelines, which is far from my area of interest or strength. I've already mentioned to my manager that I don't have experience in this stack, but the response was that the priority is to place people in projects.
Starting point is 00:17:49 He told me to, quote, keep me in the loop if you don't feel comfortable. But I'm not sure that I should do that. That is a scary sentence. And let me know if you have any problems with this. You're like, I just did. Yeah. Oh, man. Okay, continuing.
Starting point is 00:18:07 The company culture is chill, and I don't want to come across as unwilling to work or ungrateful, but I also want to grow in the right direction for my career. How can I ask for a project change, ideally one that aligns with my web development background, without sounding negative or uncooperative? Maybe wait for like three months inside of this project and then ask for a change. Thanks so much for your thoughts. All right. Keep me in the loop if you don't feel comfortable. I could see that coming across as like, and you'll be dealt with if you speak up. I could see that being somewhat scary to some people, but I could also see it being a genuine desire to help.
Starting point is 00:18:40 They want people to be effective. And, man, 500 developers in a short time. That is so many people. Yeah, that's a lot. For a company of 5,000. Keep me in the loop if you don't want to keep your job. Yeah, I think that's the worst way to, like, the most pessimistic way to read this. Yeah.
Starting point is 00:19:00 I mean, good news. You get to learn some new skills. that's cool yeah if you just don't like it that kind of sucks what if we migrate all these python pipelines to java and typescript it doesn't spark a java thing yeah it sounds sounds right let's get it in there yeah we need we need spark in here i mean python is like the ai language i guess i'm just inventing reasons why it's fine to do the stuff that you're working on but if you don't like it you don't like it well yeah i mean if you want to back rename your way into this or whatever what like we're gonna do like apologetics or whatever yeah yeah python's a great language to
Starting point is 00:19:38 know to add to your your repertoire i think it's nice to work outside of your comfort zone or your your preferred stack also i worked for four years at a company that i did go when i wrote code i wasn't writing code all the time there but had written a little bit ago before that but it wasn't ever like my language of choice and even the whole time i was there i was working with some people who really really loved go some of them go was was their chosen tech stack and i still kind of felt like an outsider all the time but it was still i don't know i learned stuff i i gained insight from their perspective and experiences it wasn't just in a problem domain i didn't care about though because i think i can care about most technical problem domains yeah except for
Starting point is 00:20:20 the baby mulchers that's the yeah that's the open dsd reference i mean like the os on the baby mulchers now that's an interesting problem there's a garbage collection joke in there i'll let you think of one the open bsd guy i think his name's theo something he's the one that famously said our license is so what's the word like generous non-restrictive whatever they like open that we don't care if you you fork our software and use it to build baby mulchers Really? Yeah, he literally said that. So it actually was an operating system joke, which is so funny that you brought that up.
Starting point is 00:21:01 Yeah. Yeah, so, I mean, this is a big company. So you have a good news situation here, which is there is very likely a project or multiple projects in this company that use the technology that you want to use. Like if you're really set on Java and TypeScript, which I personally don't think is something you should lock yourself into for your career. In fact, I think it would be more harmful to your career to lock in on only two programming languages for the rest of your life than it would be to take this Python job for a couple of years. But let's say you have great reasons you want to do Java and TypeScript for a long time.
Starting point is 00:21:34 Surely somewhere among these 5,000 employees is a team or multiple teams that are doing that. So I would say start getting great at Python, learn everything you can, do a really good job here, impress your boss, impress the org, get some great results, build some clout, build some reputation and navigate this org chart, which takes time. I've worked for an org, James and I both have. We've worked for orgs with these kinds of numbers and it takes a while to get to know people, but start asking around and you'll get to know teams, figure out where they're hiding and find out the teams. And then after you build a good reputation for yourself, look into
Starting point is 00:22:06 the transfer process and see if you can make your way over to one of those teams. Yeah, it's way easier to do if you have been successful. It might be a chicken and egg problem because maybe you'd be more successful if you were in the tech stack of your choice. But I think if you're a really, really excellent engineer, you can do excellent work in many different tech stacks. So I think if you kind of prove your value, then the company has more incentive to keep you happy and keep you around because you've demonstrated you can do good work. And you have a little bit more, like Dave said, knowledge of the environment. You know where to go, who you would like to work with, what kind of projects would be fun. But it's critical for you to get a reputation beforehand.
Starting point is 00:22:44 I think so. I think it's a lot harder. I mean, I'm sure you can do it. I'm sure you can just say, I would like to transfer, please, to a team that does thing X, and then you get dumped in some internal transfer pool or something. Yeah, who knows what that process looks like. I feel like usually it's easier if your boss wants to help you. Yeah. Yeah, exactly. And keep in mind that leaving this team might make life harder for your boss. Yeah. So I don't know. You know what would be awesome is if you found somebody working on a java project that you want to work on who themselves yeah wants to work on python yeah if you could swap yeah i've i've done all the legwork for you manager you don't have to do anything yeah you
Starting point is 00:23:21 need like an external like not the job board you need like the the personal ads of like i'm seeking this kind of person you need a corporate internal transfer tinder yeah exactly yeah instead of swiping left and right on people you're swiping left and right on job descriptions yeah and then if they swipe left or what's the what's the i've never used tinder you swipe right if you like it i think so so if you both swipe right you swipe right on the java typescript job and they swipe right on the python etl job and then it matches you up if if they swipe right on the job you have and you swipe right on the job they have yeah exactly yeah so everyone just posts their job descriptions and then you can all swipe right on each other yeah that would be a fun project to
Starting point is 00:24:05 work on there was a thing that popped up on hacker news a few days ago that was someone who built tinder but for pictures of your spouse or partner or whatever what you just upload a bunch of pictures of your your significant other to this app locally and then you just swipe right on them all the time what's the point of that i don't know just to be a funny joke about how much you like your partner oh and like what happens if you swipe left does your spouse get notification yeah i hope not i don't know it sounds weird i mean it sounds funny but also like what i don't get it. Well, you grew up pre-Tinder. It's true. I'm not Tinder native. Yeah, I missed it a little bit too. Anyways, I think we've answered it. I think so. Build the internal Tinder. Yeah,
Starting point is 00:24:46 that would be so cool. But really, this seems totally solvable. And also, I'll just resummarize what I said earlier, which is I really don't think Python is a death sentence. Now, Python and ETL might actually be kind of a bad alleyway. ETL is like code I would never want a human to write ever again. It's rough and it might pigeonhole you and it might limit your perceived value in a future employer for developing web applications. Like I worked on a Python app for years that was a Django web service with a big API surface area and did a lot of really cool stuff. And it perfectly transferred to like a Java web service job at a big tech company. So that's fine. But if I had been doing ETLs and data pipelines for that whole time, I don't think it would have
Starting point is 00:25:29 transferred. It's like serving customers, scaling, handling outages, things like that. These are all things that ETLs don't tend to do. So it's probably wise for you to get out of the ETL part of this job, but the Python part, I don't think is the problem. I mean, ETLs do have, they have uptime stuff and they have scaling issues, but it is different to be on the lead edge of the customer interacting with your software versus kind of downstream internal stuff. Yes. The money, the revenue producing software yeah that's a good way to put it all right i think we've answered it all right good luck good luck what can people do if they want their own questions answered go to softskills.audio and click the ask a question button we thank you one and all who
Starting point is 00:26:14 click that button and then proceed to fill out our form with just the most wonderful thing sometimes you guys put really cool compliments in there which just warms our hearts thank you for that we really appreciate you saying nice things about the show sometimes i delete the compliments before we read your question because it makes me uncomfortable but not all the time yeah makes me uncomfortable to read them out loud about myself yeah I like reading them to myself right right right yeah and I like reading them because I know they're about Jameson and that warms my heart but we appreciate you thank you for listening we will catch you next week Thank you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.