Show HN: Quiz that estimates your engineer level
engquiz.me Question 2 of 20
Which of the following is a valid reason for why idempotence is useful in API design?
A. Due to the rise of distributed systems, idempotence has become necessary in order to scale any large-scale application.
B. Given the unreliability of networks, idempotence allows developers to build robust API’s that allow for retry attempts.
C. Idempotence is actually not as useful in API design and is instead more useful when designing database schemas.
D. Idempotence is important to prevent clients from sending multiple duplicate API requests.
E. I don't know
Wow, you're really going to try and estimate my level, based on opinions? No thanks. Not without a write-in option.P.S. My opinion is that, idempotence only useful, if you draw the conclusion that ceding control of your systems to external entities is useful. At which point you compromise your system based on communicated assumptions for how something should be, and not necessarily how things are behind the wall you can never see the other side of. In other words, the subtext of this question is:
Do you like delegation of responsibility? The correct answer is yes.
Meanwhile, this question deals in buzz-wordy jargon. The answer you may provide, cannot be presumed as correct, without proper interpretation of the dictionary definition, according to the popularity of in-group consensus, and the chaining of the awareness of other preferred buzzwords as social cues for the expectation of a proper answer.This is not really an opinion question. It is intended to test the basic understanding of what idempotence is, not whether it is a good idea to use and in what situations.
"Useful" doesn't mean "preferred over other alternatives". You're overthinking the test due to having more advanced qualifications.
Idempotence, as you know, allows operations to be retried without the maintenance of state to detect duplicate operation, and so the correct answer is simply B.
A is somewhat of a distractor since use of idempotent API's is possibly relevant in building scalable systems. Idempotence isn't the cornerstone of scalability, though.
C is nonsense; and D is opposite: idempotence allows clients to freely send duplicate API requests. Prevention or detection of duplicates is required when idempotence doesn't hold.
I don't see the point of including E; only a complete moron would not guess among the other answers to have a chance at being right. Very odd to see "I don't know" in a multiple choice test.
You are incorrect in stating that this is not an opinion-based question, since the dictionary definition of the word itself is not the correct answer.
So, if I understand this correctly, because Merriam-Webster or Oxford give only the mathematical definition of "idempotent", neglecting the one from computer science or distributed systems, that makes the question about idempotency a matter of opinion?
The question "why is this useful?" is akin to "why do we like a thing?" and liking a thing is an opinion, and the reason for liking something carries a motivation, which differs from simply knowing what a thing is.
Why is it objectively useful? Well, it's not. Idempotency is neutral. It can be as useless as it is useful. Knowing what it is matters more than a cargo cult desire to find utility in a vocabulary quiz.
Should a test verify that an individual's opinion aligns with a trend expressing a point of view, or should it verify awareness of concepts?
Hey etc_host,
Thanks for taking a quick peek and sharing your thoughts. I definitely agree that there are issues with many of the questions and that the quiz overall isn't super accurate.
Do you have any recommendations on how to improve this question? Or, are there are subject areas that might make sense instead?
Just request the meaning of the word itself. Don't load the question with trendy concepts.
As an addendum, a follow-up question might add concrete context to the idea being tested. But context is a bottomless pit, where the default answer "it depends" lurks. That makes this a bad question.Q. What does idempotence mean? A. Validating a sequences of events in a stateless fashion.You're changing the test format here from multiple choice.
If your point is that "multiple choice is bad/written answer good", that's a very general hypothesis in the realm of education; it's not fair to be imposing that on this particular test designer in this particular situation who has chosen to deploy the multiple choice method.
I don't see trendy concepts in the original question. Perhaps the mention of scalability qualifies as trendy in distractor A?
Here is the list of externally referencing noun phrases from the question:
"idempotence", "API design", "rise of distributed systems", "large-scale application", "unreliability of networks", "developers", "robust API", "retry attempt", "designing database schemas", "clients", "multiple, duplicate API requests".
Which of these load the question with trendy concepts? API design, distributed systems, large-scale applications, developers, and duplicate requests existed three decades ago or more.
Gee, not really. It's still multiple choice.
I simply left out the incorrect responses B, C, D and E, in my version.
Here, let me show you:
There. It's multiple choice now. See how that works?Q. What does idempotence mean? A. Validating a sequence of events in a stateless fashion. B. A river in Egypt. C. Many things to many people. D. Anything you want. E. I don't know.
Drop the "I don't know". (Unless you're looking for a positive confirmation of who some of the complete morons are, which is mildly insulting.)
Who in their right mind would choose a certified incorrect answer in a multiple choice exam rather than guessing among those which include the correct one?
Anyone who chooses E lacks the cunning to make it in STEM.
On the other hand. Someone who can admit they don't know the answer to something when they genuinely don't know tends to be more willing to actually go out and learn about that then people who pretend to know the answers to something they don't
Any time i've been working with someone I prefer any time they admit they honestly don't know something then when they lie and pretend and end up fucking shit up.
I kind of took this quiz as a practice quiz for a job interview type scenario than an actual skill test. The questions make more sense if you look at it that way. The question about the web scraper for example seemed like it could have been answered correctly more than one way...
Hey HN,
For those of you full-time employees out there, you may have experienced a time when you weren't actually sure whether your title reflected your day-to-day performance. I wanted to build Eng Quiz because more information means more leverage, whether you're negotiating a raise or interviewing for a new role.
There are tons of things to do to make this more useful, so would appreciate any feedback!
I find these kinds of quizzes fun, but I absolutely hate when I can't see my results at the end of it. I'm glad to know you think I should be making $225k (that would be nice), but I'd like to see the results of the quiz!! Otherwise I just wasted 10 minutes.
Also, if anyone wants to pay me $225k, hmu.
The 'Start your free quiz' button currently is not working. Seems like there may have been an event handler at one point that is no longer functioning.
Is the example really indicative of output?
Are American tech companies really paying people with 0-3 years experience $100K?
No fucking wonder so many startups “run out of money” if you’re spending that much on people with no fucking experience.
Hey stephenr,
This is pretty common for some of the larger tech companies. While some Bay Area startups do pay a bit less in exchange for equity, it's still tough getting talent given all the competition.
For startups, I think the key is to really stay as lean as possible before hiring at all.
Salary varies highly based on location and should not be a result of your quiz to determine your engineer level.
And thus, I will repeat: this is fucking insanity.
Why? When rent/mortgage is easily upwards $35k and taxes are upwards of another $30k, that doesn't leave the employer with a ridiculous amount of money.
Taxes are reflective of income. Less pay = less tax.
Ridiculous house prices are reflective of ridiculous hiring/salary practices.
Your “solution” created its own problem.
Hmm. Doubt the accuracy.
I got “senior” 170k base with a much higher number in the 200-300k range, but I haven’t even graduated uni yet.
Also, I don’t write Ruby (why is this so ruby-heavy?) so I guessed all those.
I've been teaching myself programming for the last 10 months, and it seems to think I am an SWE II.
I feel as though that's a huge overestimate of my skill level.