DEV Community

Miguel Teheran
Miguel Teheran

Posted on

Full-Stack Developer, myth or reality?

In the past decade, the term "Full-Stack developer" has become popular, referring to a programmer skilled in handling all aspects of modern web projects. Full-Stack developers are experts in front-end and back-end development, covering both the user interface and the server side. Their ability to work in both areas gives them a complete view of projects and improves communication between teams. A major challenge they face is the rapid evolution of technology, which demands ongoing learning to stay updated with the latest tools and frameworks. The requirement to master various technologies, patterns, architectures and trends raises questions about the feasibility of having professionals who meet all these characteristics. It is important to note that a more comprehensive approach is now being considered when defining Full-Stack profiles, incorporating skills such as cloud service management, the use of DevOps tools and the integration of artificial intelligence services.

History

Developers have always had to adapt to new technologies and learn different tools to create robust applications. User interface design used to be mainly performed in IDEs like Visual Studio, Dreamweaver, and NetBeans. These interfaces were much simpler and outdated, while developers focused their attention on optimizing workflows and business logic. The evolution of Web 2.0, coupled with the introduction of HTML5 and innovative JavaScript libraries like Ember.js, Angular.js, and Backbone.js, has greatly expanded the possibilities for front-end development. As a result, the demand for programmers skilled in these technologies has surged, becoming a prominent trend in the industry. By that time, a large number of startups were started (Airbnb, Uber, Spotify) that with their success demonstrated the importance of improving the experience for users and creating technology-based businesses.
Those changes in the industry have led to a requirement for more comprehensive profiles due to project dynamics and budget considerations. A more versatile developer can potentially lower costs associated with hiring multiple programmers and can facilitate the quicker implementation of new features, highlighting the significance of the Full-Stack profile. Something to highlight is that the release of Node.js significantly increased the search for this profile, since using the same programming language (JavaScript) on the front-end and back-end side would theoretically facilitate acquiring the necessary skills to work on both sides of the architecture of an application.

A great back-end is a bad front-end or vice-versa

Full-stack developer

Many believe that Full-Stack developers excel in one area of development but struggle in another. This isn't due to a rule but rather the difficulty of mastering all the necessary technical skills. For example, a very strong developer on the front-end side with knowledge of architecture and user experience can hardly be an expert in cloud-focused microservices architecture patterns. This is not an impossibility, but considering the advanced technical knowledge needed it is very difficult to achieve.

Personal conclusion based on my professional career

I've worked with many skilled professionals and developers, but I've never seen anyone excel equally at both front-end and back-end development. Typically, their expertise in development or specific technologies is shaped by the challenges they've faced in projects and their personal interests. I believe that the Full-Stack profile can be effective in certain situations, even if it's a controversial opinion.

Some companies implement a design system to build their interfaces based on an architecture with reusable controls and components that facilitate front-end development. They also build all the business logic in the back-end and use ORMs (Object-relational mapping) to control changes and connection to the database. This creates a convenient scenario for a Full-Stack profile where you can make back-end and front-end changes in the same user story (branch, pull request, etc...) and finish developments faster. This is a risk that can affect the quality of development, especially on the front-end side, but it is surely a risk that many companies are willing to take for the benefits it brings.

Another very common scenario in recent years are applications focused on cloud services or based on artificial intelligence services, which means that the complexity of the back-end is reduced and development is focused on the user experience and adaptability of the apps.

The concept of Full-stack development remains debated within the developer community, but it is a highly sought-after skill in the industry. Having expertise in both web and backend development provides a better understanding of software projects and opens up more job opportunities. Everything indicates that we will always be stronger on one of the sides of software development or in some technology, but today having artificial intelligence tools and solid programming bases as a help we can solve complex challenges in every aspect and phase of the development of an application.

Top comments (11)

Collapse
 
jimmymcbride profile image
Jimmy McBride

I can see where you're coming from. But after building so many solo full stack projects, I feel very adpet at both. I'm def not a UI/UX designer, but I can make a site look pretty (example: my official blog). But working on so my solo full stack projects, I feel like I have a deeper understanding than a niche front end or back end developer.

For example, a backend developer will often modularize the backend to fit the sql data structure. So they'll return item x in one end point, item y in another endpoint and item z in another. But the thing is that you need x, y and z all on one page, so you have to make 3 async api calls and monitor waterfall state management. When I believe it's much better to combine these into one endpoint that's build for that page specifically!

That way, you get one endpoint to return everything you need for a page. Making front end life a lot easier. I didn't invent this method, and there can be some drawbacks depending on the size of the response, but building the backend in a way that's efficient for the front in can be very benifical in a lot of scenarios!

In so many meetings, the front end and back end fight on how to do things. When the backend doesn't understand they way they are doing something is creating unnecessary complexity for the front end. And the front end also needs to understand backend well so they can make good suggestions as well. However the front end doesn't effect the backend as much as the backend effects the front end.

So even if you're not going to be a full stack expert, even if you're going to have a specialization, understanding the other side is very important to having good relationships with other teams and building a more efficient product for the end user. :)

Collapse
 
mteheran profile image
Miguel Teheran

You have a good base of knowledge about software development, and you apply that knowledge to both sides. I appreciate your positive view on full-stack development and having a comprehensive vision for a project. I want to write about this in the next article.

Thanks for sharing your comments

Collapse
 
jimmymcbride profile image
Jimmy McBride

Can't wait to read it! 😁

Collapse
 
sinni800 profile image
sinni800

You're right, I think backend devs often think they're making an API to their DB, but they're also making an API for the front end. And the back end / front end cut is the one that is most restricted in latency of them all, if the frontend is running locally in the browser.

However the front end doesn't effect the backend as much as the backend effects the front end.

I think this isn't necessarily true, it stems from what we individually think comes first. And honestly, you can definitely develop front first. Then the front-end is what affects the backend choices and primarily what kind of API it has to offer.

Collapse
 
jimmymcbride profile image
Jimmy McBride

I see your point, but in my experience there is often a UI/UX team that's building out the designs for the pages before any developer touches it. So usually you don't have the front end making decisions on what data goes where, that's ironed out before either team touches the code base. Front end is usually only consulted for a final layer of feedback and technical considerations.

Thread Thread
 
sinni800 profile image
sinni800

True, in the end what's right is to sit together and discuss the api between front and backend. But things and disorganization sadly happen anyway

Thread Thread
 
jimmymcbride profile image
Jimmy McBride

Yup! XD Or you bring up legitimate points and concerns and they just don't care and make your life complicated because they wanna feel smart and clever :p

Collapse
 
ranjancse profile image
Ranjan Dailata

These days, it has become Full Stack AI Developer :)

Collapse
 
unemployedpoet profile image
Nick

When I started my career the most consistent advice given was "don't be a generalist choose a specific field and strive to be the best at it"

So I felt lucky when I picked front end and focused on vanilla JS. Companies hired hinting at the need for NodeJS fluent front end devs. Even as I repeat my imposter syndrome claiming only the skills related to Front-End, they assured me that they only wanted some willing to learn while working.

This obviously resulted in so many train wrecks as everyone stated knowing JavaScript meant writing server side code was no different than implementing it on the FE.

And when AWS was introduced, you couldn't find a JD that didn't mention both FE/BE roles but requiring "AWS" skill like it was a single monolith provider that did not consist of 100+ services.

So my experience is that it never should have been common to work across the entire stack. But when companies pile multiple roles in a single dev that fears termination if mentioning the need of new hires, nobody corrects the assumption made without sincere discussions between the devs who actually know if their specific position can handle that type of work load.

This is all my experience and opinion.

Collapse
 
mteheran profile image
Miguel Teheran

Good comments!

Collapse
 
zoeywalker profile image
ZoeyWalker • Edited

I appreciate your insights on the Full-Stack Developer concept. It’s true that while the demand for versatile developers is growing, achieving mastery in both front-end and back-end skills can be challenging. Most developers tend to specialize in one area, which can lead to gaps in expertise. However, the ability to understand and navigate both sides fosters better communication and collaboration within teams. With the rise of AI tools and modern frameworks, the landscape is evolving, making it easier for developers to adapt and tackle a broader range of tasks. I’m in my final year of university, and managing all my coursework can get overwhelming. I had an important essay due and wasn’t sure how to approach it, so I tried Academized’s academized.com/pay-for-essay pay-for-essay service. The essay I received was clear, thoughtful, and exactly what I needed to meet my deadline. It’s a great option for students who need a little extra help.