DEV Community

Question regarding "Junior Full Stack Developers"

Sloan the DEV Moderator on December 08, 2019

I've been hearing a lot of people refer to themselves as Full Stack Junior Developers, but how does one become one? Doesn't the very nature of bein...
Collapse
 
syedwasimali profile image
Syed W. Ali • Edited

A popular definition of a Full Stack developer is the ability to start with an idea and help bring it to fruition. It includes understanding the requirements, help arrive at work estimates, fulfill the UI/UX commitments, program the front-end piece, understand the middle-ware needs--if any, implement the backend, and be able to tackle the persistent store needs. This individual should also be able to satisfy the build pipeline needs, and the coding work should meet the guidelines from the Security and Operations teams.

A junior Full-Stack Developer is someone who can be part of an agile product life-cycle journey and be able to hold his/her weight working across the team boundaries.

To become a candidate, pick a tool that supplement roughly each of the area mentioned above. Work experience is important. Though working on a project on your own and sharing the work in your Github public profile goes a long way to prove your mettle.

Collapse
 
mburszley profile image
Maximilian Burszley

Great explanation. Also, it's *mettle

Collapse
 
alexanderop profile image
Alexander Opalic

That's a good explanation

Collapse
 
aftabksyed profile image
Aftab Syed

Nice explanation mate! Keep it up

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao • Edited

There's not really a clear cut definition of being what justifies being a full stack developer due to differences in technologies used and a wide area of specialisation.

In my Why be a full-stack developer article.

I focus on skill stacking to provide you with unique insight into the world while you are developing software.

In terms of graduating from Junior Dev into Senior.

In the articles, I read it points to both technical and non-technical skills like:

  • Mentoring
  • Accelerated learning
  • Time management
  • Project management
  • Soft skills
  • TDD
  • Clean code
  • Understanding & creating technical architectures like design patterns or Solid
  • Leadership
Collapse
 
avalander profile image
Avalander • Edited

Ironically, I started my career as a junior fullstack developer because I worked across all our application's stack, from the database to the web interface, and I did all parts equally poorly. That was before fullstack became a buzzword, though. Later in my career I specialized as a backend developer because that's what I enjoy the most and companies started hiring specialized people to do web interfaces and I had to choose one pigeon hole.

So, the way I see it, fullstack means you work across the entire stack of the platform. Junior means that you need guidance and mentoring to be able to build a robust, scalable and high-quality application.

Collapse
 
dylanesque profile image
Michael Caveney

This is a good question, and I think a not-small-part of why is this being asked is because of bloated job descriptions. Something newer developers should understand is that many job descriptions are pie-in-the-sky wish lists that don't accurately reflect the job descriptions. The same murkiness can surround what defines a junior dev, and job descriptions that ask for 2-3 years experience for a junior role don't help, since it's (very) arguable that most people will no longer be junior after two years on the job.

Collapse
 
nicklediet profile image
Nicholas Lediet

I think of the junior and full-stack as two qualifiers for the type of the developer. A junior having under a couple of years of experience under their belt and a full-stack developer is to take part in the entire stack of the project, as well as having experience in design and UI/UX principals.

I also really like the term "mid stack" that I have been hearing recently which is front end, developers, who focus more on Javascript frameworks, as well as being able to write basic routes on the server, without really having any complex understanding for serverside development or databases.

My title is a junior full-stack developer. I had gone to school for traditional backend and low-level programming, but I also went for UI/UX and frontend development. So my day today, I work with anything in our stack from styling for accessibility to databases, to dev ops. But I certainly don't have the experience or insight of a senior developer.

Collapse
 
russellstrauss profile image
Russell Strauss

Full stack means you understand and can build for the full web architecture in a production setting. For example, you create interactive pages in the frontend of the application, but also write the backend code to deliver it from the server and any relevant database or other backend needs.

Many people will specialize in interactive frontend work or backend dev which includes routing and server-side architecture, choosing to specialize in one or the other.

It is mostly a silly term created to set expectations for job roles.

In my opinion, every dev on the web should understand the full web architecture since they are closely tied.

It is unrelated to the term junior dev other than the fact a junior dev will not understand the full web architecture since they have not been working with it long enough to fully understand it.

Collapse
 
simbo1905 profile image
Simon Massey • Edited

I am not sure that any of the answers so far have talked about the progression from being a Junior Dev. The way that I think about it is that when you are starting out you tend to ship code as the "the first thing that works". In this sense a person is junior in that they need some help and guidance to create code that goes beyond the basics. At this stage starting on a feature with a blank file in an editor is really draughting and being given an outline to fill-in helps with confidence.

Someone becomes senior in my eyes when they are able to create an outline for others to fill-in and when are able to see and fix problems before they become obvious bugs. They are able to speak from experience as to why writing code in one way or another is less error prone or more maintainable. They should know the idioms of the languages and frameworks they use. At the point where you are able to help others with these matters you are in my eyes working as a senior developer.

A lead developer goes beyond being a senior developer in being able to bootstrap new applications or "team sized software" from scratch. They can evaluate and select new libraries and frameworks to use and write a shell of the system that the rest of a team can flesh out.

So to answer the question "when have you gained enough expertise" is simply "when you start working at the next level". Often pay and job title lag behind where a person really is at. Other times a person gets dropped into a situation where they have to step beyond where they were before and they have to stretch. In my experienced the best thing you can do is work with different folks that you can learn from and share ideas. If you spend your time feeling like everyone around you knows more than you then eventually you know your craft well.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

You've already seen a range of replies on this, but I might still be able to provide a bit of context. A web "stack", in programming terms, is a suite of complementary technologies that can be combined to create a full web-based application. One of the earliest web "stacks" was LAMP (Linux, Apache, MySQL, and PHP). If you were at least somewhat comfortable with all four of those platforms, you could reasonably call yourself a "full-stack developer" (although there was really no such term ~20 years ago).

Truth be told, even amongst seasoned LAMP pros, I've met very few who are truly comfortable working on Linux command line and doing in-depth configuration of Apache and managing a MySQL database and writing PHP code. Also notice that, with the LAMP stack at least, it's almost entirely a backend stack. In other words, your PHP code might ultimately be delivered to the browser (i.e., the frontend), but most-or-all of the real "logic" lives, is compiled, and is run on the server. By the time it gets to the browser, it's just static HTML/CSS. (And yeah... I know that it's at least possible to generate frontend code - i.e., JavaScript - on the server, in your PHP code, and then deliver it to the browser where it will run. But this is still a weak approximation of what we think of nowadays as "frontend development".)

With the advent of real frontend logic - basically, with the introduction of jQuery - you started to see more specialization amongst some devs. Even today, I know plenty of very senior, very skilled devs who really only want to write backend code. Think: C# or Java. I've also met some who really just prefer to write frontend code - almost always: in JavaScript.

In the last 5-8 years, there's been a new proliferation of "fullstack developers". Soooo many people now use JavaScript as their first language (and in many cases, their only language). And now, you can be "fullstack", even if you "only" do JavaScript, with tools like Node and Mongo and GraphQL and many others.

IMHO, "fullstack" doesn't mean that you're "better". And focusing more heavily on frontend-or-backend doesn't mean that you're any less talented (or any less valuable in the marketplace). I know guys who are "only" frontend or "only" backend - and they command very high salaries because they're extremely talented (and experienced).

Conversely, some "fullstack" devs are indeed junior. They completed a code camp where they wrote, for example, a React app, that sends calls to a web service they wrote in Node/Express, that saves data into a MongoDB database. Technically speaking, that is "fullstack". (Specifically, it's a "fullstack" application developed in the MERN stack.) But that doesn't mean that writing their one little proof-of-concept app graduates them beyond "junior".

In many respects, having fullstack devs vs frontend/backend devs speaks to the overall size of the organization where they're employed. If you're gonna work for a startup where there's only 2-3 devs or maybe even, 1 dev), you probably can't afford to have one guy who says, "Yeah... I can't really fix that problem, because it's in the React code, and I only work server-side code." Or another guy who says, "Yeah... you'll have to get a frontend guy to look at that, because I only write the web services in Node/Mongo, and that problem/feature is in the frontend Angular codebase."

But in larger companies/teams, it's not uncommon to have devs who "only" work on the server-side code and others who "only" work on the frontend code. That doesn't mean that they're "junior" or somehow "less than" the fullstack guys. It just means that they're comfortable enough in their own skin to say, "My interests really lie more in this part of the app - and that's where I'd prefer to continue specializing."

The first 10-15 years of my career were basically backend development. Cuz when I started in this career, there really were no "frontend developers". Now, I'm known as a "fullstack developer" because, when I need to, I'm perfectly comfortable writing code directly on the server. Or writing code that only lives in the database layer. But I greatly prefer to work on the frontend now (ideally, in React).

So when I'm interviewing with a company for a "fullstack" role, but it becomes apparent that the bulk of the work will need to be done in, say, Java - I politely withdraw myself from consideration. Because I'm just much happier (for now) dealing primarily with frontend code.

Collapse
 
jenbutondevto profile image
Jen

I was hired as a junior full stack developer for a very small team (1 other developer!). For me it just meant that I knew enough about coding to code, and be able to learn whichever technology or language the job requires. When I started I knew html/css/js (with some node)/limited php and iOS. I assume if you've studied computer science (or have the equivalent in work experience) you would have an understanding of the "full stack" (front and back end).

I graduated (I think?) from junior dev about a year ago. I still think of myself as junior (thanks imposter syndrome). The easiest marker was that I was given a pay rise. Monzo (challenger bank in the UK) released their "progression framework", and I found myself ticking off and climbing up the levels. progression.monzo.com/engineering/web

Collapse
 
tawsbob profile image
Dellean Santos • Edited

Just my opinion, Full Stack Developer is a role created by the employers pay a little bit more and got a mix of roles ( Frontend + backend + DevOps + .... ), because if you was knowledge about front + Backend or more your are not Junior at all.

In technology every stack is a whole universe witch you most waste some time to get a relevant knowledge to start a do be able to develop something eligible to development market.

sorry about my English, I'm brazilian :P

Collapse
 
dausume profile image
dausume

Many people going into work nowadays in dev are under the impression that unless they are full Stack they will never get hired, which is effectively reflected in most requirements for entry level job postings. So, most of the people I have known (myself included) are expected to effectively be 'full stack' in order to get even an entry level job. A lot of people either end up studying outside of school to learn all the additional skills needed to get a job, or going to a training boot camp after graduating to get 'Junior full Stack' status before getting a job. Only to find out the real reason they were not getting jobs is the lack of Certifications, which generally cost a few hundred dollars to test for, but often are not noticable on a list of some job requirements, but what people are generally looking for.

Collapse
 
gpdoud profile image
Greg Doud

I teach an immersive boot camp where students learn to develop three-tier, (full stack) web applications in three months. When they get their first job (which over 93% do) they are junior developers because they have little experience.

IMHO developers are not junior anymore when they can take on average projects on their own.

Collapse
 
rswlkr profile image
Ross Walker

I have fallen foul of this in the past. It is not helpful to make a habit of changing the meaning of a collection of words in such a way that negates their literal meaning. In other words, a Full Stack Developer taken literally means that you know CSS, but you also know your way around the kernel. Be precise and qualify. Call yourself a Full Stack Web Developer instead 🎉

As to the Junior point, some organizations enforce hierarchies and decide when you are no longer Junior based on a number of factors. In my opinion, you're senior when you can confidently call yourself it amongst peers.

Collapse
 
eth333 profile image
ETH333

rhJYdAAiZPJpztnu13pHAATi4gsEi3Rf28