(Original publication in Spanish at Softtek's Latam Digital blog)
Companies require a Full Stack developer when they’re looking for a technical person who is intimately knowledgeable of every aspect of front-end & back-end development, various operating systems and all the details of the technology ecosystem.
Demand is growing for these types of developers, and they’re being tasked with many different responsibilities.
For example, companies such as Facebook, Instagram, Twitter, Despegar.com, Google, Mercado Libre, and others, only hire Full Stack developers.
Full Stack developers are “developer generalists” who possesses a wealth of technical knowledge, but shouldn’t be confused with senior developers.
In essence, this “unicorn” of a developer can create complex applications from scratch all by themselves. They must understand the complexities of how each technical layer interacts with the other.
Here are the 9 things a Full Stack developer should know.
The most basic kit a Full Stack developer should know is to how to develop web apps using the LAMP stack (Linux, Apache MySQL and PHP). Today many of these technologies are interchangeable with new yet similar technologies: NginX instead of Apache; PostgreSQL instead of MySQL; or Ruby on Rails instead of PHP.
They should also be familiar with the Microsoft equivalent, such as Windows and the Microsoft IIS, plus .NET and SQL Server.
The next kit a Full Stack developer should know is called MEAN: MongoDB, Express, Angular and NodeIS.
As opposed to the last stack, this one seeks to deliver the majority of the workload to the client side, but with a different philosophical approach.
A Full Stack developer must also know how to design the application model and analyze requirements – two essential skills.
Obviously these are not just theoretical constructs – they require knowledge of how to manage diverse types of data diagramming, and a passing knowledge of how to manage UML.
Additionally, a Full Stack developer needs to know how to use version control tools such as GIT (SVN is now “out of style” and is ridiculed within the developer community). At the same time they need to know how to link GIT with testing and deployment tools, such as Jenkins, Heroku, bizago, Go Cd, etc.
A good Full Stack developer must also understand how to manage a PAAS (Platform as a Service) such as Heroku or Amazon. But it’s not enough to know how to use them; they must also understand their cost structure, how to scale, and when these platforms should be deployed or not.
A Full Stack developer must understand how to export data from analytical tools such as Google Analytics. Full Stack developers are not just developers – they’re also data analysts!
The Full Stack Developer must be 100% up-to-date on their knowledge and skills, including how to create mobile apps, both hybrid as well as native. They should be familiar with web and mobile frameworks such as PhoneGap and Titanium, mobile frameworks such as Iconic and Ratchet, and they should obviously know Objective C, Swift and Java.
As if the above wasn’t enough, a Full Stack developer also needs some digital marketing chops as well.
There is a difference between SEO and SEM (which we’ll explain in a future blog post), but Full Stack developers must possess more than just software development skills; they need to know how to promote their apps and how to publish them.
Publishing in app stores is not for beginners, and being first on Google is a challenge unto itself; this is especially true when there is such an abundance of Black Hat search practices cluttering up the web.
Developers who don’t know about SQL query injections are the same developers who will leave their application databases exposed to hackers. A Full Stack developer needs to be up on the latest technical security best practices.
Most organizations strive to recruit the best workers for the lowest cost. However, the skills a Full Stack developer has acquired are not trivial. Though a Full Stack developer has a very broad knowledge base, instead of deep skills in one or two areas of expertise, this knowledge was acquired after years and years of practical experience. As such, there is no such thing as a “junior Full Stack developer.”
Today students graduating from computer science or software engineering programs from major universities don’t possess these skills. To become the Full Stack developers their employers are looking for, they must add 5 to 10 years of work experience on top of the four years of a typical university education – not unlike a doctor who must add years as a resident on top of the years of classroom work.
A Full Stack developer is one with a very broad technical profile who is intimately familiar with both back-end and front-end tasks, understands systems, and can see the forest as well as the trees. They’re increasingly in higher and higher demand in the marketplace, and as such command top compensation rates.
What do you think? Leave me your thoughts here!
Softtek Application Development Success Case - Improving Customer Experience through Mobile: