The image below has been posted around the web and also has been added to several talks. It’s a joke about how the skills of a Fullstack Developer.
The joke is that you can’t be awesome on all the stack and that, in fact, you are good in some part of the stack and miserable in all the other attributions of the job. This is a terrible description and it depreciate the developer.
The software developer job has expanded from the IT guy who put together some HTML to entire companies that are built on top of programming. Expecting someone to excel on all the different tools, frameworks and languages that we use is unrealistic, but it also doesn’t mean that you are amazing at something and stupid on everything else.
Being a Fullstack Developer means that you are able to learn, that you are eager to learn, that you prefer to ship the product, that you are able to start a company on your own, that you don’t need to rely on other people to ship something. It does not mean that you will be the smartest guy in the world, it does not mean that you will be very good at something and you will fail miserably on the rest.
When you look at how companies are structured these days and how fast paced the work has been, how much expectation there is to ship it and ship it fast you see that most companies end up in a place where they require fullstack developers. Now, if you really want to focus on a specific tech, find a job that fits your goals and go deep.
No one should expect you to be amazing on everything. A good manager or team lead will know which person on his team is better in React, or DevOps, or Ruby on Rails, but you should not say that you only work with X technology and will not touch anything else. When you are a team member is expect that you will be able to help in anyway you can and if you need to work on something that you’re not familiar with or a feature that was already there and something needs to be fixed, so be it. You as a developer needs to be able to work things out and find a way to solve the problems.