2 ms·
I hear you, and hope you can find something that works for you. A cousin of mine, an aeronautic engineer, went on to become a patent agent (editor/writer/evalua
by beagle3 10y ago
I hear you, and hope you can find something that works for you. A cousin of mine, an aeronautic engineer, went on to become a patent agent (editor/writer/evaluator) at a big patent firm. He needed to do some legal training, but it was less than a year -- not a full law degree. He couldn't be happier - he is paid to read and be up-to-date on a lot of interesting stuff, has conversations with interesting people all day and (at least in his firm), has a job that is as 9 to 5 as he wants it to be, no pressure, no crunch time, etc.
The down side is that patents are evil.
> And no respect for experience, unless you demonstrate on a whiteboard with your implementation of a sorted bubble tree list.
I will be a dissenter here: I have interviewed people with 20 years of experience, and who have shipped products, who had gross misunderstanding about the tech stacks they are using -- to the point of taking multiple (2x - 10x) times of both implementation and resources than a reasonable solution -- just reasonable, not compared to an "optimized" (for resources) or "quick and dirty throwaway" (for time) solution. And most of the times, these people were oblivious to their (lack) of knowledge or understanding.
Your post reminded me of a specific interview, someone with 20 years of experience, who's answer to a question (essentially, a database join, which could have been done inside the select but wasn't), which was an O(n^3). Would have worked reasonably well even on an n=1000 table, but our table had n=10,000,000, and this was specified in the requirements. After grilling him a bit about runtime estimates (to which his basic answer "who cares? computers are fast enough nowadays"), he did acknowledge that as written it would take forever, but then added "But it doesn't matter, the compiler will optimize this anyway to the best possible O(n) solution, and it will be fast". This was about a C loop, in 2005.
I thanked they guy and declined his job application. I am sure his takeaway was that I was a snotty employer who only wants sorted bubble tree lists and arcane academic stuff, and that I couldn't appreciate him shipping products for 20 years. But had I taken him on our team, I am quite sure it would have been a failure: At that place, we had a successful fire-and-almost-forget shipping culture, which required doing back-of-the-envelope runtime estimates (among other things) to make sure things actually satisfy requirements -- and his attitude did not fit.
Another similar "20 year experience" story from a friend of mine who worked on a system running a moderately sized financial exchange: In small scale tests everything worked perfectly well, but once real load testing started, it was clear that it can sustain less than 10% of the existing load. (This was a 2nd-generation system, which was to take over existing trading). All measurements pointed to hard drives being the culprit, and a $50,000 SSD (whopping 10GB capacity, IIRC - this was 2002) was bought, and was able to just get the existing load working, with very little room for increased capacity.
At this point, my friend was assigned to review that the solution was properly implemented, and he discovered to his horror, that one of the 20-year-experience authors was unable to figure out how to do a "sprintf()" with unknown-in-advance result size, so he instead created a temporary file, used "fprintf" into it, allocated the memory according to the resulting size, read the data, and deleted the file. Changing this to an snprintf-and-if-failed-reallocate-buffer-and-retry scheme sped the system up some 20x (compared to the SSD!), and made the SSD redundant. The original guy's response when shown the solution was IIRC, basically a dismissive "oh, yeah - I guess I should have known about snprintf, it wasn't there when I learned C, of course the SSD was the right solution given the constraints".
I'm not saying experience is useless, but it is an appeal to authority, which most of us (especially here on HN) dislike when we are expected to revere it. If one can't show competence without referring to (vague, abstract, generally unverifiable[0]) experience, then perhaps one is not as qualified for a job as one thinks.
Just to clarify: This is not personally directed at OP - in fact, the vibe I get is that OP can easily pass sorted bubble tree list interviews and just got tired of it.
However, I'm just pointing out that anecdatally, I've seen too many "experienced" developers who are oblivious to the costs/benefits of employing them, to the point that I completely disagree with the prevailing (even on HN) sentiment that experienced developers shouldn't need to do the kind of interviews that junior devs do.
[0] Being a member of a team that did well is not, on its own, proof of anything. the dailywtf is full of "Paula"s and others who have spend months -- even years -- on teams that shipped, and the real world is too.
- kkarakk 10y agoBeing comfortable is an issue regardless of career. A self-satisfied sales guy who doesn't know the latest buzzwords and customer expectations is as useless as an IT guy who doesn't know the latest buzzwords and optimizations. Really interesting thought though, experienced coders should be tested about the cutting edge instead of what is familiar
- beagle3 10y ago> A self-satisfied sales guy who doesn't know the latest buzzwords and customer expectations is as useless as an IT guy who doesn't know the latest buzzwords and optimizations. I beg to differ. Latest buzzwords and optimizations are often detrimental. Among most important thing for a coder is (a) ability to learn, and (b) critical thinking. Following the latest buzzwords demonstrates (a) but is often a red flag for (b). E.g., for a while "hadoop" was all the buzz; I have interviewed some people who have used hadoop/spark, but not one could justify it (see e.g. [0] - which is consistent with my back-of-the-envelope calculations I made in 2010 the first time someone suggested I use hadoop). Furthermore, large scale sales do not happen because of buzzword compliance or even customer expectations. Sales happen because of compelling events and personal relationship. If buzzwords and numbers were all that mattered, engineers would be the best sales people; And yet, it is soft skills that make a good sales person. [0] http://www.frankmcsherry.org/graph/scalability/cost/2015/01/15/COST.html http://www.frankmcsherry.org/graph/scalability/cost/2015/01/...
- gaius 10y agoAll you need to know about Hadoop in one blog post http://aadrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html http://aadrake.com/command-line-tools-can-be-235x-faster-tha...
- menssen 10y agoThere are two sides to this. That story from a few months back about the guy who wrote homebrew getting denied a job at Google because he flubbed some particular algorithm on a whiteboard is pretty messed up. On the other hand, I agree with you that experience tends not to be a particularly accurate predictor of actual skill, and that white board algorithm implementations are at worst a good faith effort to solve the problem of interviewing for competence.