I think it's a real mistake when you don't let candidates write actual code and run it during interviews.
I think it's a real mistake when you don't let candidates write actual code and run it during interviews.
It has made me absolutely loathe non-interactive sessions. Not being able to run the actual code is ridiculous. Some of the best analysts and programmers I know of are "architecture guys/gals" who can create complex systems but may not knock out the actual code so quickly, or, as I like to call it "error message programmers".
Creating an interview test to weed out otherwise-intelligent "error message programmers" is, in my book, poor interview construction.
Okay, I need to iterate through a collection. Which is it again?
foreach (int element in elements), no that's C#.
for (int element : elements) .. nope that's java
for (var element in elements) .. There we go.
Probably wouldn't exactly go like this, I know js isn't typed when I sit down to write it. (except for when it is!) ;)
Regardless, I call this my "tooling up" period. Each day i'm faster, and it takes about a week to get to 100%. but then I'm golden until the project is done and I inevitably have to switch techs again. I probably need to flex more than specialists in interviews because of this. Whenever pseudo code is on the menu I breath a sigh of relief.
It makes me sad to think how hard it would be to remove bad interviewers like above. But as long as they perform reasonably well they won't get fired, and I don't think there is any interview QC system to feed back into the org. And thus we slowly slide from A to B and C territory...
Any optimization should happen after a basic algorithm that works and might go along the lines of (telemetry suggests our platform has a bottleneck here) how would you speed things up if there's an issue in this section?
So I indulged them. I spoke to a manager who said that he'd reviewed my coding project, and been happy with it ("so we can skip that"), so we talked (largely about K8s, as I am looking for an SRE management role - I'd told them I was happy where I was but was curious, and after all they'd reached out to me).
I talked about my experiences architecting K8s from a green field mostly by myself, and he was excited.
I spoke to someone else and he was excited. Okay, I thought, this has potential.
Email from HR: "We have a tech screen lined up for you. Please nominate some languages." I went with Python. Bear in mind I haven't written substantial code in _any_ language (except YAML, hah), for years. And was looking for a _management_ role in SRE.
So I had two rapid fire coding exercises (15 mins each ostensibly). Python lists and comprehensions, and some tokenization stuff. I struggled. Google was my friend but there was a good bit of "error message programming". I walked through the processes and my thoughts. I hesitated a bit at what Big O notation some of my code was, but I recognized routes to loop optimization and could see what was happening, even if I didn't know what the name was.
"Sorry, we are unable to continue following your tech screen".
Oh well. If your SRE PMs and group managers are required to write Python list comprehensions, maybe your idea of "manager" and mine... differ.