DEV Community


Discussion on: I’m sorry, but this “Full Stack” meme makes me really mad/sad

cubiclebuddha profile image
Cubicle Buddha Author

Very interesting perspective. And I can see how coming from a world where there were so many technologies would lead you to that place. But now that there are stacks where you can just write JavaScript from the DB to the UI, it’s a little easier to make the claim that you are a generalist who specializes in JavaScript.

I would hope and encourage you to not immediately remove a candidate who says they’re “full stack” if what they really mean is that they like helping out where-ever they can.

I recognize that language is important and that I could have clarified that better in my article, however I think it’s important every team has at least one member of the team who is willing to help out where is needed. And it sounds like you have that “can do” attitude too.

nerdydeedsllc profile image
Nerdy Deeds, LLC • Edited

In no way would I unfairly disqualify a candidate; indeed, as stated: I warn them right up front. Nor am I stating I have a problem with a can-do attitude. To whit: fully half my interview questions are logic and problem-solving puzzles in which I don't care if you get the "right" answer or not. The questions - many of which I've written or designed myself - are intended to see HOW a person thinks, not WHAT they do.

What will a candidate do when they don't know the answer, they're under pressure, and they weren't at all prepared for the issue? You tell me you need time, or need your tools to look something up? No problem. You tell me you don't know, or you "give up" or "pass"? Bye. I'll end the interview right there.

It's our JOB to PROBLEM-SOLVE. By whatever mechanism/means necessary.

I've personally been called in on Christmas Eve because someone on our QA team in Bangladesh (thank god) had noticed we abruptly were getting 5,000 uninstalls PER MINUTE (that's ~83 per SECOND) from our primary revenue generator. Took us 32 minutes to catch it, get to the office, diagnose, triage, and repair the problem, which in real-world terms, means we lost close to 160,000 users of our 9M (about 1.7%) that day.

I expect EVERYONE that works with and for me to have a "can-do" attitude. Quite aside from the fact that you'd not have survived my interview with a "can't do" attitude, it's a basic expectation. It's like a restaurant touting their food is "fresh" (Subway, I'm looking at you). If I'm at a restaurant, the very LEAST I should be able to expect is "fresh." It had BETTER be! If that's the only positive you can voice about your establishment (Subway), then you need to rethink your policy on rewarding mediocrity (still looking at you, Subway).

But this isn't about positivism or optimism. It's about spheres of influence and responsibility.

Look, I think it's a nice plus if a candidate has worked within our ecosystem (though for real: find me two companies with the same standards, best practices, deployment procedures, etc., etc.). But I'm not hiring you so you can be a graphic artist today and a Python developer tomorrow. That signifies I'M not doing MY job right (or, more probably, that I've delivered a set of reqs to someone in HR who doesn't know Java from Javascript, who in turn vocalized those to a recruiting firm, who then disseminated a memo to their headhunters, who are now trying to parrot back that we're looking for someone who drinks coffee and has pretty penmanship).

But in truth? I don't give a damn if you've used whatever bit of library esoterica du jour that one of my guys happened to have managed to successfully lobby for when this project started. I let candidates whiteboard code in their language of choice (including pseudo-code and flowcharts!). I had one guy respond in Brainfuck once (took me two weeks to figure out what the hell his answer was; I put interviews on hold until I had. I hired him, after threatening what would happen if he ever pulled a stunt like that again, rofl).

Fact is: there are back-end guys, and front-end guys. Artists and Algorithmists ("Algorithmechanics?" "Algorithmancers?" "Al Gore?"). It's not "old thinking". It's not "outdated principals". It's human nature. I too fancy myself to be one of those unicorns that straddles the divide, but if I'm honest with myself I have PREFERENCES. Build UI's or optimize Joins for a migration? Screw that; hire a database guy. I encourage my guys to expand and diversify, sure. In fact, we require it: 4 hours a week on Fridays (barring crises) you're required to code something non-work-related, then present it to the group for feedback and review. In whatever platform you want. Some of my favorite VSC and Chrome extensions came about thusly.

But when I'm losing 300,000 users an hour? I'm not calling in my jack-of-all-trades, master-of-none, so I can sit and wait for him to browse NPM or ask Reddit. I'm calling in my damn ninja, who I HIRED FOR HIS EXPERTISE. Yes, there are stacks. Yes, some even run end-to-end. But just because you can code a really slick proxy server in Node does NOT make you qualified to make an equally-slick library of GUI components that'll play nice with Opera and Edge! And it DOESN'T NEED TO.

If my Startup's budget is such that I can afford to hire ONE dev, such that I need to spend the next 18 months combing LinkedIn, Monster, and StackOverflow to FIND this $200k mythical demigod, then I'M doing it wrong. And AS a candidate, that should SCARE YOU. Because during those 18 months, I could have hired 2 $100k guys that are roaring badasses in either end of my stack and started generating enough revenue to patch the holes.

Figure out which portions of the field you LOVE. The ones you'd VOLUNTEER to work in. The ones you do for FUN. Market yourself as one of those guys and run circles around me in your interview. You'll be happier, I'll keep you 'til one of us dies, and we'll both enjoy the pride and money of putting out REAL software WE made, instead of another flashlight app.

This isn't theory. This isn't my opinion. This is real-world, practical advice from someone who's been in the trenches doing it their entire adult life, since Clinton was still in his first term. Cuz I PROMISE you: I'm way the hell more "full stack" than 99% of the guys out there. I just recognize the hubris of the idea and wouldn't be caught dead asserting it outside a discussion like this.

There's just too much to know. For ANYONE to.

To quote Kyle Simpson (author of the best-selling You Don't Know Javascript books) in his outstanding keynote at JSNation: "I don’t think anyone ever really knows JS, not completely anyway. I say this in all honesty and not to boast: I’ve forgotten more JS than most people ever learn ... I’m not a JS expert, and I definitely don’t think I deserve to be called a 'classic.'" John Resig has said much the same thing. So has Brendan Eich, for gods' sake, and he WROTE the (first version) of the damn language! Albeit, though: Douglas Crockford, when approached for comment, merely muttered, "more'n you, pussy!" then set his dogs on me.