Why Be A Full Stack Developer?

Introduction

There seem to be lots of hate for full stack developers nowadays. Which usually very catchy and negative titles like "Full Stack Developer is a Scam", "Death of Full Stack Developer".

So I'm writing it here to address this negativity. Hopefully, it might serve to encourage more developers to think of the role as not just a generalist role.

Why the Hate for Full Stack Developers?

If I were to summarise it, it comes to down to two things.

The first one is due to salary reasons as a generalist, you are paid a minuscule amount of pay for multiple different types of work.

Whereas being a specialist namely frontend or backend can be paid a lot more for a single specialisation.

Whereas being a full stack developer, it is much harder to master every single piece of required knowledge as a Frontend or a Backend developer.

Skill Stacking

I really like the term skill stacking which I had heard about it from the Jordan Harbinger show.

As it encompasses what it is actually like to be a full stack developer. Namely developing skills to blend it uniquely to allow yourself to stay out from the crowd.

Like for example, you can be the top 10 or 20% best front-end developer who specialises in React that has a stiff competition due to its popularity.

Whereas it is much easier for you to blend another which is a top 80% skill like for example conducting design sprints or building design systems.

Instantly due to your understanding of it, allows you to stand out from the crowded field of front-end developers.

To provide React prototypes in the use of design sprints or a consultant who creates design systems in various companies to scale their design teams.

Which by my count allows you to paid very differently due to your successful blending of these two skills.

If you are not convinced just look at the job of a *Data Scientist in the Data Science.

Which is considered the sexist's job in the 21st century that is a direct result of the blending these specialisations that people would pay a premium for it.

Jacks of All Trades and Master of One

To me, being a full stack developer usually comes with a single core specialised skill.

Which through the use of skill stacking allows them to provide a unique perspective to develop and ship software.

I can build the front-end myself for a web app or delegate it to my front-end developer.

Who could build it at a much faster pace and better job than me in React or Angular.

Which free myself up that allows me to become better in my craft which is to create REST APIs.

Using tools like Postman and OpenAPI to prototype and create the APIs in Flask or Django REST framework.

Conclusion

I hope that there would be more future articles that talks about full stack developer who focus on skill stacking.

Clearly, I am not the only unicorn as a full stack developer. Since through my work and helping out for developer meetups in Singapore.

I had come across multiple skills stackers as well. From a senior developer who focuses on providing a video recording of various meetups called Engineers.SG to help in upgrading the developer's skillsets.

Another one is my colleagues at work creates excellent documentation due to her previous knowledge from the legal profession and could tackle the openssl library with ease.

First things first: I do exist, despite what the web seems to say lately.

Why I think that my role is important? Because frontenders are mostly unaware of how deal with Axon in a Java Spring application and backenders have no clue how to cope with React Hooks. This makes me the first point of contact with business/product/management when sh*t hits the fan.

If someone who can deal with the unknown in no time is needed, that one is me.

At the same time, having a broader overview of how things work, makes me useful in meetings (any kind of meeting) and gives me the opportunity to give insight and different options to my colleagues which are more specialized than me.

Am I the best frontender of my team? No
Am I the best backender of my team? No
Am I the best devops of my team? No
Am I the best designer of my team? No

Do I want to be the best in one specific area of those? By no means.

I am a generalist and life is proving me on a daily basis that the world needs generalists. We really should stop lying and telling the myth of how useless a jack of all trades is, because that simply doesn't hold true.

Not being the best at something doesn't exclude you from being able to help a colleague if he's / she's stuck on something too. That's the beauty of it and that's what people miss on most... Thinking outside the box!

I'm a freelancer so being a full stack developer allows me to have multiple jobs at the same time compared to most of the freelancers I know. Most of them get 2 or 3 jobs a year and spend the rest complaining how hungry they get.

It's also a plus for clients as they only need one ressource to do the whole job.

All the hating about full stack devs recently got me thinking... Why all the hate??? I don't get it, I'm not hating on angular and react dev, even though I don't like these is frameworks...

There are no hate Against "full stack", the hate is Against the people who "use" others with catchy terms like this and discard their true value and hard work. Full stack people can learn anything fast.

You saw my post as well, I still tell people to learn a lot and try to be full stack.

The hatred itself is misleading.

People only write that kind of article when something happens to them due to this term. They get heartbroken when they see their dream getting shattered and passion of programming getting questions just because of a term.

While I was reading your article, I realized that if there's some kind of "hatred" on the "full stack" title; an even bigger hatred would exist on the so-called "DevOps", since that title is even wider than full stack to me. Or maybe I don't know enough about DevOps and am just impressed by how complex it sound !

Personally, I know some really great "full stack" engineers who can move between the front end and back end fairly well, but they are few and far between. All of the developers where I currently work, besides our two front end guys, are considered "full stack" and I would definitely NOT consider any of them "full stack". Just because they know how to use Razor to pull data in from a .NET model and use a little jQuery for some form validation, then sprinkle some random Bootstrap classes on it and call it a day doesn't mean they understand how the front end works. On the flip side, just because I can add some logic to a controller and update a model/DTO, doesn't mean I'm "full stack", either.

I see this a lot in new job listings. The term "full stack" is the new term for "back end" at a lot of companies, which becomes deceiving. I see full-stack as a senior/architect level position. Someone with enough knowledge in key areas who can build an entire MVP by themselves without needing the help of another. It might not be perfect in all areas, but it will be functional enough for a specialist to come in and polish it on the next iteration.

The full stack dev is the person you assign to build a new product proof of concept, so you don't have to pull multiple resources from other tasks. Building an entire team out of true full stack devs is difficult and probably the wrong way to go about your business. Most good devs will have enough knowledge on both sides to talk each other's language and make simple edits, and if they don't, the knowledge can be picked up fairly easily. This does not necessarily make someone "full stack", this just makes you a competent developer.

Developers who are adept in dealing with all layers of an application and are qualified in different technologies that are required for the completion of a software application project are known as Full Stack Developer.
Nowadays there is a huge difference between today’s Full stack developers and previous full stack developers who were known as ‘Developers’.
There are a lot narrow segmented developers who only focuses on just one area of software development but a full-stack developers should be proficient in a myriad skills and languages in order to proficiently handle all the layers of software development. There are some specific skills that a full stack developer must have such as, Front-end, Back-end, Data layer, Communication skills and so on.