Soft Skills Engineering - Episode 472: Should my junior dev use AI and thrown in to ETL
Episode Date: August 4, 2025In 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)
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
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
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
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.
Flamingo emoji.
I like chicken.
I like liver.
Meow mix.
Meow mix.
Please deliver.
Trash Panda.
Python dash summit dot ch.
16th of October.
A Swift's Python conference.
Kyle Boskent.
C. Dodds.
That guy over there.
Jenny Kim.
The stochastic parrot.
Quinton.
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
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
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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
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.
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.
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
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.
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
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
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,
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
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
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.
