Ask HN: Should a back end Engineer be able to answer what makes an API RESTful?
I've been asking this very simple question to many people I've interviewed for a backend position. In my mind this is a warm up question and I never expect the full definition, I'm happy if they just tell me about http verbs and say the keyword "stateless". Unfortunately so many times I had people not being able to tell me anything about it, do you think I should reconsider this question, or is it a fare one?
20 comments
[ 3.1 ms ] story [ 54.8 ms ] thread(Question marks are part of the answers, now with the third answer I'm usually fairly happy to begin with and I go into other questions, but that should be the bare minimum).
I've been asked this question as well when interviewing for a frontend position and I just mentioned a few key points and they were very happy about it. But if you're applying for a backend position shouldn't you know more?
I'd be curious to hear the types of responses you're actually getting. I've had to do a lot of interviewing in my career and I've encountered "simple" questions that throw nervous candidates off of their game simply because of a misunderstanding. Sometimes the simplest questions can be the worst because the candidates expect something harder and overthink it. So, you might play with the phrasing a bit, or have different ways of asking it in case they seem to freeze up. For example, "could you name and describe some of the defining properties of a REST API?" or "could you tell me what makes a REST API different from a [SOAP, etc.--pick your favorite alternative] API?"
That said, I would expect a reasonably bright, experienced candidate to understand what you're asking fairly quickly. If you have to re-phrase it 3 times and they're still stuck, they're probably not a good fit.
But I don't think that's what you're doing. I think you're hoping to spark a conversation about what REST is and you've given us a few keywords here as examples of what you might expect to come up in this conversation. And this seems perfectly reasonable to me. I would expect that an engineer with relevant experience and an inkling of insightfulness and professional curiosity would be able to hold such a conversation.
I can see that making it hard to answer.
Quick Google hits on the matter:
https://api2cart.com/api-technology/what-rest-api-really-is
https://www.infoq.com/news/2016/07/microsoft-rest-api/
https://stackoverflow.com/questions/3408191/is-the-twitter-a...
Corba, soap, soa, micro services, rest, ejb's. It's amazing how many times the industry can reinvent RPCs.
You are basically asking them to tell you what your personal definition of REST is. You trying to hire psychics?
No matter what, if you're an experienced back end Engineer shouldn't you be able to go over this question without too much trouble or hesitation? Shouldn't you have explored this topic before? Is this a flawed or wrong assumption?
Sorry for the long comment, I'm really appreciating you helping me making this more clear.
Anyone that says CRUD or lists HTTP verbs is simply wrong. The term is often abused, and I find that rather disappointing.
Maybe you can ask the benefits of statelessness, and if the candidates know get and put, which one they'd choose and why.