Milkman Matty

I'm a Full Stack developer, I think. The title of Full Stack developer is a contentious subject, at least among the social circle I frequent. The main criticism of the title is that it lacks a formal definition and universal understanding. As far as I can tell the general definition is that a Full Stack developer knows the front-end, the back-end, database design, a touch of DevOps and how to make everything talk to each other.

Well that's settled then. It's lucky that we have such definitive, clear-cut terms such as front-end and back-end, and lucky there is never any cross-over in the web scene. Can you sense the sarcasm? Front end development often sanitizes and validates form content before handing it over to the server. That task was traditionally considered a server-side (back-end) endeavour, yet doing the task in the client browser eliminates a server request and improves the overall user experience when JavaScript is enabled.

Similarly URI routing directly effects the end-user and plays an important role in SEO despite being "back-end". Just to further complicate things Brad Frost talks about the front of the front-end and the back of the front-end. This fuzziness of the front-end and back-end definitions is simply a product of trying to compartmentalise the web. So what does a Full Stack developer do again? everything? where does that definition stop? does it include SEO, what about imagery? Should they also be a veteran Database Administrator?

Brushing past the fact that the title Full Stack developer is built upon a foundation of fuzzy definitions we get to another problem: there's no one true stack. I liken it to hearing that someone's job is in "business", it tells you nothing about what they actually do. A Full Stack developer might as well say they're a "web programmer", the result is the same. A member of my support network Mr. Pepperoni pointed out to me that once someone says they are a Full Stack developer you immediately have to ask the follow up question "so what's your stack?" to get any meaningful information.

Chris Coiyer shows the changes in various stacks and what technologies they encompass.

That then brings up the scenario of those that know multiple stacks; are those developers more "Full Stack" than other Full Stack developers? Probably. How do we classify these developers? Multiple Full Stack Developer? The real shame here is that businesses generally only use one stack. This makes sense for hiring and maintenance reasons, but it means any "multiple full stack developer" is most likely going to have some of their skillset wasted.

Of course that uncovers the depth of knowledge verses breadth of knowledge conversation: does knowing one stack intimately best knowing 3 stacks shakily? Is there even a level of expertise that one must have in order to attain the Full Stack role? It's all very ambiguous, and lets not get into the debate around "is one stack better than another" today.

Despite the sense of mystery surrounding the term Full Stack developer I still state it as my job role when introducing myself at meetups. Before you ask here is my stack:

My preferred stack paints me as a Windows fanboy although I am comfortable enough with Linux, MySql, PHP and SSH that I wouldn't lost if asked to create a LAMP or LEMP stack. Now how does one express all of this in a succinct way that others can understand? "I'm a full stack Microsoft web developer". Again, the full stack could be dropped in that title and the information stays the same. I guess stating I'm a Full Stack Developer and seeing if any follow up questions are asked is at least a good way to measure interest.

I'm glad I'm not the only one that feels the term Full Stack Developer is sub-optimal, Chris Coiyer has a great article on the subject and I highly recommend everyone reads it. If video is more your thing, he also has a great talk called Oops—I guess we're full-stack developers now, from which the image above is sourced.