6 min. read

February 08, 2020

programming

What is a Fullstack Developer?

“Fullstack developer” is a controversial tagline in any job posting.

kado

Kado Damball, Software Developer

The term, which dates back to the 90s, with the rise of AJAX and multi-device rendering concerns, remains contested by many. And while the role does have its place, the term itself needs a serious update. It's time to say hello to the generalist developer.

Who is a full stack developer?

The definition of a full stack developer in itself is subjective. To generalise, a full stack developer is someone who works both on the presentational side of software and the computational side. In web development, a full stack developer usually works on frontend and backend concerns of a website. Back in the 90’s to mid-2000’s web developers were synonymous with fullstack developers. As most web projects consisted of simple user interfaces generated solely by servers, it was not uncommon to have all concerns handled by servers. It meant most developers had to know how to work with backend tasks as well as frontend-related issues. So, what has happened since then?

Related: What is a Full Stack Engineer?

Enter JavaScript frameworks and handheld devices

javas

From the mid-2000s, a myriad of phone and tablet devices were introduced. This coincided with the rise of JavaScript frameworks, dealing solely with frontend presentation, which was a result of a new and exciting technique called AJAX (asynchronous JavaScript & XML). Instead of web servers taking requests and returning a full rendered web page, a page could query for specific information and update the relevant presentational part. This meant faster websites (you only request what you need when you need it) and a new approach to web technologies. A new stack was introduced.

Phones and tablets brought with them an interesting concern to web development. Previously, websites were limited to personal computers, paying no attention to different screen sizes. The advent of phones and tablets called for a re-think on how web information was presented and consumed. This also added a new concern to the frontend side of things.

The myth

There are plenty of non-believers when it comes to the presence of fullstack developers in the modern development era. These concerns are understandable. Compared to pre-AJAX web, there are variety of concerns for one to master. Fullstack now involves:

  • Frontend

    • Design splicing and implementation

    • Responsive web implementation

    • JavaScript

      • API integration

      • Framework (or vanilla.js) implementation

      • Performance optimisation

      • Unit testing

    • Miscellaneous

      • Task runners

      • Accessibility

      • Different CSS/JS framework knowledge

      • Behaviour testing

  • Backend

    • General backend model implementation

      • Authentication/Authorisation

      • API design

    • Database

      • Database design

      • Query optimisation

      • Data indexing

    • Miscellaneous

      • Data analytics (Big Data tools)

      • Unit tests

      • Isomorphic Rendering

  • DevOps

    • Continuous Integration

    • Load Balancing

    • Caching

    • Virtualisation

    • Server security

    • Smoke tests

All the above, plus a multitude of other business-specific requirements are the concerns of 2016 regarding full stack developers. A frontend or backend developer will be able to master their relevant concerns, but it is almost impossible to find a full stack developer capable of mastering both. However, that is not to say a developer is incapable of knowing and understanding all the concerns listed above.

The reality

Fullstack development is mostly limited to small teams with smaller-focused products. This means that a developer who is familiar with one stack would rarely possess the same knowledge on a variety of stacks. In comparison, a backend developer would typically posse the same level of mastery on two or more server languages. As a matter of fact, most small companies require full stack developers, meaning developers who are equally comfortable on the frontend and backend.

On the other side, most frontend or backend developers are to some extent full stack developers, when we use this definition. After all, a lot of frameworks extract away the nitty-gritty parts of development, allowing us to focus on product delivery. Ironically, it is equally hard to find a developer who is unfamiliar with the stack that is not their specialisation.

The perks and costs of being a full stack developer

Aspiring full stack developers should understand that the title is almost an oxymoron in today’s development. It is much more sensible to aim towards being a well-rounded developer, and with time, and by extension experience, developers end up acquiring knowledge on how the other side works. However, developers with enough knowledge to dive on both stacks are in more demand as far as web development is concerned. They might not have similar knowledge in the frontend compared to a frontend developer, but they are comfortable enough to deliver a final product, and in most cases, that is good enough.

Developer jobs in Germany

Find me a job!

Perks of a full stack developer

As stated previously, full stack developers enjoy a lot more opportunities compared to a developer specialising in one stack. Most companies would prefer someone as comfortable dealing with CSS edge-cases as they are dealing with odd database queries.

Software tend to become a lot more challenging and equally rewarding when dealing with both ends of the stack. It is much harder to be bored when you have twice as many features and bugs to work on. Keeping in mind most full stack developers work in small teams, product ownership seems to come almost naturally.

Some full stack developers will go as far as having two different resumes, one for each stack, when applying for positions. In a way this maximises their chances of a getting the gig, but it might be tricky for some considering most fullstack developers tend to have a preferable stack when applying for positions.

Costs of a full stack developer

Fullstack development means dealing with context switching on a daily basis. The mentality of frontend development is not the same as that of backend development. This often leads to introduction of bugs. It is almost unavoidable when the job involves working with technologies with different priorities. With Node.js, it might reduce some programming language syntax errors, as far as context switching is concerned, but the different environment requirements are still there.

A lot of software development involves keeping up to date with the latest frameworks and techniques. To a full stack developer, this means double the amount of work for their immediate stack. That does not include picking up new stacks altogether.

Compared to frontend development, backend developers have a significantly wider choice in technologies. A fullstack developer tends to be experienced in only a couple of technologies, and the task of mastering several programming languages becomes harder with frontend development in mind. While they might be able to apply to several positions, it becomes harder to stand out when job opportunities demand highly specific domain knowledge3.

There are large tech companies that will outright not hire a full stack developer. They require specific domain knowledge and would prefer someone with enough experience dealing with edge cases. Statistically, these jobs are less common but tend to be more on the bleeding edge of software development.

Final thoughts

The old definition of a full stack developer is almost extinct, and it is much better to refer to them as generalist developers. The best way to become one is by focusing on one stack early in your career, while slowly picking up knowledge on the other stack. It is almost futile to aspire to master both stacks, as the amount of information grows exponentially with each additional stack.

  1. Data science and/or big data is a can of worms on its own

  2. A back-end developer for a video-content site will have different requirements to one working on a photo-sharing product. The same applies to front-end and dev-ops.

  3. Jack of all trades, master of none, but better than master of one.

Looking to find new roles that match your ambitions? Honeypot is Europe's job platform for developers and data specialists. Sign up today and get offers with salary and tech stack up front. (P.S. Honeypot is always free for developers.)