Companies demand a Full Stack developer when looking for a technical person, who knows all aspects of the front-end, back-end, the different operating systems and components that are left in the middle.
Currently, the demand for developers of these characteristics is increasing, since they must be able to take on different tasks.
In fact, companies such as Facebook, Instagram, Twitter, Despegar.com, Google, Mercado Libre, among others, only hire developers with this type of profile.
The developer Full Stack is the generalist of the developers, with a lot of technical knowledge and not to be confused with the Senior Developer.
In short, it is a developer who can create complex applications from scratch by himself. For this, it must be a person who understands in depth how the different layers of an application interact.
These are the 9 main aspects that a Full Stack developer should know:
1. Web Lamp Development
The most basic Kit to be a Full Stack developer is to know the development of WEB + LAMP applications, that is, Linux, Apache, MySQL, and PHP. Now many of these technologies are interchangeable by similar ones, Nginx instead of Apache, PostgreSQL instead of MySQL or Ruby on Rails instead of PHP.
Of course, there is an equivalent in Microsoft that would be Windows + Microsoft IIS + .NET + SQL Server.
2. Web Development MEAN
Unlike the previous set, this stack seeks to deliver the largest amount of load next to the client but requires a very different way of thinking about things.
We must not lose sight of the design of the model and the analysis of requirements, these two skills are mandatory. Obviously, these are not only theoretical knowledge but you have to know and handle various types of data diagram, minimally good management of UML.
4. Version control
In addition, a Full Stack developer must know how to use versioning tools such as GIT, (SVN "has gone out of fashion" and is contemptuously looked at within the community), in turn, it is necessary to know how to link GIT with testing and deployment tools, either Jenkins, Heroku, Bizagi, Go Cd, etc.
5. PAAS and Cloud Solutions
A good Full Stack developer must understand the management of PAAS (Platform as a Service) like Heroku and Amazon. Not only how to use them, but also to understand their costs and how they scale and when these solutions should be used and when they should not be used.
You must understand how to extract data from metric systems such as google analytics. Keep in mind that the developer Full Stack is not only a developer, it is also an analyst.
7. Mobile applications
The Full Stack Developer has to be 100% updated, so you should know how to create mobile applications, both hybrid and native. Adding to the requirements is the knowledge of web-mobile frameworks such as PhoneGap and Titanium, of Frameworks Mobile such as Ionic and Ratchet and obviously, you should know Objective C (and Swift) and Java.
8. SEO (Search Engine Optimization) and SEM (Search Engine Marketing)
In subsequent blogs, I will explain the difference, but a Full Stack has to keep in mind that it is not enough just to know how to build applications, you have to know how to publish them.
To publish in the app store is not something of beginners, and to be first in Google is a challenge, and this becomes much more difficult when the Internet is full of bad practices.
A developer who does not know how to perform queries injections via SQL is the same developer that will expose the entire database of his application. It is important for a Full Stack to know about computer security.
Full Stack developer in the world of work
It is normal for companies to want to get the best workers, for the least amount of money possible, but we must bear in mind that this type of knowledge is not trivial. While it is understood that the Full Stack developer has more breadth of knowledge than expertise in them, there is an understanding that acquiring knowledge in all these issues takes many years of practice. Therefore, there is no such thing as Full Stack Junior Developer.
Today students leave their careers in computer science, or computer engineering without knowledge of these issues, so a company asks for it means that this student must have 4 years of university studies and as a minimum 5 to 10 of practice.
A "Full Stack developer" is a developer with a very complete technical profile who knows both the back-end and the front-end, is managed in systems and knows how to understand. It is a profile that is increasingly demanded and well paid.