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)
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.
Oh I like this, frontend, backend + wildcard. Thank you, you've raised some great points.
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...-
That, absolutely agree
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!
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.
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.
I'm glad you emphasised mobile, you're right its important to include as its the most used device - really great points π
A big joke. As far as technology keeps growing nobody actually knows it all
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.
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!
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.
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.
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.
IMO, a true full-stack developer can work all the way across the software stack required for an average application:
This translates differently according to the tech stack. For example, it might be some of:
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.
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.
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
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).
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.