DEV Community

Cover image for When can you declare yourself a Full-stack Dev?

When can you declare yourself a Full-stack Dev?

Thomas Bnt on December 02, 2022

Hello πŸ‘‹πŸΌ I was wondering if I should consider myself as a front-end or full-stack developer. Or at least how to present myself to companies. And ...
Collapse
 
ben profile image
Ben Halpern

There's always a deeper stack, but I think for me it is a matter of how comfortable you are top to bottom with the parts which are not completely abstracted away from you. Also, just whether you are full stack within the expectations of your title.

As a web dev, I am full stack. And often that is what people are talking about. Typically the infra layers have been abstracted away from me. Maybe I can debug an infrastructure layer issue, but I can be full-stack without always worrying about that.

I think there's also room for "popular use" ultimately dictating things, as opposed to an overly literal determination, and I think it usually means client/server unless otherwise specified β€” where client can be a native UI or a web UI.

I think everyone should treat this as inherently fuzzy, at the end of the day.

Collapse
 
andyrosenberg profile image
AndyRosenberg

Same category here. I call myself fullstack despite being fullstack in the web dev ecosystem. More accurately I like using β€˜middle-stack’ for the interplay between backend and frontend logic in web applications, which is the core of my day job, but no one knows what that means.

Collapse
 
thomasbnt profile image
Thomas Bnt

Oh! Pretty logic name middle-stack! Thanks!

Thread Thread
 
gbhorwood profile image
grant horwood

i've been saying 'middlestack' for a long time (as definite backend dev).

really, the full stack is huge. there's layout and design, ux, the huge realm of whatever js framework is the choice, then designing effective apis, being able to manage databases, and ops. it's not realistic to expect that one person can be sufficiently fluent in all those levels. designing an icon and configuring a reverse proxy are very different skillsets.

obviously, for smaller projects, a lot of that can be abstracted away with click-and-deliver solutions, but once you get above a certain scale, you really have to have people who focus on one end or the other.

of course, middlestack is still very valuable, even in larger operations. being able to have the flexibility to get things done in the api/ui range is important, even if you can't choose a colour palette or deal with the load balancer!

Collapse
 
thomasbnt profile image
Thomas Bnt

Thanks Ben for your message!

Collapse
 
eshimischi profile image
eshimischi • Edited

Fullstack means you are able to do both server developing whether it is PHP, Java, C# and etc; Databases developing with β€œvanilla” SQL or ORMs and finally frontend using JS/TS, HTML, CSS(SCSS,etc). But also you are skilled in git, CI/CD, Apache/Nginx, DBs (MySQL or PostgreSQL or Oracle), bash, etc., You are good in understanding all the principles, APIs/Rest, OOP, Patterns and etc. So at the end you have all the spectrum of knowledge. PS: i didn’t mention Node.js/Deno because JS in general wasn’t a tool for backend developing, it sticks to a few very specific kind of tasks, we can’t compare it with what i wrote above

Collapse
 
thomasbnt profile image
Thomas Bnt

Okay, this is a good packaging you mentioned!

Collapse
 
brense profile image
Rense Bakker

You absolutely can compare NodeJS to PHP, Java and C#. Infact NodeJS can do a lot of things much better than those archaic languages, especially when we're talking about web development. But this chauvinistic world view is very common among people who majored in Java or C#. They always think they're somehow better than those NodeJS noobs -_-

Collapse
 
eshimischi profile image
eshimischi

I did say nothing negative about Nodejs and stuff; i use it myself, but won’t mention it here cause it it a whole different topic.

Thread Thread
 
brense profile image
Rense Bakker

The fact that you're discriminating against NodeJS is pretty negative. Its not a whole different topic, its a BE "language" just like PHP, Java and C#. No differentiation required.

Thread Thread
 
eshimischi profile image
eshimischi • Edited

Ok, but numbers speak for itself, 78% PHP vs 2% Node.js is kinda unarguable, why? Because there is long way to go for JS platform to outplay any of languages, Python as well. Everything has it’s pros and cons here and there, but still we use PHP/C# and others..

Thread Thread
 
brense profile image
Rense Bakker

Whats more interesting to know is how many new PHP backends were written in 2022 vs NodeJS backends.

Thread Thread
 
eshimischi profile image
eshimischi

That PHP β€œbackends” as you call it were already developed, Laravel, Symfony, no need to reinvent the wheel.

Thread Thread
 
brense profile image
Rense Bakker

Those are frameworks written in PHP...

Thread Thread
 
eshimischi profile image
eshimischi

Yes they are.. but they perform that function of backend..

Thread Thread
 
brense profile image
Rense Bakker

You're comparing bananas and monkeys though. You're moving towards CMS territory here. If you want to go there, there are plenty of CMSes written in NodeJS as well.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

My view is that titles are not real.

There are people who write books but don't dare to call themselves writers. And there are people who the media call writers who but have not written a book for a very long while. So who is a writer? I don't care, but I do admire people who write books.

  1. ask yourself what is it that you really want to do
  2. use whatever title is useful from a marketing point of view to help you do that.
Collapse
 
thomasbnt profile image
Thomas Bnt

I love your perspective on the label/name and its use. Your example of a writer pretty much describes what has been going on for the last few years with this term Full Stack. I've always read it any way. πŸ‘πŸΌ

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Am called my self as Street Programmer!

Collapse
 
superflowsdev profile image
Hrushi M

You'll find many developers around who are titled "Full stack developer", but really aren't. Full stack developer is really a misnomer, because it is inherently vague. In my opinion, I would call somebody a full-stack developer when the following criteria are met.

The developer:

  • Is thoroughly fluent in at least one frontend framework and one backend framework
  • Has working knowledge of couple of more backend and frontend frameworks
  • Has acquired good generic level understanding and quickly learn new frameworks and deliver projects
  • Understands a few software architecture patterns and practices the concepts of good separation of concerns & writes scalable, modular and maintainable code
  • Is experienced enough to understand the importance of unit tests and insists on good standards of code coverage
  • Understands the basics of good user experience and knows the basic tenets of layouting and UI design
Collapse
 
brense profile image
Rense Bakker • Edited

Agree with everything except the unit tests. Not that I'm religiously against them, but there's a time and a place for them. Absence of unit tests doesn't automatically equals bad code, or buggy software. I've seen plenty of code with 90%+ coverage, that was shady as hell. It depends on the type of project/team how much attention I give to unit testing. For example if I'm tasked with writing a ui component library, thats going to be used by a lot of other devs, definitely write unit tests. But if I'm tasked with writing an application that has a clear start and end I put more emphasis on acceptance criteria and testing that those are met.

Collapse
 
superflowsdev profile image
Hrushi M • Edited

Yes, fair enough. That essentially means that a full-stack developer needs to be knowledgeable enough so as to understand how to get the best out of unit tests, particularly as the lines of code increase.

Collapse
 
jrbirdmanoh profile image
jrbirdmanOH • Edited

Bonjour Thomas! It used to be that there were no "full-stack" developers as...there was no stack. Then PCs showed up and client-server was born (for big databases), then n-tier, then the design and code started to shift to OOD and OOP, then the middle-tier, buffer between font and back ends showed up quickly with quickly maturing communication conduits (XML, EDI, SOAP, XML-RPC, REST, and lately a front/middle tier, GraphQL). Backends also grew from linked-list, to RMS, to SQL, to Document Management (Mongo, NoSQL, etc). Front ends blew up with web apps and the myriad of NPM-delivered packages necessary to build them. Self-contained (what one person in this thread called "archaic") languages (like Java and C#) matured to support better principals like GoF but also became more complex with the easy-to-consume NuGet packages.

So...front, middle, and backend stacks have become more powerful and more complex to the point where it's difficult for one to be called "full-stack" without qualifying one as "a jack of all stacks, master of none". Though, I've always coached jr or mid-level devs to truly master one and getting a productive working knowledge of the other two. Because..."if all you have is a hammer...". :)

Collapse
 
thomasbnt profile image
Thomas Bnt

Thanks for your explanation!

Collapse
 
thiagospart profile image
Thiago Spart

I usually get by experience and it's not just a work role, but more about the responsabilities you can handle. These concepts about full-stack isn't too clear, so for that reason if you can solve problens in both sides you can consider yourself a full-stack, even if in one(front-end) you're don't have too much experience, you still gonna be a full-stack.

Collapse
 
darkterminal profile image
Imam Ali Mustofa • Edited

That's called Software Freestyle Engineer in my world. They write bunch of Metaphor to solve problem.

Collapse
 
aungmyatmoe profile image
Aung Myat Moe

Deeper than FS lol
I used to
ME*N stack
LAMP
And System Engineering which is building compiler