What exactly is Full Stack these days?
I don't know if it's just me, but I'm getting pissed off at job requirements. For example, below:
==============================================
The ideal candidate has the following qualifications:
Deep understanding of front-end JavaScript development using libraries such as React, Angular, etc. Basic understanding of AWS Services, such as Lambda, API Gateway, CodeCommit, CodeBuild, CodeDeploy, and CodePipline Expert in CSS/HTML5 Deep understanding of development using either Python, Node, or Ruby Comfortable and excited about interacting with clients and end users Expertise in developing under Linux or OS X Desire to pursue AWS Development Certifications toward expert-level achievement Familiarity with SQL and NOSQL databases Experience with orchestration tools such as Ansible, Salt, Chef, or Puppet Experience with Vagrant or Docker Familiarity with continuous integration systems such as Jenkins or Bamboo Familiarity with tracking systems such as JIRA Ability to work independently and collaboratively – self-motivated, accountable, and able to offer up new ideas Critical thinking, troubleshooting, and problem-solving talents A balance of technical, business, and social/emotional intelligence Passion about learning coupled with an ability to learn new skills quickly
==============================================
Oh really!?!? So, you're looking for a sysadmin, a backend developer, a front-end developer and you expect them to be socio/emotionally well balanced?!
Is this an exercise for the hiring manager to feel better about themselves? Face meet palm, they're trying to hire Superman.
Fuck the hell off. "Full Stack" dev here, been coding for 16 or so years. CS degree in there somewhere. I've used every one of those technologies with the exception of Salt (Nothing against it, just have not used it). I don't think I am that much of a rare breed. Some of the AWS technologies many would not be exposed too, but learning an AWS build pipeline is not difficult if you have used competitors. I don't think that is that crazy of a job description. If someone has focused on breadth of skill over depth, you are going to run across most of those technologies (With the exception of some of the AWS services I don't see that much). Ive mostly worked for startups and its not uncommon for me to write front end modern javascript, build backends, orchestrate deployment pipelines and be involved in a sales call all in a single day. I am very far from superman. Its pretty easy to be "Ok" at many technologies. Its pretty hard to be truly great at a single technology. I admire those who truly master a specific technology but I learned that my strength is breadth over depth. I am sure if a truly seasoned JS developer saw some of my frontend code they would have lots of suggestions for improvement, but that is fine by me. I can build stuff which meets the intended goals and generally everyone is happy. Pretty much agree with what r-s has written above.Have spent 11+ years working/consulting for mostly startups. Have used everything listed above except Salt (Nothing against it but the Salt team should look to so some PR and build their case) and a lot more. For example, this job post mentions nothing about monitoring solutions like Zabbix or centralized logging solutions like Graylog or message queues like RabbitMQ or any of the myriad specialized data stores, etc. Also agree here. I think you gradually get to know these technologies with the more practice/experience you get. I might not know Puppet or Chef, but I've used Ansible in the past and they're a bit different but they're also the same. So if I was applying to this company I'd say that I haven't used some of the specific technologies per se but I can learn them when I get there. I think this job description just says, "we want to see if you can contribute in the front-end, back-end, database design, have some literacy in the Amazon services, use development tools like Jira, etc." This sounds daunting when you read it, but over a span of a few months with a company or with a project, you'll get to experience most of these anyway I guess it all comes down to what they mean by "basic understanding", "experience" and "familiarity". I am pretty inexperienced with modern web developer, but I still have a basic understanding what the difference AWS services do (ie I've read the description of them on the AWS homepage). I have experience with Vagrant and Docker (ie I've installed and played around with both and some point). I'm familiar with tracking systems such as JIRA (although not actually JIRA). Basically don't read too much into lists like this. As long as you've heard of everything on the list and are good at two of the most import ones you're probably good to go. When I see job descriptions like this, I think one of two things: (1) either they don't know who they want, or (2) they don't know what they are making. Part of me wonders if they are trying to convey how smart and relevant they are. Of, perhaps, this is what happens when you write content with SEO in mind. My personal red flag is the 'development certification'. Most of the certifications I have seen are more about the appearance of expertise than having actual expertise. This is something that you almost exclusively see in large bureaucracies, which leads me to believe that (1) -- they don't know who they want -- is the case and they are using a scatter-shot approach. Certifications are big for consulting type jobs like the one OP described as it helps the clients gain confidence. This description even stated that they just want you to get it after you are hired, which is fine. Many developers will put it off or refuse to do it so it's good to set that expectation up front. I see nothing here that an inept individual with a 4 year degree and an attuned interest in the industry couldn't achieve within 10 years. Much less if they are motivated and establish healthy habits. I don't see bullet-proof or laser vision on the list. Besides, wouldn't you want to know all of this? The bigger your tool set, the better your development. No, I wouldn't. Bruce Lee once said, "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." The opportunity cost of learning 25 new technologies is that you miss out on learning any one of them very well. I've seen lots of companies throw a giant mess of libraries/frameworks/services at a problem, even though nobody working on it really understands any of them, so they resort to solving every problem by googling. If expertise is to be replaced by StackOverflow, what's the point of requiring it? I don't think I could have a "deep understanding" of more than a handful of these, in a lifetime. But they'd need to also be read tea leaves and predict that there will be this job ad back in 2008, so they can spend 10 years fine tuning their career and tech choice of stacks to suit this ad, imposing CV-driven development as collateral damage at every company they have worked for. ... Or they could have purchased 1000 bitcoins for $10. :-) Eh it just optimizes for someone with high intellectual curiosity imo ¯\_(ツ)_/¯ Imagine tech stacks are lottery balls. And they ask for 6 specific ones. What are the odds that you've picked the right balls? Unless we are talking about quantum humans that can learn all the things at the same time. Staying informed, daily, on trends and reading the latest material helps the individual to adjust to meet the changing industry. Study Computer Science, pick up a few languages, familiarize yourself with various technologies, read white papers and journals, and connect with experienced professionals in the industry. You needn't be fully prepared for all of the requirements, you need only be cognizant of the evolution of the industry and quick to study advancements in your field (as with just about any industry). I think the job wants people with experience in those technologies, not just people who have read about them on HN. I realize you did a Show HN on the shrug emoji, but please don't use it excessively on HN. Except I don't think that's the case. The field is too wide for someone's attention to go deep in all of those areas. You might say, well give me a 10 yr runway. The problem is most of those technologies won't be the same in 10 yrs. You're absolutely right, but staying informed is part of the responsibility. PHP, SQL, HTML, CSS and Linux haven't changed so significantly since 2008 that someone who was proficient in 2008 couldn't relatively easily pick it up again today. There are certainly new expectations and applications which arise every 18 months, but anyone who stays fluent will have little difficulty in mastering all of these - and more. I am a "Full Stack" engineer with 2 years of experience working for a small company. Worked in everything of that except Ruby include ios(swift,Objective C),android,Java,Scala,MySql,DynamoDb,MongoDb. It was frustrating at the start and then it became a joy.But then not sure if I am good at any of those. The same day I would be fixing a Jenkins build, write some Node and fix bugs in the ios code base, completely normal. I am not ashamed to show off. That is an hilarious list of expectations. It's akin to announcing they have an concept for a product and no idea how to make it so you'll have to know and do everything that might possibly be needed to accomplish it from start to finish including the patience to address their every whim along the way. They don't say how long they'll give you to make it but I'd bet they'll expect it ready to ship in a few weeks or a month at most :D I just envision this drag and drop idyllic list where recruiters/HR say to themselves "sure, why not A, B,C... and P, Q, R S T languages" I fail to see the issue with this post. Frankly, if you are learning and willing to try new technologies across areas of the web dev stack you should have a grasp on 80% of these things at least (I didn't say expertise). What I am more surprised by is the unwillingness by many - indicated in the comments - to explore things outside their domain. I'm not sure you parsed the description correctly. They're not looking for someone with a mere grasp on these technologies. ========================================================= * Deep understanding of front-end JavaScript development using libraries such as React, Angular, etc. Deep understanding of means you know these frameworks and libraries well. If you know these libraries well, you're a front end developer. The title front end developer exists solely because people need to focus exclusively in this area because the job is both challenging and complex. * Expert in CSS/HTML5 Ok, not too crazy. But I wouldn't expect the Bootstrap guys to know sysadmin tools. * Deep understanding of development using either Python, Node, or Ruby So in addition to deep understanding of the front end, we also want someone deeply skilled in a general purpose programming language. AFAIK you can't have a deep understanding without being deeply skilled. * Desire to pursue AWS Development Certifications toward expert-level achievement Ok, so sysadmin/devops guy. * Experience with orchestration tools such as Ansible, Salt, Chef, or Puppet Sysadmin/devops guy. * A balance of technical, business, and social/emotional intelligence Basically we want someone that can do it all. Don't let all those requirements break your confidence. Leave that imposter syndrome at home! ======================================================== I wouldn't say it's an unwillingness. It's just not realistic. There's a reason cardiology and neurology are separate fields. This job description to me doesn't read as "we're looking for someone who's handy". They want three people for one job. To me it's a bit appalling. As long as they are willing to pay three salaries it should be OK. The candidate that fits all these requirements wouldn't be looking at their job posting. Agree. Is that the job description for senior level+? It honestly doesn't sound unreasonable to assume a senior+ engineer to have experience with all of these technologies in this day and age. Software development tools have come a long way in the past decade and it's become possible for a generalist full stack dev to learn about and use every part of this (not having to be an expert in any, of course). I'd say the more problematic part of hiring is in the interview stage, where inevitably you'll be asked questions around binary search trees, merge sorts, and the like. (Admittedly, I am also guilty of using such interview questions myself in the past as an interviewer.) I find that it's actually more reasonable to expect knowledge and working experience with all the tech tools you listed, than actually asking about inverting a binary search tree. I don't have good answers for what one should ask instead. I imagine it is a more senior role. While it's not uncommon somebody has "experience" in those items listed, it all comes down to what exactly that experience is. Dabbling in miscellaneous AWS services IMHO is a lot different from someone managing 11 billion requests/day and the challenges there. So true re: binary search trees, merge sorts, and the like. I think web dev's need to realize their real world work has more to do with plumbing than it does dealing with programming puzzles. Unless you're FB or operating at web scale. I don't think that's too bad though - I'd prefer them to clarify what they mean by 'deep' vs 'basic' understanding, but I certainly know a few developers with 3-5 years experience who could comfortably tick the box You need them to clarify deep understanding? If someone said they wanted a candidate to have a deep understanding of jet engines, I'd expect they know every single thing there is to know about them. except we're not talking about jet engines - I was asking at what point does basic become deep, hence the next remark referring to 'years of experience' as a benchmark Really? At what point does basic become deep? When you stop consulting stackoverflow to find answers to your queries because you know that you know more than the most people browsing and willing to answer your question on stackoverflow. Or when you start answering questions on a topic rather than just reading answers posted by others. Not only would the ideal candidate have the above experience, they would also have to be able to pass whatever interview process they have lined up. When a company wants such a broad skillset/range of experience, how would they interview for it? Unrelated edit: I looked up the job post, and one of the listed benefits is "2 weeks paid vacation". Personally I would need more time off to decompress from constantly being pulled in different directions. This person does not exist. It is a myth created in Silicon Valley. What 'Full Stack' should really mean is someone who can learn new technical skills real fast. Someone with a passion for learning and implementing what she learns. In an ever-expanding technology scope, it is really impossible to know it all, but one can be on a journey to be curious and learn the skills that the job needs. IMHO, a Full Stack developer would be someone able to bootstrap a project on his/her own. He/Her doesn't need someone else to have an MVP in production. But I agree that the job requirements you gave as an example are insane, you can't be an expert in every stack of a product. At least not with the current implicit age requirement of the industry. What do you expect from a job these days? "Has skills in a single area"? To be honest, it's not that hard to gain a bit of familiarity with all this tech. See my reply above... > sysadmin (devops), a backend developer, a front-end developer That's basically what full-stack means. I don't get what's your problem with this is. My understanding of full stack is frontend + backend web development. Sysadmin/devops is it's own discipline. When I see something like that I just run away and don't look back. But but they have a ping pong table and infinite vacay! Lol idk if you’ve been doing this stuff for 20 years you’ll have those skills ¯\_(ツ)_/¯ Probably except this one: A balance of technical, business, and social/emotional intelligence. More than likely someone with this sort of technical capacity doesn't score well in other areas. Have to disagree a bit. If you aim to have this level and breadth of skill over a n-year period where n<5, yeah, your personal and social life would suck. But if this is built over 5+ years by reading, doing and learning from others and teaching others while understanding what level of abstraction/detail meets the current and future business requirements reasonably well, it's not that difficult or rare.