DEV Community

Cover image for What does Full Stack mean to you?
Sarah
Sarah

Posted on

What does Full Stack mean to you?

I've seen many different flavours of what companies think a Full Stack role includes, here are a few I've seen:

  • Frontend, Backend
  • Frontend, Backend, DBA
  • Frontend, Backend, UX, Mobile
  • Frontend, Backend, DBA, DevOps
  • Frontend, Backend, DBA, DevOps, QA, Business Analyst
  • and the list goes on...

What do you think a Full Stack Developers responsibilities are? Does it need some uniformity or is it ok to have different flavors?

Top comments (31)

Collapse
 
ben profile image
Ben Halpern

I'd say that while relying on heavy abstraction, you're basically able to handle the whole project. If it's sufficiently complex, you can't literally handle it all, but you can be flexible in where you are inserted.

However... I think in general it would only extend to frontend, backend + wildcard. So a fullstack developer is able to do the application logic thing and they might be skilled in some aspects of DBA, Ops, QA, etc. but not all of it.

Full stack developer is a "skilled generalist" I'd say.

While this is all just semantics, words are important in programming so definitely worth getting into and fussing a little over.

Collapse
 
sarahk profile image
Sarah • Edited

Oh I like this, frontend, backend + wildcard. Thank you, you've raised some great points.

Collapse
 
joelbonetr profile image
JoelBonetR πŸ₯‡

For me a full stack developer is any developer that could start a project from scratch to production by itself. Of course if you need to create a huge project, you'll need human resources and you can set some full-stack devs and move it from back-end to front-end or DB tasks as needed.
By the other hand a colleague said to me that a full stack is that back-end dev that is not afraid of CSS - he works only on back-end so...-

Collapse
 
voanhcuoc profile image
Khoa Che

a full stack developer is any developer that could start a project from scratch to production by itself

That, absolutely agree

Collapse
 
gabek profile image
Gabe Kangas

I always find it odd that people don't talk about mobile as a part of the stack. Almost every company has a need for a mobile application and is just as important, if not more, than frontend web, yet it's ignored when people say "full stack". So to answer: I think "full stack" means you can build the product, front to back. Not just "stuff in javascript". Backend, connected TVs, mobile, web, data pipelines, you name it. Working on the entire stack is fun!

Collapse
 
voanhcuoc profile image
Khoa Che

And that way you can't praised yourself as a full stack dev with non-professionals anymore ;) .
It's a curse that this job title is a thing, even full stack web requires a broad skillset that a young Bob can barely possess. And people compare him with Wordpress practicioners all the time.

Collapse
 
ozzythegiant profile image
Oziel Perez

That's why "Full Stack" should be a prefix and not a category. You could be: Full Stack Web, Full Stack Mobile, Full Stack Desktop, etc.

Collapse
 
sarahk profile image
Sarah

I'm glad you emphasised mobile, you're right its important to include as its the most used device - really great points 😊

Collapse
 
andrekelvin profile image
AndreKelvin

A big joke. As far as technology keeps growing nobody actually knows it all

Collapse
 
fullstackcoder profile image
fullstackcoder • Edited

Fullstack to me means the ability to handle a project from early development all the way to deployment and maintenance.

Ofcourse a fullstack developer should be exposed both in front-end and back-end equally and has the ability to identify and use the best practices during the development.

I would put it a bit further though and say that a senior fullstack developer should also have a deeper understanding on architecture, devops and QA as well.

Collapse
 
titouansola profile image
Titouan Sola

As junior dev, I always thought full stack meant frontend + backend ability to conceptualize and develop a solution to a problem as an engineer does in other domains. I include data management within backend. As a developer, I think you're not supposed to know DevOps, but it can be a plus, or just understanding how it works. I'm not sure about BA, but in my opinion, that's not really a part of the job, but I may be wrong!

Collapse
 
nicolus profile image
Nicolus • Edited

I think you're not supposed to know DevOps

I'd argue that the whole point of DevOps is that developers should play a part in it.

If the developers only care about development and the sysadmins only care about operations, then you're not doing DevOps, you're doing development and sysadmin separately, which is pretty much what everyone was doing before the DevOps culture started to emerge.

Collapse
 
titouansola profile image
Titouan Sola

Yes of course! My point is DevOps knowledge isn't mandatory for a junior dev, as you probably work with software architects / lead dev 'above' you. But you're right, i also think that not dive into DevOps as a developer is a mistake.

Collapse
 
jgbijlsma profile image
Joost Bijlsma

It depends on the working environment and project. When I worked at a large conpany. Full stack meant focussing on backend and frontend. When I work on my own project. I include devops, testing, etc. All could be considered full stack. But I think most people see it as frontend and backend.

Collapse
 
fluffynuts profile image
Davyd McColl

IMO, a true full-stack developer can work all the way across the software stack required for an average application:

  • UI
  • business logic
  • data storage
  • tooling
  • testing

This translates differently according to the tech stack. For example, it might be some of:

  • presentation layer
    • web: html/js/css, Vue, react, angular - whatever framework (or not) is in play. The point is this layer interfaces with the user.
    • desktop: wpf, winforms, electron (which means similar skills as per web, but some extras), swing, gtk, qt
    • cli: readline, curses, yargs, etc
  • business logic layer
    • web: node, asp.net, rails, Python, rust
    • desktop: node, c#, Java, c / c++, Python, rust
  • data storage
    • mongo, MySQL, mssql, postgres, firebird, firebase, graphql, even flat files
  • tooling
    • msbuild, gulp, grunt, webpack, npm, make - there's a lot of domain crossover for these, and the full-stack dev doesn't have to be a master of them (though it helps) but should be proficient enough to bootstrap and work unaided.
  • testing
    • nunit, jest, mocha - the full-stack dev should be able to bootstrap the relevant framework, write tests and run them.

This is not an exhaustive list, just some of the more common techs I see in use today. If I left out your favorite, I apologise!

You wouldn't need all of these skills at once, but you would need enough from each category to be able to bootstrap and build the entire application yourself, without relying on others. You may not be a specialist in a certain area, eg design, and hand off the polishing work to someone who has the skills to complete the task better and faster than you, but you'd be able to get the whole app functional, from top to bottom.

An efficient full-stack dev should know (or learn) her team (if available) well enough to know when polishing a task would be more efficiently accomplished by a team member and be able to schedule some time with that team member.

A full-stack dev should be able to design a reasonable UX flow that facilitates the ultimate purpose of any software: to enable a user to achieve some goal.

A full-stack dev can debug across all these layers to figure out issues.

Full-stack devs may specialise in certain areas that interest them more, but should never have to delegate implementation of major functionality to another person because they can't implement it. Full-stack devs are continually learning so that they can fulfill this requirement - we don't know everything but we understand the "bones" of things will enough that we can learn a new tech to implement the app using that tech as part of the stack. If you're hired as (or looking for a job as) a full-stack dev, you should be able to implement an app from top to bottom and adapt to the tech stack of the role you're applying for.

Collapse
 
lehmannsystems profile image
Mike

I see it as someone who has the capacity to learn languages quickly. You can be inserted in the backend or the frontend and your learning curve for both should be similar. Are you someone who can go from an idea and build out both the API/DB side and the frontend side or app? Then I would call you a full stack developer.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

I think Backend is deep and means many things. Also, it doesn't have to always mean web development. Can be desktop (or mobile) as well.

So, I think

  • Presentation Layer
  • Database Layer
  • Glue Layer, if needed / Load balancers, Heavy lifters and something like that.
  • Security is the must, but I think it is harder for webdev and DevOps

But in the end, I think being really good at one thing, and also works well in a team is better.

For mobile dev, I think it is something hard. You don't usually code first on mobile OS, but create backend on desktop, hosted on a server, and mobile is the frontend. So, it is actually webdev with different frontend. You probably won't use JavaScript (unless RN or similar).

Collapse
 
ozzythegiant profile image
Oziel Perez

Now that you put it this way, "Full Stack" makes us think that this is a column of technologies but in today's cloud computing environments, this is more of a cluster than a stack. You can have web, mobile, desktop, or micro controllers be the front ends and the back ends can have multiple MVC server apps side by side in different programming languages, each providing different services, not to mention there can also be multiple databases.