Full Stack Developer
- Summary
-
Discussion
- How did the sudden demand for full stack developers occur?
- What are the technologies that a full stack developer is expected to know?
- What is a company really asking for while recruiting a full stack developer?
- Are there multiple types of technology stacks?
- How to choose a technology stack for a product/application?
- Can you list the technology stacks used in popular IT applications?
- Milestones
- References
- Further Reading
- Article Stats
- Cite As
Any technological solution to a real-world problem consists of several IT components interacting with each other. The entire basket of software platforms, tools, services, and even hardware or networking devices employed in the development of an IT application is called Technology Stack. A developer whose skills cover the entire range of the technology stack, both at client and system end is a Full Stack Developer. It's more of a coinage indicating a programmer who is jack of all arts and master of one or two.
These professionals can easily understand most programming languages and can help to bring the company's minimum viable product into the market quickly. This is especially important for web or mobile app start-ups. Full stack developers, due to their wider system understanding, are able to contribute better to system design in addition to development.
Discussion
-
How did the sudden demand for full stack developers occur? The whole narrative of full stack developer emerged from the IT start-up boom. Earlier, large IT service companies or product MNCs were keen on specialists who knew one thing well. These traditional roles were GUI developer, C/Java programmer, database specialist/admin, network engineer, test or automation engineer, and so on. A typical IT application would be an integrated hierarchical solution requiring most of these skill-sets.
But in start-ups, the team is looking to build a minimum viable product that can showcase their basic idea. This helps them seek funding and then make expansion plans. This has to be achieved with minimum number of developers and limited investment. Time to market is also very short. Hence, the need arose to recruit developers capable of programming in the entire spectrum of technologies.
A 2018 LinkedIn survey listed "Full Stack Developers" among the top 10 hard skills that developers need to possess in the IT industry.
While full stack developers are presently the trend, it doesn't imply that experts are no longer vital. As the product grows and scales, specialists are required.
-
What are the technologies that a full stack developer is expected to know? Skillset of full-stack developers resembles the T-model. They have knowledge across wide-breadth of technologies but in-depth knowledge of a couple of those.
Knowledge of at least one language/platform in each technology layer is a must. In the web development context, popular full stack combinations include:
- LAMP stack: JavaScript - Linux - Apache - MySQL - PHP
- LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP
- MEAN stack: JavaScript - MongoDB - Express - AngularJS - Node.js
- Django stack: JavaScript - Python - Django - MySQL
- Ruby on Rails: JavaScript - Ruby - SQLite - Rails
Vendor-specific full stack expertise is also quite prevalent:
- Microsoft: .NET (WPF, WCF, WF), Visual Studio, C#, ASP.NET/ MVC/ MVVM, REST/ Web API, Azure, GIT/ SVN, Web (HTML5/CSS3/JS), jQuery / Typescript, Bootstrap / Angular, MS SQL Server
- Amazon: AWS Amplify (Web UI), Amazon Cognito (web browser), Amazon API gateway, AWS Lambda, Amazon DynamoDB
However, developers must always remember that the technology choice is dependent on what works best for the product under design, not the other way round.
-
What is a company really asking for while recruiting a full stack developer? Technology used in products are never static. Companies may decide to migrate to a new version, platform or vendor that enters the market. Therefore, there is no point in recruiting a full stack developer with rigid set of skills. By asking for full stack developers, companies are actually looking for the following skills and attitude in a candidate:
- At least know one language or platform in each technology function - user Interface, backend processing, middleware, business logic, DB/storage, networking/communication, testing.
- Self-learning ability to master a new technology quickly.
- Ability to make a demonstrable product or prototype.
- Can independently perform debugging and customer support for applications, with quick turnaround time. The bug could be anywhere in the system.
- Work in teams and relate to the problems faced by developers working on other modules.
- Understand the big picture, translate the customer requirement into a system design, which would encompass several technologies across layers. A full stack developer will make a good tech lead or system architect.
- Good at integration testing and system testing from customer perspective.
-
Are there multiple types of technology stacks? There is no text book definition for what constitutes a technology stack. Any hierarchy of interdependent modules built using different technologies, frameworks and languages is a technology stack.
For instance, the concept of a protocol stack has existed for decades now - OSI Layers, TCP/IP stack and other communication/control protocols.
A mobile phone device can be an example of a hardware technology stack – body, network processor chip, peripherals, memory, battery, LCD screen all stacked one above the other.
A MEAN stack refers to a stack for building web apps and websites. It consists of MongoDB for database storage, Express.js as the application framework, AngularJS MVC framework, and Node.js as the server-side framework.
The system design document prepared by a product development team would document the customised technology stack to be used for its own products.
Many large IT companies openly declare what technology stack is used in their development.
-
How to choose a technology stack for a product/application? Technology choices are made only in the product design phase, after the product requirements are finalised. This involves evaluating various technology alternatives to make up the stack. The factors considered are:
- Meets the requirements entirely: For example, if the requirement is to build a military application, then platforms with highest data security and reliability are chosen. Limited network connectivity, multi-language support, accessibility for the disabled are examples of specialised requirements that influence the choice of stack.
- Scalable to support future requirement additions: Product requirements are always changing based on customer feedback. So the technology choice must support product growth for at least 3-5 years.
- Cost considerations: When budgets are limited, companies tend to prefer open source options. Or if an older project has a pre-purchased software license, the same may continue into the new one. This is not optimal, but happens a lot in the industry.
- Skillset of existing workforce: This goes against the idea of designing for requirements. But very often, due to HR constraints and inability to reskill, companies decide to stick to a particular technology stack.
-
Can you list the technology stacks used in popular IT applications? Some product MNCs and start-ups swear by the efficacy of hiring full stack developers. They openly publicise the technology stack used in their solutions, such as:
- Facebook: PHP, React, GraphQL, Memcached, Cassandra, Hadoop, MySQL, Swift, C++, PHP, JavaScript, JSON, HTML, CSS.
- Amazon: Java, Perl, Angular JS, MySQL, Amazon EC2 container service, DynamoDB and a host of other Amazon frameworks.
- Google: Python, Java, Android SDK, Go, C++, Preact, Angular JS, Kubernetes, TensorFlow and a host of other Google frameworks.
- Dropbox: REDIS, C#, .NET, MS SQL Server
- StackOverflow: NGINX, Amazon, MySQL, Python
- Airbnb: Javascript, MySQL, Java, Ruby on Rails
- Fitbit: Node.JS, Javascript, Objective C, Java
However many technology experts and recruiters call the idea as a passing fad which breeds superficial programmers, who lack the ability to build deep expertise in anything. Without knowing the nuances of a language, the best implementations are not possible, they claim.
Milestones
Front-end development takes a rapid leap. Full stack developers for web development become a popular choice. Earlier, web browsers were poor at interpreting a lot of JavaScript. Adding complex functionality with JS wasn't always a good idea. As browsers became more powerful, JavaScript became versatile with extensions such as AngularJS and jQuery.
The number of layers in the stack is steadily increasing. In 2010, a full-stack developer perhaps needed to know PHP, jQuery, HTML, CSS, and FTP to transfer files to the hosting server. Today, a full-stack developer needs a wider spectrum of skills from modular frameworks to CSS pre-processors, from responsive UI design to cloud cluster management.
References
- Accenture. 2020. "Microsoft Full Stack Developer." Job Search, Accenture. Accessed 2020-10-24.
- Anuradha, C. 2020. "What is a Tech Stack." Blog, Apxor, September 11. Accessed 2020-10-26.
- Bijeesh, Nishatha Abraham. 2020. "Full Stack Development Courses - Sometimes being a Jack of all Trades is good!" IndiaEducation.net, Accessed 2020-10-24.
- Frederick, Dana. 2018. "The Strange Politics of the Full-Stack Developer." Blog, HackerRank, October 24. Accessed 2020-10-24.
- Gross, Ted. 2019. "Fullstack Programming: A Prelude To Failure." Towards Data Science, on Medium, September 26. Accessed 2020-10-24.
- Indeed. 2020. "Full stack developer jobs." Indeed. Accessed 2020-10-24.
- Indeed. 2020a. "Full stack developer jobs." Indeed. Accessed 2020-10-24.
- Joseph, Roshan. 2018. "A full stack development expertise - a rising demand." Ti Technologies, September 10. Accessed 2020-10-24.
- Katrompas, Alexander. 2018. "The hard truth about the full stack developer. Myths and lies." Medium, July 09. Accessed 2020-10-26.
- Kumar, Hemant. 2019. "10 Advantages of Hiring a Full Stack Developer." Blog, Techtic, March 15. Accessed 2020-10-26.
- MacManus, Richard. 2020. "The Rise of Full Stack Serverless at Amazon Web Services." The New Stack, August 10. Accessed 2020-10-24.
- Mixpanel. 2020. "Technology Stack: What it is and how to build one." Mixpanel. Accessed 2020-10-24.
- Morris, Scot. 2019. "FULL STACK, FRONT END, BACK END—WHAT DOES IT ALL MEAN?" SkillCrush Inc. Accessed 2020-10-24.
- Petrone, Paul. 2018. "The Skills Companies Need Most in 2018 – And The Courses to Get Them." Blog, LinkedIn, January 02. Accessed 2020-10-24.
- Pulse. 2018. "Why Fullstack developers are in demand?" October 17. Accessed 2020-10-24.
- Scand. 2020. "5 Steps for Choosing a Technology Stack for Your Project." Blog, Scand, May 27. Accessed 2020-10-24.
- Schmidt, Randy. 2008. "Full Stack Web Developers." Blog, Forge38, June 03. Accessed 2020-10-24.
- Shora, Andy. 2014. "The Myth of the Full-stack Developer." Accessed 2020-10-24.
- SoftLogic. 2020. "Full Stack Developer Training in Chennai." SoftLogic Systems. Accessed 2020-10-26.
- Suschevich, Andrej. 2020. "What Is a Technology Stack? Choosing the Right Tech Stack For Your Web Project." Medium, January 16. Accessed 2020-10-24.
- Techtic Solutions. 2020. "Who is Full Stack Developer?" On Pinterest, October. Accessed 2020-10-24.
- The Software Guild. 2020. "Become a developer." Infographic, The Software Guild. Accessed 2020-10-24.
- W3Schools. 2020. "What is Full Stack?" W3Schools. Accessed 2020-10-24.
- Watkins, Ashley and Royi, Hagigi. 2020. "Rebuilding our tech stack for the new Facebook.com." May 8. Accessed 2020-10-24.
Further Reading
- Mixpanel. 2020. "Technology Stack: What it is and how to build one." Mixpanel. Accessed 2020-10-24.
- Gross, Ted. 2019. "Fullstack Programming: A Prelude To Failure." Towards Data Science, on Medium, September 26. Accessed 2020-10-24.
- Shora, Andy. 2014. "The Myth of the Full-stack Developer." Accessed 2020-10-24.
Article Stats
Cite As
See Also
- Programming Concepts for Beginners
- Frontend Development
- Middleware
- Backend Development
- Backend-as-a-Service
- Micro Frontends