[1] Edit: Looks like it indeed was a filter question, as I suspected: https://news.ycombinator.com/item?id=31065819
[1] Edit: Looks like it indeed was a filter question, as I suspected: https://news.ycombinator.com/item?id=31065819
I mostly do pair-programming interviews. When I do it async and have them write something, we'll at least discuss the code together. So either way, I'm way less interested in whether they finished than how they did it and how they think about it.
And maybe I'm just weird, but I'm not super interested in the "upper limits of a candidate's abilities". If they're using all their cleverness just to write something, neither they nor anybody else will be able to maintain it. Software is a team sport, so I want people who are good collaborators. Indeed, the "upper limits" thing makes me think of Aphyr's series of fictional technical interviews. (Start with the last one and work your way forward.) https://aphyr.com/tags/interviews
That's what I do most of the time when I'm working with code, it's always an existing system that you need to add a feature to without breaking something else.
What do you think is a good question for a "senior software engineer"?
You go through the normal change process like everybody else.
There is no such thing as a "safe" change.
The only exception to this is when stuff is on fire, and, practically by definition at that point, there is no such thing as a "safe" change.
Given a Tech document that addresses the risk of change, the rollback plan, the security implications etc, and a suite of metrics demonstrating load and failure conditions with appropriate alerting. And of course the PR with appropriate test suite, shown to work in a test environment in concert with the rest of the ecosystem, that stuff is just table sakes. convince a director to approve the change. Ideally a director that doesn't report to the same vp as your org.
Good questions aren't easy to come up with, I'm not an expert in interviewing by any means, but for a senior engineer you'd want to ask questions that start straightforward like this, but become progressively less straightforward (and maybe one that's a more subtle design issue) so you can get a better feel for their skills as you work with them.
There's also a tendency for interviewer to choose questions from their personal expertise rather than something appropriate to the person or role.
I'm a senior engineer and I do a lot of design and architecture and code review every day but I would probably fail most generic leetcode tests and I think I would pass this one, so I feel kind of personally validated by that, so excuse the passionate response. :)
- enquiring about the candidate’s thoughts about the problem and their approach to solving it, on which (again IMO) this candidate would really shine; you’d likely get a much less thoughtful or thorough account from someone less experienced or talented
- ask about concerns which would be typical in real world work but often get glossed over in interviews, like how they’d approach testing and SCM and review, or even just things they’d do differently outside the interview process
- get more conversational and learn more about the actual value the candidate would potentially bring to your team/org, starting this with some greater confidence, trust and familiarity on both ends
- dive deeper on technical validation if anything in the above feels questionable
Those sorts of conversations convey much more meaningful information than any coding challenge that isn’t very focused on very specific prerequisites for the domain/role.
It introduces an entire problem space where you’re evaluating something that’s neither important to you or your company.
Way too many moving parts.
I haven’t interviewed on site with a coding challenge for nearly a decade, but last time I did I literally brought my own laptop and asked permission to use it (which was always declined). If I were interviewing today I’d literally walk out if that request wasn’t at least considered, and probably even still if it was declined without a really good explanation.
I’m quite productive thank you. But if you stand me up in front of a whiteboard or sit me in front of an unfamiliar code editor, I’m gonna produce nothing of value. If you’re filtering me out for that: thank you, I don’t want to work for/with you either
As far as interviews go, it’s pretty good.
Yes, hiring is supposed to be “ableist.” I don’t want to work with or hire mentally limited people who couldn’t write a function in Notepad.
Hiring is supposed to be qualifying. Qualified people using completely irrelevant-to-the-task assistive tooling is none of your fucking business. Unless the job you’re hiring for requires coding in Notepad, your expectation that interviewers do is discriminating probably illegally but definitely immorally. And probably also limiting your hiring pool in ways you don’t want.
Not a problem for me in this particular aspect, I’m never going to seek employment from you. But disadvantaging people who need accessibility tools is shitty.
I think that this is actually pretty obvious to most people. Arthur only mentions this to say that getting a working build environment wasn’t part of the test.
I myself rely heavily on IDE click thrus and reference searches.
Purely using grep sucks, and a plain text editor's search function might also not function as smoothly. This all leads to friction.
This type of interview requires the candidate's own dev setup. If they could prepare ahead of time (e.g., give the repo to download and setup the IDE etc), then it would be fine.
As long as one tells candidate in advance: "I am going to be asking a mix of questions, some easy some hard. I don't expect you to be able to answer every question", this sounds like a good question.