What is a ‘Full Stack Developer? In a general sense, a Full Stack Developer refers to a web developer who can manage and or execute all aspects of building a web site from inception to completion. Id Est, a Full Stack Developer has knowledge of and experience with every layer in the software development life cycle.
I recently read a blog post that implied that Full Stack Developers were less than desirable in the job market. The author argued that specialists with little or no experience outside of their specialty were more desirable in the current job market than a well rounded, Full Stack Developer. She used a phrase that we are all too familiar with in reference to Full Stack Developers: ‘Jack of All Trades and Master of None’. It’s implication is less than flattering to those whom it is applied. Like many phrases of the like, we have heard them so many times that we seldom stop to consider whether or not they are true, or are truly applicable in their application. How is this relevant to to the ‘Full Stack Developer’?
In the case of the Full Stack Developer, I would say that the phrase is completely inapplicable. With enough time, anyone is able to master any number of languages, concepts, frameworks, applications, etc. A good Full Stack Developer is certainly able to master most, if not all, of the layers in the software development life cycle. Arguing the contrary is as unsupportable as arguing that a person is incapable of mastering multiple spoken languages. While the multi-lingual savant may not master the perfect accent for each language they speak, they may certainly master the proper formal and casual use of each language.
Are Full Stack Developers undesirable in the current job market? Absolutely not! I would argue that there are more position that require developers to wear more than one hat than there are position that require developers to wear only one hat. I frequently receive job listings from recruiters, and I have NEVER seen a job listing description that required a single skill set. At the very least, the job descriptions I have seen require at least two layers of the Full Stack. Most Job descriptions require expertise in two layers and would state that a basic knowledge of other layers, or a willingness to learn said layers, is ‘nice to have’.
When I consider focusing on a single skill set, my mind goes to how bored I would be with my job. Stagnation stinks like death. If anyone is satisfied with a position that doesn’t allow one to learn and grow into the surrounding layers of the Full Stack, I would question their work ethic as much as I would question whether or not they are in the right field. Maybe they’d be happier doing something other that building web sites and web based applications.
Go Full Stack or Go Home! Push the limits. Master everything you touch. That’s my two cents.