What I mean with “FullStack”

Since I remember there were people complaining about the full stack developer “profile”, that’s why I wrote this article (spanish) in February. Nothing has really changed since then, but lately, since we’ve published a full stack job offer for finizens, I’ve been reading a lot of articles complaining, again, about the full stack developer. So again, I’ll try to make a clarification. Keep in mind this entire post is in a web environment context.

There are a lot of posts and comments out there talking about this, but the last one I’ve read, which made me write this, was this comment. I only know Luis from twitter and meetups. I have good “picture” of him, but also I’ve to argue against that.

Is it about the code quality?

Good programmers make good code. Does the language make such a big difference? Of course there is a learning curve for everything. On the first steps on a new language, or when you are approaching to a new paradigm your code won’t be the best. But you’ll know that, because you know the basic principles of coding, and eventually you’ll find the right way for every language.

There are a lot of developers out there who has been working on both, front and back end for a tons of years, and also know how to setup a deploy and configure a load balancer. Are they writing bad code? I guess some do and some doesn’t, we can’t generalize at this.

But a good developer, even working in a startup knows when they’re creating some technical debt. The points is not being perfect, is to be a professional as much as possible, and of course that involves the famous trade-offs. This tweet explains this very well, but that’s a story for another post.

Is it about the tools?

Maybe it is. But it is not something which can shift the balance. Somebody can argue that you are not a good front/back because you don’t know the latest feature of MongoDB or the brand new JS library. But for me, it’s not about the tools.

Can any developer have real experience with every new library or framework? Not to know or hear about, I mean real experience. Recently we all read the article talking about how it feels to learn JavaScript in 2016, and it’s clear that we can’t use everything (even if the reality is not so catastrophic). Not in the same way, but in some way, a similar thing can happen in the backend, I won’t hire someone just because he/she doesn’t know a certain framework, for example.

It’s about the big picture.

I want to be a full stack developer, because I love creating things from scratch. And to create things by my own, I need to know what’s going on. From the browser request, through the server infrastructure, making its way to the backend to build a query, which I want to run as fast as possible in the database, so the response gets back quickly to the client, in which I want to keep a smooth and consistent visual experience for the user.

I don’t think is so hard to be good in both back and front end, maybe it is impossible to deeply know all the tools involved in the modern development of both worlds. What I know for sure is that you can’t claim to be a full stack just because one day you build a carrousel with a jquery plugin or because you’ve install mysql in your local machine. But I face as many people saying they are full stack and they aren’t, as much as I see backends who can’t mention you a coding pattern or a frontend which doesn’t know how the requests lifecycle works.

So, what I mean with “Full Stack” is a developer who knows how the underlying technology works. That person can always catch up with the best tools and practises.

And it’s a complementary role

Of course, I’m not saying we all have to go that way. As I said in the previous post I think your team should be a full stack team. We have more chances to choose the right tool for the problem if we know more tools, right?

We should keep in mind that each company, in each stage, could require a different kind of developers. For example in the early stages of a startup a real and good full stack could make the difference, and as it grows up, a more complete teams becomes necessary.

I would love to be surrounded by all kinds of profiles, that includes frontends, backends and also full stacks.

I’m very happy to discuss this, maybe there is a point I’m not seeing yet, and I’ll appreciate a lot if you want to leave your opinion here!