Is it reasonable to expect mere mortals to having mastery over every facet of the development stack? Probably not, but the Facebook can ask for it. I was told at OSCON by a Facebook employee this they only hire ' full Stack ' developers. Well, what's does that mean?
To me, a full Stack Developer are someone with familiarity in each layer, if not mastery in many and a genuine interest in All software technology.
Good developers who is familiar with the entire stack know how to make life easier for those around them. This is why I'm against silos in the work place. Sure, politics and communication challenges get in the same as large organizations. I think the point Facebook was going for with their hiring policy was, if smart people use their heads and their hearts, a B Etter product gets built in less time.
Layers of the full Stack:
Server, Network, and Hosting environment.
This involves understanding what can break and why, taking no resource for granted.
Appropriate use of the file system, cloud storage, network resources, and an understanding of data redundancy and Availabi Lity is necessary.
How does the application scale given the hardware constraints?
What is about multi-threading and race conditions? Guess What, you won ' t see those on your development machine, but they can and does happen in the real world.
Full stack developers can work side by side with DevOps. The system should provide useful error messages and logging capabilities. DevOps would see the messages before you'll, so make them count.
Data Modeling
If The data model is flawed, the business logic and higher layers start to need strange (ugly) code to compensate for corn ER cases the data model doesn ' t cover.
Full stack developers know how to create a reasonably normalized relational model, complete with foreign keys, indexes, VI EWS, lookup tables, etc.
Full stack developers is familiar with the concept of non-relational data stores and understand where they shine over rel Ational data stores.
Business Logic
The heart of the value the application provides.
Solid Object oriented skills is needed here.
Frameworks might be needed.
API layer/action Layer/mvc
How the outside world operates against, the business logic and data model.
Frameworks at the level should is used heavily.
Full stack developers has the ability to write clear, consistent, and simple-to-use interfaces. The heights to which some APIs is convoluted repel me.
User Interface
Full stack developers:a) understand how to create a readable layout, or b) acknowledge they need help from artists and GR Aphic designers. Either, Implementing a good visual design is key.
Can include mastery of html5/css.
JavaScript is the "up" and coming language of the future and lots of exciting work are being done with the JavaScript world (no De, backbone, knockout ...)
User Experience
Full stack developers appreciate this users just want things to work.
A good system doesn ' t give its users carpal tunnel syndrome or sore eyes. A full stack developer can step back and look at a process this needs 8 clicks and 3 steps, and get it down to one click.
Full stack developers write useful error messages. If something breaks, be apologetic about it. Sometimes programmers inadvertently write error messages that can make people feel stupid.
Understanding what is the customer and the business need.
Now we ' blurring into the ' line ' architect, but that's too much of a hands off role.
Full stack developers has a grasp of what are going on the field when the customer uses the software. They also has a grasp of the business.
Other Pieces of the Puzzle:
Ability to write quality unit tests. By the even JavaScript can has a unit tests these days.
Understanding of repeatable automated processes for building the application, testing it, documenting it, and deploying it At scale.
An awareness of security concerns are important, as each layer presents its own possible.
Closing Thoughts:
It is very bad practice to tightly couple code to a specific implementation (library, OS, hardware, etc). Just because a full stack developer understands the entire spectrum doesn ' t mean they has license to take shortcuts. Well, actually they does if it is a build and throw away prototype.
Technology start-ups need full stack developers for their versatility! However, as an organization matures, it needs more and more focused skills.
I ' m not sure you can call yourself a full stack developer until you had worked in multiple languages, platforms, and even Industries in your professional career. Full stack goes beyond a ' senior engineer ', as it's along the same lines as a polyglot programmer but with a higher view Of all the connecting pieces. Note that on the My list, only items 3-5 involve writing code.
Original source
What's a full Stack developer?