A Full-Stack Web Team Will Provide Much-Needed Breadth And Depth To Your Startup
techcrunch.com
techcrunch.com
If you have written a disassembler and known an assembly language, have notable programs in C and what ever higher level languages you are using, and you've written a compiler in the past, cool, I respect that. You are a "full stack developer": any new language is just a tool you pick up. Most technologies become tools you learn to apply from basic principles you have absorbed.
But I see this word get thrown around so often I don't believe people asking for it know it when they see it, or the people claiming they are, are.
There is a stack.
That stack is in memory.
If you know what every piece of data is doing there and how to access it etc, you know that stack in the context of being able to develop on that stack.
You are a 'full stack developer'.
Or else, have people forgotten what a software stack is? Example: LAMP Linux calls Apache that calls MySQL and PHP/Perl for instance (and for all combinations). "Full stack" here means, you hack kernel code.
Full stack developer is different to full stack user.
If you want to go off on a cranky tangent every time the phrase is used, you have the right do that, but things go more smoothly when you apply some charity in interpretation and take things the way you know they are meant.
By comparison to other people who only know photoshop, or only know SQL, or only know sysadmin work, I can operate functionally in many areas.
syadmin - compile and set up servers from scratch
database - can deal with most aspects of database setup, configuration, troubleshooting, optimization and usage.
server-side level - php, java and a handful of others - worked with web-app languages since 1996 (php/perl primarily in those days).
client-side level - js/ajax/etc
etc - app integration with mail servers, chat servers, multiple external APIs, etc.
Looking at a web browser, I can trace a click across the network with wireshark, through various layers down to my app, then in to a database, and can tell you how long each segment took and why and how to improve it for speed or scale.
But... I've never done kernel hacking beyond compiling, so by your definition, I'm probably not a fullstack developer.
See why there's confusion around the term?
FWIW, I'm OK with the term, but think it's going to get generalized to the point of being the next 'rockstar ninja' phrase we'll see plastered everywhere in 2013.
I have built servers, installed, config'd and maintained web servers (LAMP), setup mail servers, setup networks, built web applications (front-end and back-end), debugged operating system issues, network issues, database issues, recovered lost data...and I would consider myself to be a full stack developer, but according to other peoples definitions I wouldn't be if I hadn't done any major modifications throughout each level of the stack...which by that narrow definition would mean that there are probably very few "full stack developers" in the world
These are designers needed for the job adverts that require somebody who is a great visual designer and a great user researcher and a great user tester and knows HTML5/CSS and knows JavaScript and knows PHP5 and ...
So called because you're about as likely to find one as you are a unicorn ;-)
There's a need for specialists and generalists on teams. Startups often need more generalists at the start - both because of cost issues and because of the communications overhead that specialists can cause. But trying to hire mythical employees who are excellent at everything is often a... suboptimal approach.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
For example I know nobody who is really good at all of:
* user testing
* interaction design
* visual design
* HTML/CSS
* JavaScript
* user research
* branding
* information architecture
* cognitive psychology
* ethnography
* marketing
I know folk who are really good at a subset. I know folk who have some knowledge of everything. I keep seeing folk trying to hire for a stack of skills that rarely come up in a single person.
The person who does user testing five days a week fifty weeks a year is going to be way better at it than those folk who do one every other month. You can't expect that level of skill from an individual if you expect them to be really good at visual design, interaction design and generative user research too.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
It's a hellishly useful combination to have certainly - and it's my preferred way of operating.
But other ways can and do work. I've paired with fantastic visual designers without HTML/CSS knowledge and produced great results in the past. They've had other skills outside of HTML/CSS that they could help the business with.
You need all of the skills for building a product on a team. They don't necessarily all need to be in the same person. Folk hired into design roles are sometimes expected to have an unreasonable number of skills in my experience.
You'll notice in the article I mentioned looking for designers who know HTML/CSS -- but not server-side languages, databases, etc.
But I've also worked successfully with great visual designers who figure out the medium's constraints without knowing CSS/HTML - and bring other aspects to the team (e.g. great user research skills).
I'd be a fool to reject them just because they lack HTML/CSS. I just pair them with somebody who does. They both learn.
in that sense I identify with full-stack.
There's a reasonable limit to every "stack". In this case I'm very clearly talking about "web programming at startups", where assembly programming doesn't have a place 99.99% of the time.
The big thing missing from this stack though is what's actually being built? Where are the folk who understand the product and customers and market? Those people need to be part of the team too.
and this was geared towards smaller startups, where those languages are less popular