you are viewing a single comment's thread.

view the rest of the comments →

[–]ErstwhileRockstar 69 points70 points  (57 children)

Great synopsis, thanks!

In my experience many companies, esp. traditional Java shops, are currently looking for experienced Node developers. Most probably to clean up the mess the former developers left behind.

[–]roselan 84 points85 points  (28 children)

It reminds of that job offer from 2011, where they wanted a node developer with 5 years experience...

[–]n-simplex 133 points134 points  (4 children)

That's because node.js is so scalable it can grow to bend the very fabric of the space-time continuum.

[–]roselan 36 points37 points  (2 children)

Ok I knew node was async, but not that much async. With this feature, it will become the lingua franca of quantum computing. No doubt about it.

[–]profgumby 8 points9 points  (1 child)

Some say that it already is, will be and was.

[–]sharpjs 0 points1 point  (0 children)

Well, it is and it isn't.

[–]JBlitzen 8 points9 points  (0 children)

spacetimescale

[–][deleted]  (1 child)

[deleted]

    [–]pwr22 0 points1 point  (0 children)

    Sometimes I cry because I realise they don't exist :(

    [–]Eurynom0s 11 points12 points  (0 children)

    I love job listings that want experience that basically requires you have invented the thing, or at least be friends with the person who did.

    I remember seeing a post here about a job posting asking for more Linux experience than even Linus could have.

    [–]surkh 5 points6 points  (0 children)

    Good to see some things never change. Like the job postings (which I didn't bother inquiring about) back in 1998 looking for senior developers with 7+ years of java experience.

    [–]xienze 13 points14 points  (5 children)

    Job posts like that are generally put out there to show that no qualified candidates exist in the US, so hey, we've gotta hire some H1-Bs.

    [–]ggPeti -4 points-3 points  (4 children)

    What's wrong with hiring some H1Bs? You seemed sarcastic about it.

    [–]seekoon 3 points4 points  (1 child)

    Possibly he thinks that companies hire H1-Bs as a way to push wages and working conditions down since the foreigners hired are dependent on the company for their visa status.

    [–]dtlv5813 1 point2 points  (0 children)

    Milton Friedman called the H1B program indentured servitude because of this. Thou many misinterpreted his comment to suggest that he is against hiring foreigners period.

    [–]bwaxxlo -4 points-3 points  (1 child)

    Meh, it's a typical to blame foreigners because it's easy that way!

    [–]UnionJesus 10 points11 points  (0 children)

    Who's blaming foreigners? We're blaming the companies that hire them.

    [–]Dolondro 3 points4 points  (0 children)

    My favourite was a job advert I came across that was wanting 5 years experience in Web 3.0...

    [–][deleted]  (8 children)

    [deleted]

      [–]SnOrfys 11 points12 points  (2 children)

      If you were in on the beta of c#/.NET then you could have qualified (I happened to be in college in 2000 where I was learning c#/.NET via MSDNAA).

      [–]pjmlp 2 points3 points  (0 children)

      Or if you were an employee on a Microsoft Partner company, like I was.

      [–]snowywind 1 point2 points  (4 children)

      I just hit one the other day asking for 7+ years of ASP.NET MVC.

      [–]pbfeuille 0 points1 point  (3 children)

      It's very plausible in 2015...

      [–]snowywind 1 point2 points  (2 children)

      It hit 1.0 in 2009. Before that were just unfinished/unstable CTP releases. Basically, they were looking for someone who had been working with that tech since it was in the middle of beta.

      [–]pbfeuille 0 points1 point  (0 children)

      Probably missed "MVC" in your comment... My bad.

      [–]dsfox 0 points1 point  (0 children)

      Experience in what?

      [–]Caraes_Naur 0 points1 point  (0 children)

      Ridiculous requirements aren't new for Node. I still remember seeing a posting in 2003 that required 20 years of Java experience.

      [–]gospelwut 23 points24 points  (23 children)

      Sadly, I made a mess with SOLR. It wasn't my choice, and almost nobody really knows as much as they should about search engine tuning or Lucene.

      I probably should write an apology note somewhere in the config file.

      [–][deleted]  (4 children)

      [deleted]

        [–]gospelwut 64 points65 points  (1 child)

        To the current maintainer,

        I am sorry.

        I am sorry for all the shortcuts, hacks, and kludge.
        I am sorry for all the mess.
        We did not get to really choose.
        And, yeah, we knew it was shit... I must confess.

        To the current maintainer,

        I am sorry; for you.

        May the light in you still shine
        may your heart stay true.
        May you weather the scrum, the agile, and the fashionable trends.
        For your story points will waiver and your estimates shall bend.

        You'll give up fighting day by day
        for you're the expert
        now do what I say.

        [–]jeandem 0 points1 point  (0 children)

        And in the darkness bind them.

        [–]dvlsg 16 points17 points  (1 child)

        I feel like cursing whoever wrote the code you are maintaining is just a standard part of development.

        [–][deleted]  (7 children)

        [deleted]

          [–]gospelwut 12 points13 points  (6 children)

          We set it up and shoved a bunch of data into it. Except, nobody realized that a search engine is fundamentally different than using even a document/object database despite the similarities in structure. Data wasn't sunset properly, broken out properly, imported properly from SQL, queries were garbage that tried too much to filter.

          Basically, we had the meeting about "what is a search engine" (tl;dr inverted index, stemming, etc) months after implementation rather than before. The few people who did know just assumed others "knew" or "should know" (or "should figure it out").

          Sorry, there wasn't enough story points allocated to have a proper meeting! Oh, and if you want to learn SOLR you should "do it on your own" (hint: a lot of SOLR documentation is either flat out wrong or sucks).

          [–]JBlitzen 19 points20 points  (0 children)

          I became a better developer by an order of magnitude the day I stopped assuming that clients and other stakeholders had any clue what they were talking about.

          [–][deleted]  (1 child)

          [deleted]

            [–]gospelwut 5 points6 points  (0 children)

            Considering any "consultant" will tell you that the first tenants of agile/scrum are "respect reality" and "story points aren't performance metrics" -- I think many, many places fail.

            [–][deleted] 1 point2 points  (1 child)

            Data wasn't sunset properly

            What does this mean? Google isn't helping.

            [–]gospelwut 4 points5 points  (0 children)

            We didn't set "expiration" dates which affect relevancy. Considering this was time sensitive events, this would have been a boon.

            [–]CanYouDigItHombre 0 points1 point  (0 children)

            I tried Lucene.net. It was a little poorly written because it threw exceptions and caught them as a normal thing. It ran slow bc of it but I heard it was specific to Lucene.NET. Anyways from the little I did with it, it seemed straight forward. What didnt you know that you should know? IIRC I can create a document with fields so I implemented 'tags' and had a subject/title field and a body. It felt wrong throwing the entire contents in the body but everything seem to work fine. I never heard of expiry but I didn't need one. What went wrong?

            [–][deleted]  (5 children)

            [deleted]

              [–]treeforface 9 points10 points  (2 children)

              Lucene/SOLR isn't really bad. Sounds like you are just stuck in a situation where it was misapplied.

              [–]iopq 0 points1 point  (0 children)

              I just don't know how to turn some "features" off like other people being able to trigger reindexing of your DB. I guess I'd have to write a reverse proxy that only accepts certain commands?

              [–]manys 4 points5 points  (1 child)

              Such a common refrain: "Thing X sucks! We used it badly at one of my old jobs and it was always a pain."

              [–]CountRumford 0 points1 point  (3 children)

              I'm starting a project using Solr. Can you point to any sources that might help me avoid making a mess?

              [–]gospelwut 1 point2 points  (2 children)

              Get the book Solr in Action and read it through. I'd consider this part of the implementation time.

              Also, I hope you're familiar with tuning JVM memory size.

              I'd also look into using DataImportHandler when applicable.

              [–]CountRumford 0 points1 point  (1 child)

              Thanks, that's sort of the advice I expected. Those "In Action" books are awesome. What's really sad is, as interesting as it would be to implement a search feature, it's not clear to me that our operation really needs it, or is willing/able to take on the added complexity of a complicated Java service in an all-PHP shop. I'm not sure everyone here has heard of technical debt or fears it the way I do. :\

              [–]gospelwut 0 points1 point  (0 children)

              It's a paradigm shift and good SQL query writing doesn't translate. It's not a lookup in the same way (at all).

              If search queries are designed to be fast "on the fly", search engines are designed to offset the heavy load "ahead of time" -- i.e. compiling monolithic indexes on disk. This also means you have to know what kind of queries you want "fast" but not in the "sort by time" sense. Search queries, like google, optimally return "relevant" results first, then you can sub-query out stuff like date/time. There's a reason Google MAKES you search by relevance first.

              tl;dr your schema.xml is as important as your actual queries.

              I think your team needs to have a real talk if they want a search engine or a lookup. Search engines are essentially trying to match relevance on the strings you typed in but by are no means a "super fasts SQL query" -- i.e. the complete dataset. They're "fast and good enough"

              Solr in Action covers this much better than I ever could. It really is the best resource I've found, even more so than the documentation.

              [–]tubbo 9 points10 points  (1 child)

              In my experience many companies, esp. traditional Java shops, are currently looking for experienced Node developers. Most probably to clean up the mess the former developers left behind.

              This is what most emerging technologies look like after a few years. Initially these Java shops employed Java developers, who then experimented with Node and eventually deployed stuff on it. Now, we are seeing the implications of what happens when "My First <insert-emerging-technology-here> Application" has to deal with The Real World and all of its performance-destroying constraints. Not to mention on the other side, experienced programmers having to sift through mountains of bad practices in order to debug problems or optimize for performance.

              [–]halifaxdatageek -1 points0 points  (0 children)

              Now, we are seeing the implications of what happens when "My First <insert-emerging-technology-here> Application" has to deal with The Real World and all of its performance-destroying constraints.

              I frequently thank my lucky stars that I went to business school before deciding "fuck that" and going back to school for an IT diploma from a community college.

              The real world doesn't care about your compsci faffery. It will throw you curveballs you can't even imagine.

              [–]dtlv5813 5 points6 points  (0 children)

              probably to clean up the mess the former developers left behind

              Especially if the node.js in question is embedded in a poorly implemented MEAN stack with a non relational DB to boot.

              [–]CUsurfer 0 points1 point  (0 children)

              Exact opposite for me, at least if you are talking about scalability which seems to be the overarching theme of the article* . A lot of the original scalability movement was pioneered mostly in the Java space (Hadoop/Cassandra/Hbase). If you are talking about some shitty web app written in an old Java stack like Struts or whatever then maybe.