Full Stack Developer…to be, or not to be? That is the question

man looking at code

It seems as if everyone is excited about full stack development. But what the heck is “full stack development”? What is all the hype around it? If you are a developer, should you become a full stack developer? Let’s take a look…

What is a Full Stack Developer?
In a nutshell, a full stack developer is a “big picture” developer that is familiar with several layers of development, if not a master, but it is also someone with curiosity and eager to learn new technologies and work methodologies. There are multiple types of full stack developers abroad. MEAN and LAMP developers are just two examples.

With the increase in startups, having a full stack developer can be a great asset as a software startup company needs to stay lean but requires heavy lifting with technology. Being able to have someone on board that is able to be a jack or jane of all trades can be essential to growth.

Generalized Developers
Full stack developers are familiar with all layers of computer software development and they know how “all parts of an engine come together”, how everything works from top to bottom, advise or guide on strategies and best practices and last, but not least, anticipate problems and act accordingly. Clearly, it takes some time and effort to reach this level of qualification. Maybe that’s why there are so few full stack developers.

On the other hand, the evolution of technology and the immersion of startups pushing the limits of all areas of software (machine learning, artificial intelligence, analytics, and so on) are starting to transform the task of becoming a full stack developer into a virtually impossible one for a single person. Although some people are willing to give a go at everything, is mastery the best choice?

Specialized Developers
Since the main purpose of the article is not to evangelize full stack development, I think it would be interesting to emphasize specialization.

Specialization has advantages over full stack development (but also limitations). One of the reasons people choose specialization instead of generalization (a.k.a full stack development) has more to do with a company than a person. Organizations tend to hire developers for specific roles that requires years of experience. While this can be a negative for full stack developers, it can be an advantage for people with specialized skills as they can demonstrate deep knowledge and experience in a given area.

To be a full stack developer or not?
Becoming a full stack developer has a lengthy and deep learning period. It’s not just a matter of learning new technologies, work methodologies, design patterns etc., but also where can you gain this experience?

As mentioned at the beginning, startups may be more interested in hiring full stack developers and this would be a great environment for someone who wants to become a full stack developer to learn. However, the same is not necessarily true for a more mature company that may not be willing to invest time to train in several different specialties.

I’m not sure that knowing several programming languages and design patterns is a symbol of a good full stack developer. What I am pretty sure and conscious of is that full stack developers are more open-minded to learning new technologies and accepting new challenges. Therefore, they can be great assets to a forward-thinking company. The insight gained from exploring different methods can allow a full stack developer to see which technologies would be a good fit for companies in the near future or in uncovering the Next Big Thing.

Centering your career around a given framework, technology or tool is a choice and depends on your career goals. Either way, being generalized or specialized really comes down to what will be needed in the future and what you are able to do now.

Bliss Applications is currently hiring several positions in the Lisbon and Oporto area. Check out some of the jobs available to see if you are a fit: https://www.blissapplications.com/careers