Soft Skills Engineering - Episode 205: Old code outage and questions leaking
Episode Date: April 13, 2020In this episode, Dave and Jamison answer these questions: Ever since I graduated from college, I’ve been working in a rising tech company for almost 5 years. I’ve been working on some pro...ject and different teams, and it has been more than 1 year on my current team. One day, someone mentioned me that their service is down because of my code from when I was on the previous team and I didn’t even touch that code for almost 2 years. I explained that I am in different team now, so I refer them to the current members of my old team. I also gave some suggestion on how to fix it, but that team didn’t respond fast enough and eventually other person fixed it. Somehow I feel really guilty that I didn’t do anything to fix it. My question is: Until when I responsible for the code I wrote? Is it as long as I’m on the team, or as long as I’m still working in the company? Please advise. Thank you. An external recruiter learned what would be on my technical screen from a previous candidate and shared that with me. Should I warn company X that their technical screen is compromised?
Transcript
Discussion (0)
it takes more than deploying kubernetes on top of kubernetes to be a great software engineer this
is episode 205 of the soft skills engineering podcast i am your host jameson dance i'm your
host dave smith soft skills engineering is a weekly advice show where we answer all of your
non-technical questions about the technical field of software development but we also start off
every show by making fun of ourselves i guess i don't know yeah we got just a brief technical
portion at the beginning which is usually a joke and then a google revealed it's not a joke and
there's a whole bunch of articles about how to do this and like why you should do it which are not
written on april 1st oh boy yep i wonder how many kubernetes on kubernetes deployments are out there
i mean it's probably similar to the number of like totally open to the internet elastic search
deployments yeah do you want to thank our wonderful patrons dave yes thanks to those
that are supporting us on patreon with a contribution that earns them a shout out
their names this week are han shot first vin lock brayden canes chris hogan dennis bogdanov
evgeny sladkowski john grant louis santos luke bayless nick hathaway philip john basile
the agile ventures charity sean stanley tactical radio steven armand lee taras harouk
travis and zach granin if you'd like to support the show go to softskills.audio and click support
us on patreon and if you do for any dollar amount greater than zero you will earn access to our
slack community which is really cool which is fantastic my favorite thing i read this week on
it was someone's suggestion that instead of saying junior mid-level senior developers we say
underpaid medium paid and highly paid developer
there's good stuff there just throw out the binning and let's just use our salaries as
titles yeah i'm a
yeah then the 10x developer has a different meaning that's right
it's more quantified this episode is also sponsored by vettery
vettery is a marketplace where you can find a great developer job we'll hear more about them
later but for now you can go to veteri.com soft skills to sign up dave do you want to read our
first question okay you bet this comes from an anonymous listener who says ever since i graduated
from college i've been working in a rising tech company for almost five years i've been working
on some projects and different teams and it has been more than one year on my current team
one day someone mentioned to me that their service is down because of my code from when
when I was on the previous team, and I didn't even touch that code for almost two years. I explained
that I'm in a different team now, so I referred them to the current members of my old team. I also
gave some suggestions on how to fix it, but that team didn't respond fast enough, and eventually
the other person fixed it. Somehow, I feel really guilty that I didn't do anything to fix it. My
question is, until when am I responsible for the code that I wrote? Is it as long as I'm on the
team or as long as i'm still working at the company please advise thank you there are two
other options yeah i mean but there's also even another option which is never as soon as it leaves
your fingers you just abdicate all responsibility good thing we have that qa slash ops slash product
management slash customer support department to own my code forever i thought it was as soon as
someone else reviewed and approved your code they're responsible for it oh like hot potato
like they touched it last yeah you click the approve button it's yours yeah i mean really
there could be an enhancement on top of git that git blame shows not just who wrote the code but
who approved it yeah to really maximize the amount of people to point fingers at
huh so i work in a code base that i don't know it's about eight to ten years old in the oldest
parts which isn't horribly old it's not like brand spanking new everywhere though it feels
kind of like average age for a code that makes money in production i don't know anyways i'm
rambling the point is there are parts of the code that i don't understand and that have outlived
people that are on the team and there's kind of like a handful of people that have been around
for a while that we've gotten used to asking questions of but we're also very used to getting
the answer of like i have no idea yeah i never touched it or i touched it five years ago and i
don't remember and it's hard because i have motivation to learn this stuff but i'm also
patient with the fact that they're humans not like infallible forever libraries yeah that never forget
information and also wait hang on hang on you wrote the code two years ago and it caused an
incident now i'm gonna say that it's not your code like that's not the only thing that caused
the incident yeah like something had to change to make it break right now and so it hit some new
edge case or i don't know there's a bunch of things but it's not just like you wrote this
code and put in a date that was like on this day two years from now break everything
unless you're doing like manual date math and then you kind of did that on accident
this code will only work as long as there are more than two unique digits in the year
that'll buy us at least i don't know probably a couple months
someone else's problem by then yeah i mean i feel for the person because it stinks to have
your service go down but if if you've owned the service for years you don't have to immediately
know everything but you should be capable of figuring out why it's broken even if it's an
area you don't know super well i'm just imagining the engineer who's like oh crap the service went
down okay the first tool i should reach for is get blame okay let's go find this guy
the most important thing i can do is track down the line of code that is broken
so that i can go find who wrote that line exactly it's like what are you doing instead of change
that line myself what are you doing i mean i think i don't know there's like some professional
courtesy involved that i think is it's it's useful to be i basically think you did the right thing i
would spend a little bit of time and say i can help out a little bit but not take ownership over
it because you don't you don't own that service anymore some other team does like if you have
stuff to contribute that's helpful but i don't think it becomes your responsibility to fix it
yeah i'm thinking about the manager that runs this team that has the service that went down
right now and what it would look like in the post-mortem documentation to say okay how did
the issue get fixed well we reached out to the team member who wrote the broken code over two
years ago who's no longer on our team and they fixed it like if that is really what had happened
i think that would look really bad on the manager yeah yeah it's just i mean the motivation here is
like frantic scrambling to fix it as soon as possible and that's one way you can do it but
i yeah i just feel like this is an opportunity where you can help out if you want to but but
yeah you're not you're not responsible for this it's not on you to to fix it because you touched
the code once i think that makes sense and like if i was in the situation where i had written the bug
i would absolutely jump in and try to help my best because you know that's something i created
now it's gone wrong and i want to help that's great yeah but i still think that that's a huge
problem that they even this team even feels the need to reach out to you like there's just that's
such a bigger problem so yeah like as long as i'm at the company i'm going to help fix any issue i
cause it doesn't matter how long it's been i'm there to help that's that's what being an owner
means but like maybe i don't know whose fault it was that this team is not self-sufficient
enough to fix this issue but that's really what needs to be addressed i think i haven't talked
enough about how broken i am yet which is a tradition for most of these questions i do think
if i was in this question asker shoes i would absolutely feel horrible as well even though
i know intellectually this other team owns it's been a long time ago just the fact that i had
done something that caused these other people pain i i would like oh i'd feel so bad so it would be
really hard for me not to not to say i've just got to fix this at all costs even if it's not my job
not my i don't know fault but i think my rational brain that kicks in more when i when i give advice
to someone else instead of look at what i should do it's so true it also says two years is a really
long time and there's a lot of stuff that probably has changed in that code base or maybe nothing has
changed and that's a separate that's a separate problem but like there's a chance that you just
kind of stepping in with no context could cause quite a bit of harm oh yeah i feel like the most
valuable interactions i've had that are like this where someone's been out of the code base for a
while but has some kind of long-held knowledge is they they point me in a direction or they give me
like a very brief overview or a little bit of structure but it's still on me to understand
the whole system and how all these things work but they might say hey look in this module because
these two things are connected or they were at one point or something but but if i have to go
like spin up everything from scratch after two years out of it it's probably going to take me
longer yeah probably gonna result in me breaking more stuff that that that was very insightful like
for sure this code base has evolved and for you to just jump back in and start making changes
guaranteed you're gonna break something else too first of all i gotta downgrade the version of
spring yeah we gotta get this back to how it was when i was here that's right that's unwind all
the features you've built since i left yep now i can help you're gonna need to delete all these
tests well have we answered the question yeah i think i think in summary you're not obligated to
help but you'll probably feel obligated to help and i think you should you should jump in and try
to be as helpful as you can understanding the constraints that it's not the same system that
you left and that this team probably has some pretty serious underlying issues if two-year-old
code is causing an outage that they can't resolve on their own and yeah the mindset i would have is
i'm doing these people a favor but it's not that i am placing this burden upon my back to own this
and fix it forever right i will i will help them out that's kind of how i think about it like and
if it if it truly is an egregious bug where you wrote code that will only work when there are
at least three unique digits in the current year then you know you you probably owe someone an
apology you know you know but if it's just like oh i didn't i made an assumption that seemed
reasonable at the time, and now that assumption is no longer true, then I don't think any apology
is needed. You don't have to grovel, and you can just go along your merry way. If you've been a
software developer at the same job for a few years, it might be time to start looking around.
Quit your job is our favorite advice, but first you should probably find a new job.
Trust me, it is better this way. Check out a service called Vetteri, which matches developers
with employers based on what you want, like your location, salary requirements, and technologies
you want to work with i actually signed up myself and within a week they sent me an opportunity that
looked really good my current approach to job seeking is tweet dumb stuff and hope the company
notices me so this sounds like an improvement i think yeah once you sign up you get a consultant
to help you find opportunities i also like that veteri lets you specify your salary requirements
early rather than going through the whole interview process only to find out
want want your salary expectations were way off that actually happened to me in an interview
would have been nice to avoid that you can start using veteri without reversing a linked list on
a whiteboard too they don't have a coding test to sign up if you are thinking about taking our
advice the soft skills engineering patented advice and quitting your job check out veteri go to
veteri.com soft skills to sign up that's v-e-t-t-e-r-y.com soft skills if you use that
link you will help support the show and if you get a job through veteri they will send you three
$300 thank you so much to vettery for sponsoring the show all right i'm gonna read our next
question this is from a listener named pumpkins and penguins which i think is like a dungeons
and dragons related thing it just seems similar alliteration just feels close an alternative
pen and paper rpg system i guess an external recruiter learned what would be on my technical
screen from a previous candidate and shared that with me should i warn company x that their
technical screen is compromised whoo juicy boy yeah or that they should i warn them that their
technical screen is compromised or should i warn them that this particular recruiter you might not
want to get candidates from anymore yeah wait what if it's a test what if it's an ethics test
Oh, yeah. Like, if you don't warn them, then they'll just put a little checkmark next to your name. I wonder if there are companies that leak interview questions that are similar-ish to questions that they ask, and then asks questions that are slightly different, but that would get you a totally different answer.
and then kind of see if somebody jumps on the fact that like,
oh, this is, yeah, this is clearly that question.
They blaze through it.
This reminds me of one of my favorite interview stories
where at a company I worked at a long time ago,
maybe 10 years ago or more,
we had two people coming in for an interview one day after the other
and they were twin brothers.
And we had two different,
you already know where this is going, right?
we had two different questions that we asked where we we showed the candidate some code and said
tell us what this code does and it was their job to like read the code explain the code and we gave
it to one of the twin brothers on day one and then you know i he got it i think or maybe struggled
with it i don't remember then on the next day the other twin brother came in and we gave him a
different problem or different snippet of code and said what does this code do and i was so lucky
that i got to be in both of the interviews because the twin brother the second one gave
the answer from the previous brother's question and i was just like oh man yikes i looked up at
him and i said well no that's not what this code does but that is what the code did that we showed
your brother yesterday oh my gosh that poor guy did he turn red no you know acknowledge it i think
we all just kind of laughed it off like oh yeah you guys talked about your interview no problem
I mean at the end of the day like really I did I totally expected them to chat with each other
about how the interview went so I didn't I didn't do it they did not end up getting the a job offer
but it wasn't because of the ethical slip-up it was more the skills weren't there anyway but
it was just it just reminded me that you know of this story that I just really loved so I think
there's a couple things going on here one is that some of these technical interviews are
this genre that demands a lot of study and if you interview it at certain companies the expectation
is that you you spend time studying like you dig into this corpus of questions and it's not that
you're trying to find the exact questions that they will ask you it's like you're trying to
build up these skills to solve these these kind of like computer science-y academic or not academic
that's the wrong word but but yeah you're trying to solve this particular genre of problem and so
there's there's like interest broadly in what kind of questions people ask yeah i feel like there's
kind of benevolent not benevolent that's the wrong word benign interest of like i just want to get a
feel for what i should be preparing and then there's the like i would say this is more sketchy
i want to cheat by finding out what the questions are and like having the answers prepared right
and and these questions are hard to make so i i think there's incentive to reuse them and and
with all this motivation to find out what the questions like the kind of questions i think a
lot of this stuff probably is out there in some form or another yeah you can go to all kinds of
websites that list like google technical interview questions to practice with or something right but
i think the the point i'm getting to is that if you like sneakily tried to find out what questions
were on the interview so that you could know the answer without having the skills to get the answer
that feels bad if you have studied those kind of questions and ran across something similar in an
interview i think that's fine and i think it's even fine to say like hey in my study i did this
kind of thing i did like a palindrome finding question and so here's what i learned i feel
like that actually could reflect well too but if you're gonna say that you better absolutely nail
the question yeah that's true yeah i studied a lot about this palindrome thing and here's my brute
force. Here's my N cubed exponential solution. First, generate all strings. Step one.
But the question is, should I warn company X that their technical screen is compromised? I think you
should. Yeah. I think, I think it would help them to know. And I think it would reflect well on you.
It might. I mean, it certainly won't hurt. And it might not help you get through the interview. But in fact, it'll probably hurt you a little. Because now you don't know the question. They're probably going to change the question.
because they're going to switch questions exactly but i would do it anyway i mean these this is life
and then these things have a way of coming back to you and if you sneak your way into a company
by being really good on a technical phone screen that's just going to get you past one stage and
if you need that kind of crutch to get past the next stage you're not going to have it so
it won't help you in the long run oh i just remembered this not exact thing happened but
a similar thing happened where i had an interview and i was like googling i don't know tech interview
questions it was a very small company so it wasn't like i could google questions from company x it
was just kind of general tech interview questions and i did a few of them and then i went into an
interview and one of the questions they asked me was one of the questions i got and i think i told
him and then i just showed them what i had learned i didn't end up working there so i don't have any
more data to know if it worked well for me or not because i i think i just kind of lost interest in
the company yeah but it wasn't awkward or weird and they seemed kind of like pleased that i could
both solve it and that i owned up to it i guess they were like you've passed our ethical test
and depending on the company they might expect you to withhold that information
you know if you're like working in fintech or something
just kidding like to practice for insider trading or something exactly you're like
working for insider trading corp yeah listen ethics just slow you down here so
we're just teasing just kidding i don't think fintech engineers are unethical that's a joke
no they can buy ethics with their giant piles of money so they have they have tons of ethics
i have like a two-year supply of ethics yeah well have we answered the question i think so i think
we both agree we would say yes we would tell the company that you found out what the tech screen
is going to be and i would let them know that you got it from your this recruiter what would
you tell the recruiter like would you give them feedback and say hey it's kind of sketchy that
you told me the exact questions that will be on the screen oh yeah good good question i i wanted
to say i would probably just not say anything but at the same time i'm thinking it might be useful
to know well i don't know i'm just i don't know if i would what i would do if i would tell the
recruiter hey i'm letting them know that you told me that i mean the recruiters incentives are clear
right they want they want all the people they submit to get hired because then they get tons
of money right so it's kind of a messed up system because they they would love it if they could like
they don't care how qualified you are they just care if you get a job and stay there for long
enough for them to get paid that's right now keep in mind this is an external recruiter
and so that is exactly their incentive and probably that's their only source of income
is placing candidates yeah so big incentive an internal recruiter would probably not have that
conflict of interest yeah yeah i think that's that's part of why a lot of companies like
internal recruiters is because they're more aligned i would like to say that i would say
something to both the company and the recruiter i think so yeah i mean i think i'd basically say
what i said here that hey like if you have general information that's fine but if you're trying to
give me the answers that makes me uncomfortable yeah all right well have we answered the question
i think so now that the remaining question is if you tell the company and you tell them what
recruiter it was do they get a free hire because they're going to be like we're not paying you
oh there's layers of ethics here i am not rich enough to purchase the ethics required to solve
this that would also feel very sketchy if the company i mean if you told them and then they
still hired you i feel like they would still want to have to pay the recruiter because if you told
them that means you're you're kind of like giving up this unfair advantage boy if i if i'm in this
situation of this company i'm going right back to any contract language i can find to say to try to
find out like what exactly did this recruiter agree to with us you know yeah but either way
i'm probably not taking future candidates from them yep that is true all righty all ethics
problems have been solved yeah yeah that was the last one good news the last unsolved ethics
problem i mean it it's really only two it's that one and the trolley problem problems that can be
reduced down to it that's exactly the one i was thinking of yeah i think it's because it's the
only other ethical dilemma this is not related to anything but remember like i don't know six or
eight months ago when we talked about remote work and i said very distinctly that not very many
people would be remote it would never be like a majority of people oh yeah boy there's egg on your
face now yeah man the world is different what a weird time yeah thanks for listening i hope you're
staying safe and calm it's a weird time but we appreciate you still yeah thanks for listening
even though you're not commuting to work anymore yeah yeah that's true this is i think the value
of your time is higher now so yeah we are even more complimented by you spending it to listen to
us well what can people do if they want their own questions answered dave go to soft skills.audio
and click ask a question you can give us as much detail about yourself or as little as you like
thank you so much to everyone who has done that what can people do to support the show they can
tell other people about it that's the easiest way probably if you want to support us financially you
can go to patreon nope go to our website it's easier go to softskills.audio and click support
us on patreon there's other other people on patreon and we don't want you to give your money
to anyone else yeah you'll be distracted so don't go to patreon okay got it yeah that's how you can
support the show thank you to those that have i think that's it we'll catch you next week
