yes I take full stack to mean that they can work at all 7 layers of the OSI stack - i.e. they could design and build/supervise the installation of a network that the code they write can run on.
Whereas some take it to mean they can do basic server coding and html/JavaScript
"Full Stack Developer" is the equivalent of "5 years of experience" in whatever new language or tech was announced last week. When I see companies advertise that, I know they are clueless right up front.
About a week ago it occurred to me that "Full Stack Developer" is what we used to call "Software Engineer." It's like suddenly understanding some idiom the locals are using; everything in the universe made a lot more sense.
I always took "Full Stack Developer" to mean "We're too cheap to hire a proper ops team, so we're going to expect you to serve triple-duty as Sysadmin, DBA, and Software Developer."
Maybe I've been unfairly ignoring a lot of postings?
"...we're going to expect you to serve triple-duty as Sysadmin, DBA, and Software Developer."
>Maybe I've been unfairly ignoring a lot of postings?
If that's your impression, then I think you have been. By full-stack developer, many people in the start-up world simply mean someone who can work at all levels of web development, from server-side programming to Javascript, CSS, and HTML.
It's not an unreasonable use of the word, since web developers have long talked of "their stack", meaning what they use for server-side framework, caching, http server, as well as client-side frameworks and development environments.
I don't think most people use the term to include sysops, although in a small start-up you will inevitably be doing a lot of that.
web developers have long talked of "their stack", meaning what they use for server-side framework, caching, http server, as well as client-side frameworks and development environments.
I guess I would consider the http/app/caching servers to be properly the province of sysops.
As a web developer, I consider myself to be responsible for server-side code/frameworks, database schemas (but not DB installation/configuration/replication), and perhaps client-side HTML/JS/CSS.
I'm capable of installing and doing basic setup for things like nginx, varnish, and uWSGI or passenger, but I find it frustrating and I'm certainly no expert in configuring for ideal performance.
There's really very little excuse for not knowing enough front-end stuff to consider yourself a "full-stack web developer".
HTML/CSS are easy-peasy, and while some people don't like Javascript, it's hard to get away from and you can only increase your value as a developer by being able to work with it. Add to that a little bit of client-side tooling knowledge (Gulp, SCSS/LESS), and some familiarity with jQuery and you're good to go. Shouldn't take more than a week tops to get the hang of it all; no-one's saying you have to be a wizard.
You don't have to love front-end work (I enjoy it, but I also really like doing back-end work so I understand both perspectives), but you're doing yourself and anyone who employs you a disservice by not being at least a somewhat-solid front-end dev. Early-stage startups don't really have room for people without that level of versatility. If you're going to write code, you should be able to write front-end code, back-end code, and be able to administrate your startup's servers to some degree. If you can only do front-end, you'd better be at least a decent designer. If you can only do backend, you ought to be doing some kick-ass ops work. The phrase "T-shaped individual" comes to mind.
While amazing generalists/full-stack guys are great, having very strong individuals own a particular domain of the code can have its benefits as well. Sure, you miss a bit of oversight, but when you're in the building phase and you just want to Get Shit Done, it helps if you don't have someone else mucking around in your code while you're building it.
Absolutely, hence my comment towards the end about having T-shaped individuals. I worked on a startup team recently where responsibilities were pretty cleanly divided: I worked on the front end, and a coworker worked on the backend.
Both of us were much stronger at our chosen domains than the other, but we were also both strong enough on the other end to fill in any gaps. If we were doing mostly front-end stuff for a sprint, he was able to jump in without me having to worry about it, and vice-versa.
IMO, that's the kind of full-stack developers that early-stage startups (that aren't specifically tech-focused, eg language processing) need.
Comments
I really dislike the use of "Full Stack Developer" and especially when I'm pushed into that box by the only other choices being FE and iOS dev.
yes I take full stack to mean that they can work at all 7 layers of the OSI stack - i.e. they could design and build/supervise the installation of a network that the code they write can run on.
Whereas some take it to mean they can do basic server coding and html/JavaScript
"Full Stack Developer" is the equivalent of "5 years of experience" in whatever new language or tech was announced last week. When I see companies advertise that, I know they are clueless right up front.
About a week ago it occurred to me that "Full Stack Developer" is what we used to call "Software Engineer." It's like suddenly understanding some idiom the locals are using; everything in the universe made a lot more sense.
Is that true?
I always took "Full Stack Developer" to mean "We're too cheap to hire a proper ops team, so we're going to expect you to serve triple-duty as Sysadmin, DBA, and Software Developer."
Maybe I've been unfairly ignoring a lot of postings?
If that's your impression, then I think you have been. By full-stack developer, many people in the start-up world simply mean someone who can work at all levels of web development, from server-side programming to Javascript, CSS, and HTML.
It's not an unreasonable use of the word, since web developers have long talked of "their stack", meaning what they use for server-side framework, caching, http server, as well as client-side frameworks and development environments.
I don't think most people use the term to include sysops, although in a small start-up you will inevitably be doing a lot of that.
I guess I would consider the http/app/caching servers to be properly the province of sysops.
As a web developer, I consider myself to be responsible for server-side code/frameworks, database schemas (but not DB installation/configuration/replication), and perhaps client-side HTML/JS/CSS.
I'm capable of installing and doing basic setup for things like nginx, varnish, and uWSGI or passenger, but I find it frustrating and I'm certainly no expert in configuring for ideal performance.
where does one fall in their list of choices if they are doing backend/server side code?
http://i.imgur.com/h20L66f.jpg
there seems to be no clear choice for that
There's really very little excuse for not knowing enough front-end stuff to consider yourself a "full-stack web developer".
HTML/CSS are easy-peasy, and while some people don't like Javascript, it's hard to get away from and you can only increase your value as a developer by being able to work with it. Add to that a little bit of client-side tooling knowledge (Gulp, SCSS/LESS), and some familiarity with jQuery and you're good to go. Shouldn't take more than a week tops to get the hang of it all; no-one's saying you have to be a wizard.
You don't have to love front-end work (I enjoy it, but I also really like doing back-end work so I understand both perspectives), but you're doing yourself and anyone who employs you a disservice by not being at least a somewhat-solid front-end dev. Early-stage startups don't really have room for people without that level of versatility. If you're going to write code, you should be able to write front-end code, back-end code, and be able to administrate your startup's servers to some degree. If you can only do front-end, you'd better be at least a decent designer. If you can only do backend, you ought to be doing some kick-ass ops work. The phrase "T-shaped individual" comes to mind.
While amazing generalists/full-stack guys are great, having very strong individuals own a particular domain of the code can have its benefits as well. Sure, you miss a bit of oversight, but when you're in the building phase and you just want to Get Shit Done, it helps if you don't have someone else mucking around in your code while you're building it.
Absolutely, hence my comment towards the end about having T-shaped individuals. I worked on a startup team recently where responsibilities were pretty cleanly divided: I worked on the front end, and a coworker worked on the backend.
Both of us were much stronger at our chosen domains than the other, but we were also both strong enough on the other end to fill in any gaps. If we were doing mostly front-end stuff for a sprint, he was able to jump in without me having to worry about it, and vice-versa.
IMO, that's the kind of full-stack developers that early-stage startups (that aren't specifically tech-focused, eg language processing) need.