DEV Community

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." Once ...
Collapse
 
tribex profile image
Joshua Bemenderfer

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.

Collapse
 
xtrasmal profile image
Xander

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.

Collapse
 
_bigblind profile image
Frederik 👨‍💻➡️🌐 Creemers

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.

Collapse
 
vanduc1102 profile image
Duc Nguyen

how about Software Engineer :)

Collapse
 
guboi72 profile image
guboi72

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

 
remotesynth profile image
Brian Rinaldi

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.

Collapse
 
sergiodxa profile image
Sergio Daniel Xalambrí

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?

Collapse
 
djviolin profile image
István Lantos • Edited

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.

 
remotesynth profile image
Brian Rinaldi

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)

Collapse
 
atyborska93 profile image
Angelika Cathor

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)?

Collapse
 
remotesynth profile image
Brian Rinaldi

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.

Collapse
 
ijebusoma profile image
Vanessa Osuka

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.

Collapse
 
lslee714 profile image
Luke • Edited

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.

Collapse
 
remotesynth profile image
Brian Rinaldi

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.

Collapse
 
hudsonburgess7 profile image
Hudson Burgess

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.

Collapse
 
golangch profile image
Stefan Wuthrich

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

Collapse
 
johnpaulada profile image
John Paul Ada • Edited

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

Collapse
 
xtrasmal profile image
Xander

I like Stacked Developer.