There's No Such Thing as a Full Stack Developer

Brian Rinaldi on March 20, 2018

Language matters. Giving something a label and a definition helps to take something abstract and ill-defined in our minds and make it "real." Onc... [Read Full]
markdown guide
 

I generally think of a "full-stack" developer not as someone who is proficient with all of these tools, but rather one or two in each area, and has the necessary background to easily adapt his experience into another toolkit.

For example, someone who is proficient in:

Front-End Layout:

  • HTML/CSS
  • Responsive and/or adaptive design

Could quickly learn all the other things in your original list as needed.

Front-End Dev:

  • Vanilla JavaScript
  • React

Could easily adapt to work with Vue. Babel + Eslint + Test Framework would likely be picked up on accident along the way.

Back-end is likely the one that would be trickiest, mainly due to the plethora of available languages and frameworks, but once you've worked with one or two toolsets, the core concepts still translate fairly well between heavy hitters.

Database:

  • MySQL

Once you've got basic MySQL, or even SQLite down, with some focused studying you could probably adapt to whichever SQL-based database your employer is using.
Document and in-memory stores tend to be fairly easy to understand, comparable to any medium-sized library.

Web Application Architecture is, well, a pain. Every platform has its own tools all over the place that may or may not work well together. Occasionally concepts translate, sometimes they don't. But still nothing that good documentation and messing around can't help wrap your head around.

To reiterate, In my opinion a full-stack developer is someone who has considerable experience working at all points in the stack, and feels comfortable with one or two tools. They're valuable not because they know everything you'll be using already, but because they can adapt quickly based on the background knowledge they've accrued.

Based on that understanding, I feel fully confident in calling myself a full-stack developer. However, I prefer the term "Developer" or "Software Engineer" just because they're slightly less maligned, fairly non-specific, and allow me to apply to jobs based on how well I think I can meet requirements.

 

You have to be careful with the term "engineer" though. It is a title which is acquired by going to and finishing an education. This might not be true in some countries.

 

I actually perefer FullStack developer over something like Python developer or JavaScript Developer. Languages and Frameworks change, and your skills evolve, and chaving a title based on your technology limits you. (it probably also limits you in what you think you can do, given the importance of language you mentioned in the article).

I think it's fine to focus on frontend or backend, and call yourself a frontend developer or backend developer, or mobile developer, but be wary of tying yourself to a specific technology.

 
 

In Canada the term Engineer is usually reserved to people chartered as such. This could mean exposing yourself to lawsuit. Be aware.

 

"full stack" in a job description: "we have this monstrosity of an infrastructure and/or application landscape and, due to a chronic shortage of manpower and/or knowledge, we need THAT GUY who can keep the Kraken's tentacles wiggling.
"full stack" in a resume: I have experience in being THAT GUY...

I think things like Software Engineer, Developer (with Senior or Junior perhaps), Software Developer, Software Programmer, etc. are all good options if you want to keep things more generic. I prefer things like front-end or back-end developer - but every company has their preference for titles (and in some larger companies, the specifics of the title imply a level on a pay scale).

I am not all that bothered by language specific titles - though I do think when people go so far as to use framework specific titles (like Angular Developer for instance), it takes it a bit too far. I don't see this necessarily as being a hindrance to finding a job - I've swapped languages and front-end to back-end over my 20+ years...regardless of my titles. I'd even say, if the title on your resume isn't helpful, tweak it - saying you were Developer rather than a Python Developer is in no way misleading.

 

Agree 100%. FullStack Developer is the new WebMaster, we stopped to use it because nobody was able to be a WebMaster, why we do use FullStack then?

I think any of those titles would be appropriate and I'd say it depends on the kind of role you are looking for (I tend to use developer rather than engineer but I am not sure there is a huge difference). If you want to focus more on just mobile in your next role, then use mobile developer.

Point is, when it comes to your resume, focus more on the job you want than the job you had. That doesn't mean be dishonest, but when it comes to whether your title is listed as front-end developer or mobile developer, it's just a matter of which part you emphasize most. (Plus the real details come in how you describe your position - I've had developer roles where my actual title was "Systems Analyst", which gives you zero idea of what I actually did)

 

There was a class in my secondary-technical school called "Universal Electric Maintenance" (or something like that, forgive me if I don't remember correctly). I was in IT class. We asked our teacher what is this class? Those guys had common classes with electricians, IT and CRT television mechanics (yep, this was more than 10 years ago, I'm old as f...). He described:

Basically they will have knowledge about everything, that's why they will master nothing.

What the teacher didn't told directly, that's why no one will hire them, because if someone want an electrician in their company, they will hire an electrician. And the biggest problem was, these guys will never have education for CRT television repair and they cannot start their own company (in my country, you need to hold the specific education certificate to start a specific company).

And this is the problem with full-stack devs today. The world has changed, no one care's anymore if the "Universal Electric Maintenance" guy doing 2 or 3 field's job, because it's cheaper. It's okay if you full-stack, because you want to release your pet project. But it's not okay when a big IT company hire you for full-stack. Basically this means: they want one dude for two dude's job, because it's cheaper. Because they still living in the dream that you touch javascript when you making the "final touches".

Usually in little companies, the "full-stack dev" is the IT department itself. Just think about this when you apply.

 

What if I actually enjoy being a "full-stack dev" and dealing at work with all the topics you mentioned (disclaimer: just a single backend technology)?

 

I've done the same at times over my career as well...though I always had a primary focus. I may be involved to varying degrees in aspects that were not that primary focus, but that was generally going over and above what was expected of the position.

I don't think a title has to limit you - if you are in a company that offers you the opportunity to explore other areas, do it. However, I am more concerned about the expectations the title sets within the company whereby the company says "why pay for a back-end developer, front-end developer and JavaScript developer when all I need is one full stack developer." There will always be talented people who can go well beyond the scope of their position, but setting that as an expectation and baseline puts unrealistic expectations on the industry as a whole, in my opinion.

 

I agree with the argument raised here. The term full stack developer can make software development seem overwhelming because you feel like you have to know every thing there is to software. At the end of the day, you are more like a jack of all trades and master of none.

 

We can at least try to learn what we can, and do what we can.

 

I'd actually argue that the security and web server architecture wouldn't be lumped to the role of a "full stack developer." That's more dev ops/system administrators roles, at least at my company. Actually, our lead developer fulfills all the things you wrote down and he also does a lot of the architectural work for new servers and routes.

Also, most job posting wanting a full stack developers I've seen actually limit the skill set to the dev side; some javascript framework, sql/nosql, and a backend.

If you define a stack as the technologies used in the development side -- and that's implied in my opinion -- the terminology isn't that farfetched.

 

I think you have a range of companies latching onto the terminology. However, in writing this I searched for job postings and articles on how to become a full stack developer and the skills needed, and I'd say that by and large the expectations for most of these were on the outlandish side as opposed to reasonable.

 

I'm hesitant to completely scrap a particular term just because it's been abused in the past. To anyone writing job descriptions, I would say a "full-stack developer" role needs to be accompanied with:

  • what past experience one would need to be considered full-stack
  • what the day-to-day responsibilities would be of a full-stack dev at your company, particular technologies / frameworks included

This ensures that you're up-front about your expectations and helps potential candidates determine their fitness for the role.

 

Interesting point of view, which I can not say it's wrong, even that I have a bit another opinion. I think it's mainly depending on what we define as a Full-Stack Developer. For me it's mainly a guy, which can understand the "whole picture" of a software, even if he only works eg on Back-End Side, he knows how Front-End works, he understand needs of API's used from Front-End, he can talk productively with Front-End Devs etc. Same of course for "other side". I saw and see a lot of eg. Front End Dev's, which don't have a clue about databases. At some point it's then difficult to talk to such a guy when it's about interfaces, loads etc

Btw, I did this question on Reddit recently: reddit.com/r/AskTechnology/comment...

And, if you are a Full-Stack Dev or are looking of one, have a look on my side-project: fullstackjob.com

 
code of conduct - report abuse