My definition of a full stack developer is someone who is able to build and deploy a complete working application with no-one else's help. That means they can write the back end, the front end and configure the servers and of course design the database tables.
That said, as a recruiter I'm seeing employers now who really won't consider candidates unless they are expert front end and back end developers. That's a pity as I'm not convinced that's useful where there are three or more members of a team building a web application. Browser development alone is easily enough to occupy all the available work time of a single developer.
If you can design 1) the database schema, and 2) the application's frontend (either web or native app), you're essentially a full-stack developer. What's left are the operational details increasingly handled by service providers (like AWS).
Really, it's funny you say "operational details" in such a dismissive way. Even when you're in AWS I dare you to not worry about the "operational details" when shit hits the fan, e.g. your database offed itself and you need to figure out what the hell just happened.
How long did it take Twitter to finally clean up most of their "operational details"?
While being able to do a first pass of a working app from front end to back end is something many can do, planning for the unexpected, scaling, understanding edge cases and where things may break (including diagnosing problems in off the shelf components), digging deep into AWS issues, etc. Require a depth of skill and knowledge very few can actually achieve across a wide breadth.
Correct. That is why I agree with this post. The term "full-stack" is meaningless. What people really mean is "frontend/backend generalist" which in the current ecosystem means knowing a framework for the frontend and another for the backend. If you go for the true meaning of "full-stack" then no one fits the description because the modern stack is just way too complicated. Just figuring out what the hell your CPU cache lines are doing is already a full-time job in and of itself.
Really, it's funny you say "operational details" in such a dismissive way.
Is it possible you're projecting? Ops is vital to launching an app, but it also has little to nothing to do with the development of that app. It's a completely different skill set.
I think we can work much more effectively with ops a core part of the development process.
If you spend weeks/months building an app and then launch it and find nobody wanted it then you've just wasted a lot of time and effort.
If you spend weeks/months building an app and then discover you can't deploy it in the way you planned because of an operational detail, you're going to incur a lot of rework.
How long is it going to take you to get your app into production?
If you start right from getting your hello world webapp into a production operations environment, then iterate until you have something you can start testing with users you won't have any of these problems.
You will however, have to start considering operations from the start. There's a lot less waste, it's lower risk, but you can't ignore operational concerns as someone else's problem.
Correct and that is the point. So whenever someone says full-stack they really mean frontend/backend application stuff assuming an infinitely scalable, redundant, fault-tolerant, datastore and compute fabric. The reality is otherwise and I don't see how you can call someone full-stack if they think they can completely ignore the realities of infrastructure. And I forgot security considerations.
how would you advertise this on your resume? It seems like recruiters are looking for 'full stack' but not understanding what it is. Do you have 15 years of full stack development or devops experience? Shit like this makes me start out the window, at the tiny little pedestrians below scurrying back and forth from their masters, the modern day slavery is masqueraded around in the form of neckties and materialism that replaced meaningful human relationships.
That said, as a recruiter I'm seeing employers now who really won't consider candidates unless they are expert front end and back end developers. That's a pity as I'm not convinced that's useful where there are three or more members of a team building a web application. Browser development alone is easily enough to occupy all the available work time of a single developer.