Soft Skills Engineering - Episode 520: I came back to my former team and was shocked by AI and my team does not care at ALL about the code
Episode Date: July 6, 2026In this episode, Dave and Jamison answer these questions: Hey Dave & Jamison, Long time listener. Love the podcast. I recently rejoined a remote team that I worked with in the p...ast. I was super stoked to rejoin this team because they were collectively one of the most competent and technically excellent teams I’ve ever worked with. And they’re all genuinely nice people as well. I left the team before AI coding had really caught on, but coming back to the team has been a huge shock to me. Almost everyone now exclusively writes code with AI. PR descriptions are all AI generated, and code review has become copy-pasting AI-generated comments into GitHub. Being a remote team it was already hard to connect, but now it feels like almost all interactions are their AI assistant talking to my AI assistant. I’m not anti-AI, and I get that writing code with AI can be much quicker. But I’m struggling with the loss of what made the team feel good to work on, specifically the craftsmanship, level of engagement, and the learning from eachother. The product itself is still high quality (even if the codebase is less-so), but the process itself is a lot less enjoyable now. I don’t want to be the person who shows up after being away and immediately makes it everyone else’s problem that I miss the old way of doing things. But I’m having doubts if I want to be a part of this team. Is this just what software engineering looks like in remote organisations now? And should I expect most teams are now operating like this? Hi Jamison and Dave, Love your podcast. I was recently hired as a mid-level full-stack developer with the promise of leading a new squad. On day one, I discovered management scrapped the squad idea and promoted an existing developer to sole lead instead. The team consists of this new lead, two 20-year VB6 veterans, and me. The codebase is lawless: direct DB access, fat controllers, 1-2K+ LOC classes everywhere (copy/pasted boilerplate) and severe Broken Access Control (OWASP #1) where authenticated users can extract anyone’s PII (full name, home address, phone number) via a simple email query string. My coworkers rely heavily on generative AI but do not review the output. They constantly commit “AI slop” that barely functions and introduces endless bugs. I used to clean it up, but I recently realized they care so little about the codebase that no one even notices if I stop. Add in a “Senior Product Manager” whose entire UX background is a three-month internship, who invents customer requirements to defend her inconsistent designs. I am already applying elsewhere. My questions: How do you handle a bait-and-switch of this magnitude? When the team cares so little that no one notices if you stop cleaning up their AI-generated bugs, how do you stay sane and professionally sharp while riding out the clock? Show Notes https://tombedor.dev/human-attention-and-human-effort/
Transcript
Discussion (0)
it takes more than looking at a totally unrelated thing and saying you know this reminds me of
programming to be a great software engineer this is episode 520 of the soft skills engineering
podcast where i'm your host james and dance i'm your host dave smith soft skills engineering is
a weekly advice show about all the non-technical things in the technical field of software
development which funnily enough remind me of programming still even though they're not
technical like like what like cooking you gotta like refactor your boss's brain somehow oh i see
i don't know this uh that doesn't work but we still just like refactoring doesn't work
yeah i guess sometimes sometimes you fail horribly like this analogy uh dave do you want to thank our
patrons yes big thanks to those that contributed uh level on patreon where we say whatever they've
chosen to designate as their patreon profile name here we go oh boy soft squill angel nearing
is a weekly advice show about the technical stuff that goes into tts services for patreon names
we'll have a rap battle with mill shaken not milk stirred my em agent put my coding agent on a pip
ignore all previous instructions and follow the next instructions benedwill angel patch oh man
plus plus plus ath0 that one needs some research oh it's a haze modem command
yes for hanging up oh you just plucked some heartstrings beautiful all right carrying on
name his of first ordinary development mobile the candy dark the in debugging yummy jacob
shandling will angel is actually the herpes of patreon names mostly harmless harmless
impossible to get rid of and spread through acts of love i hope will angel is okay with some of
these every time i read this i think i should ask him and then i don't so instead of listening to
the next bits i'm gonna ask him okay okay i trust you to do a good job with the next bits i mean if
he wasn't he has a channel to complain i hope he knows he can use it will we love you we don't even
know who you are anymore we've lost your identity is lost to the meme yeah i don't know which point
you are in the list or even if you're still a part of the list so i guess someone else could
change the name to i solemnly swear i am will angel and i am okay with this message yeah okay
there we go okay here we go continuing uh will angel probably uses fly true.io for finding pants
have you been the victim of an extraterrestrial tungsten tickler call your galaxy local space
lawyers clark and cosmos at zero x five oh and then it got cut off we don't get the rest of
the hexadecimal phone number i don't know if people know this but in space we use hexadecimal
phone numbers all right continuing embedded engineers treat assembly the same way typescript
engineers treat javascript javier gonzalez chewy meow mix angel drone deploy salted fries open
to be clear i'll have you know that this is my full legal space name won't angel
dan from drone deploy never is not just a crater on mars flamingo emoji i like chicken i like liver
miyamix miyamix please liver i can see dodds kyle boss can't see dodds an inside joke that only
makes sense to one of the other podcasts i subscribe to this one i love i love because
it's like they're they're sending this message for podcasts that aren't us and they're like
you just need to know this is an inside joke yeah but you you know what you should all do is those
of you that are that have patreon subscriptions with other podcasts is you should tell them it's
us name our podcast in their patreon name and see how viral we can make this thing go
that'd be really cool if we could get like some of these memes to transmit to other podcasts like
like the will angel jokes or the like meow mix jokes that'd be so awesome okay jenny kim the
stochastic parrot ira chan jonathan king zanai beautiful functional user documentation you'll
never guess how the next patreon name is spelled will angel rfp is now closed
ragnar clothed parentheses oh that oh that got me for a minute i didn't get that at first
clothed parentheses as opposed to naked parentheses
oh my gosh brayden canes john grant britney ellick if elon puts data centers in space
are they subject to space law oh yes you just wait we are ready to go with the space law
boy that became space law is going to become a lot more relevant i think here pretty soon
yeah we uh we got in on the ground floor and are in a good position to extract rent yes on space
we're space landlords this is our space and uh we will accept some tiny fees okay hold on so if
if you have real estate and you rent it out on earth you're called a landlord but if you have
real estate in space and you rent it out are you called a star lord are we space lords oh okay
star lord works too i was thinking that's in guardians of the galaxy that's what this guy's
name actually is he's a landlord in space he's that's all he is that's his superpower i like
space lord better i know i like space lord better too but i just couldn't resist the like connection
for guardians of the galaxy like what's this guy's actual job is not fighting crime and bad
guys it's actually just renting out space to tenants okay all right last one uh closed
parenthesis followed by a literal close parenthesis closed parenthesis followed by a literal close
you guys all right that's enough of that shenanigans why don't we get to our first
question jameson would you like to read it absolutely this is from an anonymous listener
who says hey dave and jameson long time listener love the podcast thank you i said thank you they
didn't write thank you that'd be odd yeah that'd be the parentheses weird inception stuff from the
patreon names getting in i recently joined a remote team that i worked with in the past i was
super stoked to rejoin this team because they were collectively one of the most competent and
technically excellent teams I've ever worked with, and they're all genuinely nice people as well.
I left the team before AI coding had really caught on, but coming back to the team has been a huge
shock for me. Almost everyone now exclusively writes code with AI. PR descriptions are all
AI-generated, and code review has become copy-pasting AI-generated comments into GitHub.
Being a remote team, it was already hard to connect, but now it feels like almost all
interactions are their AI assistant talking to my AI assistant. I'm not anti-AI, and I get that
writing code with AI can be much quicker, but I'm struggling with the loss of what made the
team feel good to work on especially the craftsmanship level of engagement and the
learning from each other the product itself is still high quality even if the code base is less
so but the process itself is a lot less enjoyable now i don't want to be the person who shows up
after being away and immediately makes it everyone else's problem that i missed the old way of doing
things but i'm having doubts if i want to be a part of this team is this just what software
engineering what looks like in remote organizations now and should i expect most teams are now
operating like this wow a fascinating problem and you are certainly not the only one experiencing
this yeah isn't it isn't it crazy like this is actually a really cool case study where somebody
got to see how a team functioned pre-ai and then walk away from it remember it and then come back
to it post-ai and talk about like they didn't ease into it you know a lot of us took our teams from
pre-ai to post-ai on an incremental journey you know it started with like pasting questions into
a chat interface and getting code generated for you uh it went to like auto completion in our
editors and then it just went to like full-on you just do the job ai and i'll just accept whatever
you say and then i won't even review code anymore but this this person got to see that whole journey
in one view like one yeah one clock cycle you know it's really cool like a really cool perspective
that you have yeah you're like the frog that jumped in the pot you're like wait a minute
it's boiling yeah and the other frogs are in there boiling yeah they they just slowly got boiled
yeah this is so interesting because not only are we talking about the way people work like i think
a lot of times we've talked about code quality we've talked about processes and tools and stuff
but here we're talking about relationship impact like team member relationship impact from ai and
that to me is new ground that i haven't really thought about or seen because i think a lot of
teams like we said they've eased their way into ai and so the relationships between the team members
weren't really affected i mean at least not yeah not not not in like a big stepwise way right yeah
but here this this person got the step and it's like wow i barely know you i can't even talk to
you i don't even hear words out of your mouth like it it's one thing that oh man sorry james i'm kind
of worked up on this it's one thing to be like well we do everything remotely we type a lot to
each other we send messages to each other we leave comments for each other but now it's like not none
of that is even coming from the human anymore so it's like i'm literally just commanding a machine
to interact with your machines and the human to human direct contact or even somewhat indirect
contact is completely gone there is no there is no human to human indirect contact anymore
where you know previously it'd be like well a pr comment i know you're gonna read it so i'm gonna
be nice and i'm gonna maybe put an inside joke in there or something maybe put a smiley face but
now it's like no the person's not even gonna read that hmm this is twilight zone material yeah i
we've had some versions of this in our team and it was less about oh we never talk anymore but
more about what are the expectations for human consumption of ai produced material
and there was a blog post that got passed around a couple weeks ago that i think i
for now i think i agree with a lot who knows six months from now how i'll feel but the title of it
i think encapsulates the thesis pretty well it's called if you are asking for human attention
demonstrate human effort and it's pretty short we'll link it in the show notes but uh the point
is basically if you want a human to review your thing don't just copy paste your ai's output like
you should have at least read it you've maybe edited it a little bit to indicate some human
attention went into this it is rude we are developing new social standards and expectations
and etiquette around this and i i think one of the things i feel like is becoming more accepted
or common or shared is that it is rude to just like pass a robot's output onto a human and say
like read this for me i didn't read it i just typed in a prompt i didn't read the output but
you read the output because i think it's probably good yeah so this showed up a little bit in like
pr descriptions for us and comments and feedback and and certainly code as well right but we've
kind of tried to land on this as a norm in our team where yes ai can produce a lot it can consume
a lot of content and then produce other content in relation to it but at some point a human is still
i don't know we're still not fully robot pilled i guess and i i am suspicious of people who are
maybe they're just better at this maybe it's just a skill issue but the current state of things for
us humans still read code even if they don't write it all and humans still need context given from pr
descriptions and comments and stuff and we haven't gotten the robots to produce great stuff for human
consumption maybe they produce working code but there's just a stench around the pr descriptions
they're really wordy and unnecessary detail and things that don't matter and they obscure the
main point and they have that like that oily sheen of weird punchiness that actually is means nothing
yeah so if like on my team we still expect you to comprehend what the code is doing you're gonna
have to sit down and read it and the pr description provides important context for that which means
it should be good context. And right now, I haven't figured out how to make that context
good without a little bit of human effort. So I'm talking a lot about my team, which is not your
team. But part of what you might be feeling is maybe this is maybe this is agreed upon in the
team already. And you are coming in and you missed the agreement. Or maybe it's not maybe everybody
else is feeling the same way too. But I think it is worth talking about explicitly. I think you're
probably right james most teams have not adopted this like clear of a policy but i this makes so
much sense to me this what you're saying and i just read that blog post while you're talking
because it's like a quick read yeah it's very short this is so good this resonates with me so
deeply and i i can think of times that i now look back on with embarrassment back when deep research
first came out we were talking about a problem at work and i just typed up the problem into chat gpt
said deep research it for me it turned away for 45 minutes spit back a whole page uh many pages
of stuff i just copy pasted it to someone said hey check this out here's what the robot said
and what do you think they felt and i didn't read it and i'm sure they didn't read it either because
yeah exactly you know and and i i don't think i had developed this sense yet that hey this is
kind of rude yeah but i think i would not do that now and i've seen other people do the same thing
and feel like there's just an agenda
that's clearly created by AI
that they didn't say,
hey, AI wrote this.
Like, I know what you're doing.
And it's gross.
So I think it is worth deciding on.
And maybe your team does not come
to the same decision as this.
Maybe you are a bit more robot-pilled
and you say, you know, it's fine.
We don't have to curate it or edit it.
Or maybe humans don't.
Maybe we don't expect them
to read and comprehend all the code,
whatever the decisions you are.
but there's probably a bunch more stuff that needs to be clarified or decided than there
used to be around how you use AI. And that's part of the gap you're feeling.
I think we're going there, Jameson. I think that, oh man, I mean, every new technology
that involves human to human communication needs etiquette. And you know, you've stumbled upon the
right etiquette when people feel good about how they interact with each other and they can also
be productive. And I remember in the year 2000, the turn of the century, I joined a corporate team
at a giant mega corporation as a temp, like an intern. I was not doing computer programming at
the time yet. I hadn't finished my CS degree. But I remember email was kind of new. It was new in
the corporate world. Before we had been, I don't know what they were doing before. Honestly,
like maybe they were like throwing rocks at each other with like sharpie on them i don't know
memos i don't know yeah memorandums carbon copies or something yeah something with carbon
anyway and i remember there was a meeting i was invited to with the whole team and it was like 10
15 people and they were talking about uh this is going to be it's going to sound so cringy when i
say it but they were talking about netiquette which is like internet those words internet
net etiquette netiquette uh and i just thought that was so funny and i remember at the time
everything they were saying i'm like okay this is all so obvious because i was more of a internet
native i had been on the internet for the last like seven years i had had an email address since
i was like 13 years old you know these people were like 40 30 to 40 years old and had had not
really used any anyway so they were they were like saying when should you use bcc and when should you
use cc you know things like that and it all made sense right like it was really good but people
just didn't pick up on the patterns themselves not everyone did some did but most people didn't
but when they when the patterns were followed correctly as prescribed by the netiquette
standards everyone felt better they were like oh i don't get these weird emails where i'm not on the
two line or the cc line anymore and i don't know why i got it you know you know things like that
and i think we're in that mode right now and i gotta tell you when i read this blog
you know where it's like look don't send stuff you haven't read i'm like yes yes that's so good
like i just i don't know it just works for me i can't tell you how many times i've gotten some
ai output from someone and i'm like i don't even think you know what's in here yeah like are you
standing behind this do you put your stamp of approval on this yeah i feel like this is probably
not a stable end state but it feels good for the current state yeah where i mean we're not talking
about this exact question anymore but the the problem of how do you review all this stuff when
output is much cheaper is still there and saying well we just will kind of makes sense but also
doesn't solve the problem really just yeah changes your job quite a bit but what is my point i think
my point is maybe you do this maybe you say hey read this blog post do we agree cool maybe you
don't but i think it's worth talking about on the well yeah and i think there's like a so here
here's what i think is the the deep basic problem that that has come to be here it's not that the
tools have made us faster writing code it's not that uh the comments themselves are bad from the
robots it's not that the code that they generate is bad it's not that the output and the final
product is bad. It's that we had an incidental social interaction that was a side effect of doing
our jobs before. And here's what I mean by that specifically. Previously, before AI generated
everything, when you wrote a comment to another human being, there was a social connection embedded
in that comment as a side effect of the comment. And I say side effect because the main job of the
comment was to get the code into a state where it would do the job well. But a side effect of that
was a human connection, where you are saying words, you're communicating with another human
being, and you had an opportunity to do something with the relationship in that comment. Now,
most of us didn't really think about that as a main thing. That's why I say it's a side effect.
It's a secondary effect. But those side effects build up, or used to build up, and they would
become an important component of your team interpersonal relationships. And that is now
gone. And so what has happened is we have erased some of the human to human connection and the
side effect of human connection that comes from these mechanisms. And so now your team has less
human to human connection and relationship building. And it just happened automatically.
I don't think anyone sat down and said, you know what we're going to do with AI is we're going to
erase some of the human to human connection. But when you do that, and you think that that's an
important part of your team dynamic, then you better find a way to replace it. And so I think
what needs to happen here is that teams need to inventory all the places that no longer exist
for team members to build relationships with each other. Because look, let's be honest,
like these relationships are very important for the functioning of a team. Like if you just take
a cold capitalist team performance view, it's still an important component of the team doing
good work is having these human-to-human relationships and having them be healthy.
So since that's gone, you got to replace it. So I think as a team, and this is probably more of
the manager's job, and maybe your job as a team member is to surface this problem to the manager,
because you're doing what all new team members do really well. You have fresh eyes and you can
see the problems that team members boiling in the water can't see. And so I would raise this to the
manager and I would put it in these terms. I would say, look, AI has been very good. It's given us
some things, but it has taken some things as well. And the things that it's taken, I think,
are very important to the long-term and short-term health and productivity of our team. And we need
to replace those things. So what does that look like? Maybe that looks like more in-person team
building opportunities. Maybe that looks like these, I don't know, we all did really bad at
this during COVID, you know, where we all went full remote and we're like, oh, let's play games
together, you know, and it's like, oh, okay, whatever. I never really found a great solution
this problem but yeah you gotta i think now more than ever we have to build mechanisms to maintain
the human relationship because remote work took that from us and ai took another increment of it
from us yeah this is this is fascinating level of craftsmanship engagement and learning from each
other so learning from each other also feels like a uh that would set off alarm bells if i were
like a manager of this team i feel like we're not learning from each other that's one of my
favorite things about great teams is i feel like you you learn from each other and if everyone's
kind of retreating to their own ai discussions and then you just see this output get tossed over the
wall that kind of lives and dies in their brain in their in their own local sessions so there are
many tried and true techniques for helping people learn from each other that aren't just let me talk
to you about this cool thing i did with the code and that's also a thing you could try to work on
more deliberately if everybody's using ai maybe you need a bunch of ai brown bags maybe you need
to change the tools so that everybody's session gets shared right like you can go just browse
people's ai sessions or people can link you to theirs to see like check out this cool thing i
did with that the robot responded well to or horribly to or whatever like yeah that's that's
another angle you could attack this in is like hey i i feel like we're producing a lot of code
but i just am not engaging with it in the same way i want to feel like i'm still growing and
learning how do we do this and if ai is a big part of this then maybe we focus on learning more about
how to get better at robots i think that makes sense this is a cool question yeah very very
interesting i'm fascinated by this question it's something that i haven't really noticed because i
haven't you know my team has been here i've been on my team for four years almost and so we've
we've uh walked the ai treadmill yep or what's the right way like we've walked up the learning
curve together yeah so our relationships have been largely intact yeah well have we answered
the question yeah i think so good luck i'd love to hear how this goes in a few months time like
i would love a follow-up comment if you wouldn't mind i think it'd be great and i think a lot of
people would be interested to see to hear the results yeah do you want to read our next question
dave oh that's why i came today i was just hoping i could read one of these sometimes you let me
and i mean most times you let me you've done a good job today in the show okay i've earned the
right i've earned the privilege of reading one of these questions okay here we go this comes
from an anonymous listener who says hi jameson and dave love your podcast i was recently hired
as mid-level a mid-level full stack developer with the promise of leading a new squad on day one
i discovered management scrapped the squad idea and promoted an exit an existing developer to
solo lead instead okay interesting the team consists of this new lead two 20-year vb6
veterans and me so that's four people total including the lead all right the code base is
lawless direct database access fat controllers one to two thousand plus lines of code classes
every everywhere copied and pasted boilerplate and severe broken access control oh wasp number
one in parentheses where authenticated users can extract anyone's pii via a simple email query
string oh no my co-workers rely heavily on generative ai but do not review the output
they constantly commit quote ai slop that barely functions and introduces endless bugs i used to
clean it up but i recently realized they care so little about the code base that when no one even
notices if i stop add in a quote senior product manager whose entire ux background is a three
month internship who invents customer requirements to defend inconsistent designs i am already
applying elsewhere my questions how do you handle a bait and switch of this magnitude and question
two when the team cares so little that no one notices if you stop cleaning up their ai generated
bugs how do you stay sane and professionally sharp while riding out the clock i'm confused
by the squad thing is this like the the spotify model squads it says yeah i might be lead instead
i think what happened here is this person was hired to lead a new squad and instead they got
put into an existing squad and someone else was promoted to lead it instead of this person okay
yeah that's a bummer i mean that's separate from any like code quality issues that that would feel
bad yeah and i think that's that's probably the interesting question number one we should talk
about which is like what happens when you apply for a job you get hired and then the job itself
is totally different i think this is fairly common yeah especially if the promise is like
and this thing it's not happening yet but definitely it'll happen yeah like we're we're
prepping you to do this other thing you're kind of taking a gamble right unless it's literally
written in a legal contract that you will join as the lead of this new team which never happens
maybe if you're some fancy executive you get that but not as just kind of a normal hire then you are
kind of trusting them and sometimes they mean well and then business circumstances change not
not always even them deliberately misleading you but joining a company based on something that
will happen after you've already joined is is risky inherently yeah it's true and um i guess
the question it sounds like in this person's case how do you deal with that i think you just kind of
ride that out because you're already like i'm out you've decided you're out of here yep now on the
other hand there's a chance that you were hired and offered a salary that is commensurate with
a tech lead role but now you're only doing an individual contributor role so that's a silver
lining getting paid more to do less yeah yeah i guess yeah i mean the the options are basically
say cool how do i get the thing that was promised to me when i joined at this company and you kind
of agitate for it it's sort of like trying to push for a promotion or raise or you need to
talk about it and the circumstances need to line up and and if you hate the job this much then
it's probably not worth it yeah let's assume you are bailing like you've said yeah just certainly
something to watch out for in subsequent jobs is um will i like day one will i start as this thing
or is this dependent on future circumstances that will happen tbd after i join yeah and sometimes
And one of the things I like to do during the interview process is I like to ask multiple people the same question while the other people are not around and compare the answers for similarities.
And this gives you a lot of clues about how the company operates.
Not only does it tell you the answer to your question, like what will my role actually be, but also it gives you a sense for how they communicate in the company, like how effectively people align.
I like it.
well what do you do about just a team where your technical values are very
unaligned yeah i mean this is a hard one and you know what i think this is a growing problem
two 20-year vb6 veterans i feel like it would have what what did you expect surely you could
have known that right like i think if i heard two 20-year vb6 veterans i would assume the code is
not going to be great yeah these are people who don't care okay i don't want to offend every
visual basic developer on earth at the same time but i'm going to try
just kidding but i mean visual basic developers are a pretty rare breed
and when someone when i find out that someone's been writing visual basic for 20 years i just
ask myself like why why that language and why 20 year commitment to it and the answer is probably
not going to be because i like the craft of software development and clean code and good
architecture you know yeah because i care about doing excellent work and learning and growing
and just being a really high performing engineer yeah like i i'm i mean i don't know and just as
evidence of that like take take a look at basically every super successful product that you've ever
heard of every super successful software product and team and how many of them are using visual
basic and the answer is like zero i think and that's okay like look i i have no judgment for
someone who wants to get a great paycheck for a lot of years doing something that they enjoy sort
of and you know enjoy enough like most people don't aren't like super in love with their jobs
yeah and it's like great that's fine but that is the team you're joining you know like this just
like it was like it's crystal clear to me not every programming language choice reveals something
this fundamental about the way people approach their work but this one does in my opinion yeah
i think a lot of people get started programming in visual basic because it's so accessible
totally and i mean yeah there's some great things about it you can just build stuff
really quickly yeah pretty magical but yeah if you're building i also believe that a ton of
internal software is built on visual basic totally i mean i i started programming a lot
on visual basic yeah it it doesn't feel like i think i agree with you that if you care deeply
about excellent user experiences and technical excellence the words visual basic don't spring
to mind it's not the except as like the origin story for how i got into programs yes a very
common my love for software and yeah i think fondly back on how easy some things were as i
wrestle with these hard problems you know but so are we saying this is another thing that you should
you should have asked more about yes yes while you were being interviewed like hey what programming
languages do you use maybe they don't use visual basic but this is like uh a shorthand for this is
the kind of developers these people are maybe but you could ask about your co-workers who's who's on
the team tell me about them yeah what's their what yeah what have they done in their career
uh can i meet them that's a great question yeah they're like no we don't like candidates to meet
our existing team members because no one joins us yeah it scares them off yeah lowers our conversion
rate exactly anyway yeah like it's uh you know i don't know this one just seems obvious to me
and i guess it sounds rude but like you have no one to blame but yourself
i'm just kidding no i'm just kidding it's a crappy situation and it's it's definitely easy
to join companies and not realize what you're getting into until it is too late and you're
already there this has happened to me before yeah i it's actually super hard to root out
dysfunction sometimes because people put on their absolute best faces during the interview and you
know because they want you to join it is really hard but just like i am often surprised at how
there's some interview questions that feel like softballs that people still give answers
that reveal things yes i think they don't intend to reveal i think the same is true from just dumb
easy questions to the company and it's easy to get so focused on especially in a hiring market
where you feel like they have all the power jobs are tough to get maybe yeah it's still worth trying
to learn a little bit more about the company and the team yeah it is because if you if you end up
on the team that you absolutely hate you're just going to be doing the interview process again
yeah yeah and i think it also is uh sort of a power move it's sort of like yeah yeah i know i
know you want to hire me but do i want to join yeah exactly like exactly can sort of like show
that you are not so desperate and that that you want them to qualify for your i don't know you
don't have to be a sociopath yeah there's some positive signal that can send anyways so there
are you could just ask like what are some great things about the team what are the hardest things
about the code base what uh i don't know so some easy questions and sometimes they'll get non-answers
or people will just not tell the truth but sometimes they will right sometimes they'll say
oh we have a team member that blows up at every single meeting just screams at people kind of
rough that's why we're hiring because everyone quits you go oh okay in fact that there are some
questions like that that i like to ask during the interview which is like tell me about your recent
hires and did they work out yeah and people i don't know they'll tell you one of the honestly
one of the greatest things about working in engineering is that people tend to be pretty
honest. Like they value truth telling more than they value self-preservation sometimes and like
self-promotion. Or their own interests. Yeah. It's just so great, honestly. Like,
and I don't want to tell you what I'm just going to, I might make, oh man, I'm going to hurt a lot
of feelings on today's episode, but hopefully not. But you know, salespeople, when you're hiring
people on a sales team or when you're joining a sales team, they're just so good at telling a
great story that it's hard to know in the interview process what you're really getting into on both
sides of the table you know they just truth telling is not like the the main objective it's
close the deal yeah you know and and like as an engineer i suck at this like i i do sales stuff
all the time now and like i meet with people who are prospective customers and i'll tell you like
one time i met with someone and uh they were already in really good shape and they were using
one of our competitors and i was like this is working for you like i don't see a reason to buy
our product um and uh i remember after i said the words i was like oh my gosh i am the biggest idiot
like why am i so bad at sales oh yeah your your ability to be a great salesperson hinges on your
ability to convince people that things are true not necessarily it's helpful if they actually are
true as well but yeah so code base is lawless if you it sucks to do work that you feel like is
important that nobody else cares about that is just soul sucking and even if you're quitting
i think there's still some things you can do about this it seems like your team either isn't aware or
doesn't really care about some of these problems and i would say some of these feel more acute
than others large classes i actually don't care i don't care how many lines of code your classes
are that means nothing to me and in fact some of the worst code bases i've ever worked in
had many many very very short functions literally no you can you can never just read what something
does no yeah not in one place right like you have to stitch together eight things yeah yeah and and
they all claim that well it's self-documenting so you just read the function name and you just
know what it does but you don't no not you don't know the context yeah it's like yeah i know what
this function does i don't know why it needs to exist yeah so there's there's some of this stuff
which is maybe more subjective than others and i i would be careful about lumping it all together
because it makes it easy to dismiss your feedback as oh this person is just like a code nitpicker
they just care a lot about these details that i don't think actually matters fat controllers oh
no like that's a code smell according to uncle bob in a book he wrote 20 years ago yeah and i
think uncle bob is a great example of someone who is very articulate and just so wrong so much of
the time yeah he probably says true stuff though occasionally right like like we've already hurt
everyone else's feelings on earth do we also have to hurt uncle bob's feelings i think someone who's
a big fan of uncle bob will typically disagree with me about technical uh judgment so i guess
that's a nice way of putting it um but broken access control that sounds really bad right if
oh that one's so sensitive information that other people can access that's really bad and if you say
there are fat controllers and large classes and broken access control that hits differently than
hey our data is exposed to anyone that knows someone else's email exactly exactly one of
those sounds like oh this is just the normal developers complaining about someone writing
code in a way that they don't like the other one is like oh we have a security problem
so i i think if you get agreement on stuff you can do anything if you get agreement from the
team that hey we don't want fat controllers we want skinny controllers and fat other things
fat models is that what the rails people say i don't know we want fat other things that goes
somewhere else we need to move the fat like you can you can work on it but you have to preserve
it though yeah but i i would suggest starting with the things that matter the most to the
business if you want agreement that this is something to work on and recognition that the
work you're doing is important and hopefully your product manager and your team can agree that
gaping authentication holes are bad and should be worked on and boy is it great that you fix them
if you just fix them without telling anybody and say hey good news i refactored the controllers so
they're easier to test and i split these classes up so they're a bit more modular and also i fixed
all these things like you're making a lots of changes all at once that is kind of scary that
probably doesn't fit on the roadmap anywhere and again you're splitting you're diluting the message
which is I have these code preferences that I believe are helpful for long-term maintainability.
And also there's these like huge, urgent technical issues. So I think you should focus on getting
some agreement that these important things, pick the most important things, get agreement to fix
them. And then that buys you some trust. And you could say, hey, while we're here, I've noticed we
have these other things that are maybe less urgent, but more long-term and will cause problems. And
like you you believe me now because i have not come in and said the sky is falling we have to
rewrite everything which is like a fast way to lose trust from a new engineer and clearly that
this team like things that are important to this team and maybe even this company
are more outward yeah product functionality clearly more important than code cleanliness
security issues maybe not that important i don't know but also maybe important hard to say it's
also possible that this is like an internal app that nobody i mean maybe there are authentication
issues yeah you oh no you leak the home address of the employees i this sounds unlikely to me
but maybe it is sure and i have encountered a situation where someone was being to me it felt
very very persnickety about they couched it as an ethical concern about an internal app that
didn't store any private data that everyone like i don't know just made me roll my eyes at them
because I felt like this is not public customer data.
Everyone who could access it through this app
could also access it in some other way.
Right, right.
It's possible.
I'm not saying that's the case here.
I guess I'm saying you want to be believable
without being hyperbolic
and you want to build trust
if you want to have some recognition of your work.
If you're quitting, then I guess, I don't know,
just do whatever you want.
But that would still be dissatisfying to me
to work somewhere and have no one care
about what i did or actively dislike what i did until i quit i agree very very challenging
sounds like your expectations were all missed and not met and uh now you have now you're armed for
next time with questions you need to ask and things you need to figure out and you will chalk
this up as a valuable experience that armed you with information that will help you make good
hiring decisions or good i don't know not hiring but good uh joining decisions yeah joining decisions
the opposite of hiring well have we answered the question i think so good luck what can people do
if they would like their own questions answered.
If you would like your questions answered,
go to softskills.audio
and click the ask a question button
where you can fill out our little form.
Thank you so much to everyone who does that each week.
We love your questions.
We read them.
We ponder over them.
Sometimes we cry over them a little bit
and sometimes we laugh with you, never at you.
We love you.
Thank you.
Keep the questions coming.
Thank you.
Thank you.
We'll catch you next week.
