Photo by Christina @ wocintechchat.com on Unsplash
TL;DR
The title Full stack developer has really nothing to do with you as a developer, instead it's something strictly related to the company's stack, as the name suggests, and, unless the company is sharing its stack with the world, no one will ever guess which technologies and languages you are working with and master.
On the other hand, if you work as a freelancer, the title might suggest that you are some king of tech God, no matter what is the challenge; sounds pretty presumptuous.
Later in this article I have some suggestions for different job titles that would better fit your real skills, if you are interested keep on reading π
Skills, "I" people and "T" people
I won't go deeper in this field since there is already a well done article about this; I'm just gonna steal some cool images from there.
As you can see from the image above, there are three types of people when we talk about skills: I-shaped, T-shaped and Generalists.
Usually, a Junior Full stack is something like a generalist and, with more and more experience, they will eventually become a T-shaped developer by starting to master a specific set of technologies.
There might be outstanding developers in the wild that will eventually become Square-shaped developers, mastering everything; you can do it if you follow your dreams! But this is not the point.
My adventure
Take me as an example: I've started as a Generalist, knowing a little to zero of everything but still very presumptuous, probably affected by the Dunning-Kruger effect, reference below.
But I had a lot of enthusiasm and will to learn new things ASAP; that permitted me to slowly become an I-shaped developer, specialized in front-end development, UI, UX and stuff.
Fortunately, that was just a tiny step and I didn't lose my will to learn different skills and I've never lost my horizontal set of skills, even if it was a very thin line.
Later in my career I had the chance to finally work as a Full stack developer! But I've always had this question in my mind: how could you call yourself a Full stack developer if you din't work with every single technology out there?
But the dream of finally writing Full stack developer in my LinkedIn profile and everywhere else was too big to find an answer. How naive I was... this story sounds the more stupid the more I tell you.
Social reputation
If you are reading this article, probably you went through the same thoughts as I did:
- Why not writing that job title if I know a lot of stuff?
- It will help me find a better job next time
- It rocks
- I feel like a Senior developer
- It's time to do it
I get your point
It's all about reputation, social image, portfolio stuff maybe.
But let's be realistic: you need a better way to sell yourself. Remember my first words in this article?
no one will ever guess which technologies and languages you are working with and master
And this my friend, is the real problem to solve.
In her shoes
Imagine being a recruiter searching for new developers to get in touch, you know little to nothing about programming languages and related technologies but your boss said "We need to find a proficient C# developer for ACME company with at least 40yr of experience with MongoDB and Linux" (I wrote a no-sense position on purpose, follow me).
Then, always as a naive recruiter, you take that sentence for granted and start looking for profiles with your brand new LinekdIn Premium profile.
After some search, you find a dozen of Full stack developers and in your head that title sounds very cool, the right person I'm looking for! Someone with a wide knowledge, he/she must be who I'm looking for!
You see the problem here? The person on the other side of the screen doesn't give a heck about what your stack really means. It's your responsibility to specify it!
A possible solution
I have quite a few, let's briefly see them.
If you really trust your knowledge, experience and will to learn, then Software Engineer might appropriate and less confusing. With that title, you want to say that the field or the technology doesn't matter: you are ready to learn anything because you are prepared for that.
If you have a very little horizontal set of skills but you master a field, just go for the title of that field: if you are a Frontend developer, just say that, there's no need to hide it. Also, if you are an Embedded Software developer, a Data Architect, whatever. You will change that title with something like the ones below when you will be ready.
Last, if you don't see yourself in any of the title above, nor you can relate with any of the letter-shaped cases at the beginning, I have a proposal for you.
Let's say that Full stack feels very presumptuous, right? Now, imagine describing your stack of skills with something different than Full, what could it be? There are plenty of dimensions before that, something like Thin Stack developer, Wide Stack developer or Huge Stack developer.
This new titles, my dear friend, will arouse curiosity in who will read them since no one uses them yet! That's why, once you choose the best title for you, it should be useful to create something that will better describe what you mean with that: GitHub pages, a custom Portfolio site, something like this.
Time to discuss
I know, I know: some of you couldn't wait to see the final point of my article just to let me know that you strongly disagree with it.
But, hey! This is just my opinion about this, I can't wait to hear yours in the comment π
Last, but not least, react with a π¦ if you've found this article interesting! π
Top comments (31)
You're really going overboard on the overthinking bit if you insist to stretch a fairly common meaning.
A stack is simply a set of layers forming an application. A full stack involves all the layers between and user and the most backedish thing you have.
There's really no implication that full stack means all the possible technologies. A stack be longer or shorter and can even be comprised of a single language even if it spans multiple platforms (eg JavaScript via nodejs + JavaScript via browser).
Rather, the expression "a company's stack" is meaningless as a list of technologies unless they are stacked all of them on top of each other in every project.
My point is to understand which stack we are talking about. By just saying βfull stackβ, which information are you giving to the reader?
That you are talking about all the parts of a stack. That you can do, on a general level, frontend and backed and databases.
As an analogy, it's like saying you know OOP. You probably know it hands-on in a language or two but it doesn't speak as to a particular set of technologies.
But you're talking about "Full Stack" as every technology ever and that's not accurate. When you talk about a FULL STACK (don't care if Junior, Senior, or whatever), you're talking about someone who manages at least one programming stack. For example, a MEAN Full Stack developer is someone who knows the FULL MEAN STACK (Mongo, Express, Angular, Node), or a LAMP Full Stack Developer is someone who knows the full LAMP STACK (Linux, Apache, MySQL, Php).
You have a point: if you are proficient in one stack, then why donβt you specify it?
Specify it for tutorials - yes.
Specify it for your job title... I'd argue no.
I'm a full-stack developer. On my CV, in the description, I'll outline WHICH stack. But not in the title. "Fullstack developer" is still a valid title at any level. Most company's will only use 1 stack type, so having you specify your stack in your title would be unnecessarily convoluted.
Yeah, that's important! You should specify what stack you've been working on
Pancake stack developer!
Love it! π₯
A Full Stack developer does not have to know every technology expected by the client, in the same sense that a Frontend developer don't know every frontend technology.
I think job title should not be limit by the technology one knows. And the client should not presume some tech stack from one's job title without looking into the detailed by interview.
At the company I am working for, when they want to hire someone, they would say 'we want a (a job title) who knows (a list of technology).
For the job title, in case of Full Stack web developer, it is meant to set an expectation that the candidate should be capable of building the whole web app alone by some way. And the technology list section is meant to give the specific requirement for the how.
TL;DR
I thought the term 'full stack' stands for who is able to develop applications with front end and back end, example. One who is capable to create an API with some webservice and use this API (in an web context) showing the information in a front end application.
There are many stacks out there, here you are talking just about a general web stack.
With the term βfull stackβ, how could I be able to know which stack are we talking about?
Usually companies asking for "full stack" developers want you to be able to deal with problems no matter what part of the stack they sit on. Lately it's common to see that apart from frontend / backend, you have extra ones like mobile, Databases, devops or even QA. However, I don't think that anyone will ever expect a candidate to know everything about all these different stacks.
At the end of the day it depends on what you're looking for. If you want to be able to be involved in designing systems, integrating new tech in your system and be involved in a variety of stuff then full stack is for you.
I've also seen developers in some companies that know their way around the whole stack and are usually the ones that everyone really values their opinion, no matter how much of generalists they are considered to be.
How does "software engineer" not have the same problems as "full stack developer?"
As a software engineer, you can think in an abstract way. You can then apply that logic to any technology or language, IMHO
I believe that you should either list yourself as the "tech" developer that you are, or specify the specific stack you are proficient in. "Full Stack" is more vague than "Full Stack React/Node Developer". But that might also suggest you aren't interested in learning more. So "Software Engineer" might be most appropriate if you have a growth mindset.
It's interesting to notice that the use of the term "Full Stack Developer" was hardly ever used prior to the release of node.js. As the adoption of node.js increased so did the use of the term "Full Stack Developer". So for me "Full Stack Developer" is nothing more than slang for someone who develops with node.js (Deno).
I think so but I'm glad to hear a different opinion! I think also that there are different stack layers outside of the web field: system languages and technologies, data and so on.
This, in my head, opens to a whole new interpretation of the meaning of "full stack"