DEV Community

Cover image for I'm a frontend developer. Or am I?
Lynne Finnigan
Lynne Finnigan

Posted on

I'm a frontend developer. Or am I?

As a frontend developer, I've always found it difficult to draw the line between what is considered to be frontend and backend development. Apparently I'm not alone in this!

My first job in a digital agency involved me working with HTML, Sass, and Coffeescript to build websites that match as closely as possible to the designs provided by the design team. In addition to this, I would work with Ruby on Rails, which our custom CMS was built on, to pull through data into the views.

I had a great mentor in that job, who taught me so much about Sass and code organisation, which I'm still very passionate about today (I can't thank you enough Simon!). As a junior I was thrown in at the deep end, and for me it was the best way to learn.

In my mind, this was a frontend developer's role, and it felt clearly defined at the time.

A new chapter

In 2015, I moved to a different digital agency. The frontend developers wrote HTML, Sass, and some JavaScript, and then passed it all on to the backend developers to hook up to the CMS.

Things have changed a lot since then, and now our frontends work with the CMS and C# Razor markup, as well as React and Vue when required. But it seems that since frontend frameworks have gained more popularity, the definition of what a frontend developer actually does has become even more blurry.

Other people can sometimes struggle to know which tasks are frontend and which are backend. Sometimes I feel as though people don't entirely realise the amount of work that is involved in frontend development.

We're in a sort of hybrid role that works between designers and backend developers to make sure your website looks awesome and performs well.

It also becomes difficult when recruiting new frontend developers. As a company, we pride ourselves on building websites that match our designs as closely as possible. People will literally tell me if an icon is a few pixels out. And I know what you're thinking, but that's not a bad thing. It has made me better at my job and the smallest changes like that can have a massive effect on the final product. Everyone in the company knows this. It's a team effort and it's constructive. No one takes it personally. Everybody cares deeply about what we're creating.

The difficulty in recruiting a new frontend is that we need someone who is extremely capable with HTML, Sass, styling, and the design side of things - but also a great JavaScript developer. And it seems that they are more divided than ever these days.

The questions I have for the dev community are:

  • Does anyone else struggle with this, or is it just me? 😁
  • As a frontend developer, what do you consider your role to be? How would you define it?
  • Do you feel that the title 'frontend developer' is appropriate for the vast amount of skillsets it covers?
  • Have you had similar experiences in terms of recruitment, and finding someone with the same expectations in the role?

I think it's an interesting discussion and I have heard of instances where frontend developers feel under-appreciated because people "don't really know what they do". Also for the sheer amount of skills they are expected to know, in comparison with backend development.

What are your thoughts on this?

Latest comments (33)

Collapse
 
jkhaui profile image
Jordy Lee

Imo, 2 relatively recent trends have redefined the traditional frontend/backend developer roles.

1) The rise of thick-client SPAs. Anything that's not a Wix or WordPress website these days is most likely adopting an SPA architecture. You'd think that the decoupling an SPA brings would more clearly define frontend/backend roles, but ironically, the opposite seems to have happened.
My opinion for this is that creating a legit SPA is very complex; state management + other complex topics like packages, build pipeline, etc. Are almost always integrated with the view layer. So a "Frontend" developer must now have a good understanding of JavaScript, well beyond the knowledge needed to render static HTML or change a font's colour with CSS.

And if you know frontend JS well, you basically know node.js too - so what's stopping you from writing server-side code?

2) Emergence of serverless functions. Admittedly, adoption still doesn't appear mainstream. But the ecosystem is growing and greatly reduces the barrier of entry to writing backend code, by doing away with the overhead of managing servers etc.
So there's no reason a dev working with a frontend JS framework wouldn't be able to quickly pick up writing backend code as a serverless node.js function, for example.

Finally, I think other innovations like GraphQL's client-driven queries are further closing the frontend/backend gap. Everyone has to be - to some extent - a full-stack dev these days.

Just my opinion. And I believe it's a trend that will only accelerate

Collapse
 
gochev profile image
Nayden Gochev • Edited

In my country in fact we do the following separation:

  • frontend developers - people working on what you SEE, it can be HTML/CSS/JavaScript/React/Angular even Swing or WPF for desktop apps.. this is frontend
  • backend developers - people working on what you cannot SEE or at least the user should not see. I dont had to explain here but it is 99% Java developers and 1% nodeJS developers.
  • web designers - this are people working on the web design which in many cases is before the frontend developers step in, this is pure HTML+CSS and little or no JavaScript.
  • UI designers - this are people working before the web designers usually only on the UI mostly including photoshop, illustrator and etc.

  • UX designers - this are people working before the UI designers only and mostly on mockups... showing what elements and screens and navigation we will have nothing more.

I would explain it in steps in my company:

1) the UX guy speaks with the business analyst and by knowing what stories exists creates the UI of all on prototype mockup level without any colors or fonts or anything.
2) the UI guy takes the mockup and makes it beautiful but in a picture mode.
3) the web designer takes the psd and converts it to HTML, testing and taking care of all browsers rendering all the same.
4) the frontend developer using a mockup rest service like mocky.io (mocky.io/) makes all work but on a fake static responses, he also creates tests with chakram for example verifying the STRUCTURE of otherwise mock responses.
5) the backend developer develop a rest endpoints and make sure that the frontend chakram tests works ones they work this is merged with the frontend and a configuration endpoint properties are changed.
6) the QAs and BAs starts to test and if something from an UI perspective is broken a BUG is created and the BUG starts from step 3 or 4 or 5. Usually 1 and 2 and 3 are already confirmed and approved by the client and if there is a change there it is a new user story starting from step 1, bugs starts from step 3.

What I missed is step 0 the discovery phase where the business or functional analyst speaks with the clients and comes with a set of 1 or more user stories.

Collapse
 
kelerchian profile image
Alan

Started out my first job as a frontend engineer with the devops mentality of "being frontend engineer means delivering the best frontend product as possible, including browser app, desktop app, Unity and Unreal Engine library".

I raised up to architectural role in 8 months. I mastered frontend while learning the fundamentals of backend, infra, management, and other fields that I haven't mastered yet.

Being frontend dev at heart, I will asks the engineer manager for engineers that masters the problem my team is facing, preferably with the same devops mindset. Having everybody having different mastery but the same devops mindset is the best scenario possible for an engineering team.

I think it's a misnomer to set the skillset of "frontend developer" to only html, css, javascript.

Frontend developer's skillset should be Information Architecture, User Interaction Design, and User Interface design.

If a company wants to hire engineers with more specific skillset, they should present it as "Software Engineer - Frontend - HTML CSS".

I do have met some people having the same expectation and I feel that they can still broaden out their skill to either UI/UX design or non-presentational layer of javascript.

Collapse
 
novemberkilo profile image
NovemberKilo

I'm also confused with what a front-end developer really is.

My question is: What Javascript skill should a front-end developer do?

From my point-of-view, it should be more of DOM manipulations rather than data (connecting to API's which is JS/TS) right? Because it's vast and it's somehow technical.

Collapse
 
yeraycat profile image
Yeray Catalá

The split is slowly dissappearing. But as always, you'll do better the things in which you have more experience. We have the same skills, but use them for different purposes.

In the end I think we'll all be just devs. You can be an expert styling or an expert implementing Rest APIs, but you are just a dev that happens to have more knowledge of one specific topic.

The dev that is a CSS expert can implement a Rest API and the Rest API expert can style using CSS, but you'll do better&faster the things you're used to do.

Collapse
 
kayis profile image
K

Well, when CoffeeScript was a thing there was already a clean cut between fronend and backend.

Before that, with PHP, it was simply one huge blob 😂

Collapse
 
donaldng profile image
Donald Ng • Edited

IMO backend developers are typically the ones who primarily work on C, Rust, Go, or any other low level programming languages.
Anything else is qualified as frontend, or if you feel like you're more than that feel free to call yourself a full-stack developer 😀

Collapse
 
boniknik profile image
Boniknik

When I started working on React.js I knew it was the end of the separation between traditional frontend and backend. A colleague of mine and I where thrilled as we got to work on both logic and presentation (we are both full stack devs). Then I started to notice a lot of really great traditional backend devs who got thrown into the world of React and now struggling to grasp how to convert a visual design into a working html/css. It really baffled me why since Frontend devs have always been looked down upon by Backend devs. After all It's JUST HTML/CSS right? Now they know that is WRONG! It takes a really creative mind to look at a visual design and then architect/craft that into SEMANTIC ACCESSIBLE html/css. One thing is for sure, both traditional frontend and backend devs have now found new appreciation and respect on each other's expertise.

Collapse
 
qm3ster profile image
Mihail Malo

I think the biggest fault was muddying the title of Designer.
Yes, when you devise the shape of a public web/programmatic API, you can say you are designing it. Yes, devising a schema for your data in a database engine can be called "design" (as opposed to "engineering" and "programming", which sound like developing/extending the DB engine, and "administrator" which sounds like application-agnostic Ops).
But a front-end designer is an actual traditional "designer".
You might as well call them a web designer, if that didn't have a connotation of traditional flat sites as opposed to rich apps.
They aren't about the accessibility, they aren't about the usability (that's UX), they just implement what the...
Wait. Who is the one that draws mockups in Photoshop/Illustrator or specialized wireframing software? Not graphic designers, those make art and illustrations. Not brand designers, those are about the style, not the particular screens.
Oh no.
We are doomed.
I thought I could define them by what they are not.
But we don't have enough things names.
This is the end.

Collapse
 
gsto profile image
Glenn Stovall

Front-end = code executed in the browser.
Back-end = code executed on the server.

However, I'd expect any developer that classifies as one to at least have a little bit of knowledge about the other.

Being a front-end developer is context dependent. Being a front-end developer that does design-heavy work with light JavaScript than a front-end developer who works on complex React applications.

Collapse
 
jasonrundell profile image
Jason Rundell • Edited

Hey Lynne. Great read. A lot of developers feel this same anxiety. If you haven't already, check out The Great Divide by Chris Coyier (css-tricks.com/the-great-divide/).
I don't think it's useless to split front from back. We're developers, we separate concerns. Front end means client side in my opinion. We're concerned with the client, or what the user directly interacts with.
I think the core of this anxiety has grown from the lack of knowledge in hiring processes. Companies love to hire someone who can wear multiple hats instead of multiple people with 'specializations'. From that, Back end, Front end, and Full stack have arisen. Full stack and back end is blurred/confused with architects, dev ops, and admins. Front end is confused/blurred with Full stack and UI/UX design. UI/UX designers are now being blurred/confused with Front end developers. There is a need to have an understanding of the different disciplines, but actually EXECUTING the work requires a specialized focus in my opinion. Cross-discipline collaboration is best when individual specialists are collaborating - not when one individual is expected to work cross-discipline.
Again, it comes down to the problems with how companies are hiring, and then it just snow balls out to headhunters and agencies, and then again to developers who are just trying to give themselves the best chance of being employable.
Look at this job description I just found in 5 seconds with Google for a 'Front end/UI Developer':
Preference would be given to candidates with:

  • Experience with .NET/c#/ASP.NET MVC
  • Experience with JavaScript and Front-End Frameworks (such as React.js)
  • General knowledge of e-commerce, marketing, and advertising is a plus
  • Experience in B2B
Collapse
 
lynnewritescode profile image
Lynne Finnigan

Thanks for your reply! I have read The Great Divide by Chris Coyier, and it's a great in-depth look at these issues.

I wanted to get the Dev.to community's thoughts, discussion, and experiences on this as it is all so varied.

From my experience (and I'd hope it's the same for others), it's not as big an issue when you've been with a company for a while and they respect you, listen to you, and can recognise where your skills are and how to get the best from you. But I'd imagine, and I might be wrong of course, that it would be a bit of a nightmare for a junior dev right now who isn't quite as sure of what they are capable of yet. Trying to find work with such a variable job spec.

I think the best companies can do for now is be more up front about what they actually require you for when recruiting, and what specific skills are key to the role.

Collapse
 
hnrzzle profile image
Henry Oliveira

My position is officially "Front-End Developer". I primarily write and develop components for use in A/B testing. Primarily. I've also been developing a lot of tooling for helping make that process faster and more efficient.

Are these back-end tools? They're not running on any server, so I hesitate to call them back-end tools and myself a full-stack developer (at this job), but these tools aren't used in the front-end either.

I'm also on a very small team and have been heavily involved in trying out different tech and making overall design decisions for what we do. Does this now make me an engineer? I have no idea. Am I still a front-end developer?

The lines get more blurred and gray with each passing day.

Collapse
 
lynnewritescode profile image
Lynne Finnigan

This is pretty much how I feel!

Having a bit of a frontend identity crisis 😁

Collapse
 
maxwell_dev profile image
Max Antonucci

The line has definitely gotten blurry for me very fast in my career. Most of my work as a front-end dev is making UI changes and getting things responsive and accessible. But I increasingly get tasks focused mostly or entirely on back-end changes, such as recently adding model validations to our Ruby on Rails backend.

My rule of thumb for things outside one's speciality is "knowing enough to be dangerous." I try to know enough about Ruby and the Rails framework so I can grasp basic functions and infer how something works by reading it over. I still needed some help to get those validations right, but they were small corrections and not the "you need to do things an entirely different way" kind of feedback. Following this rule I've been helping to blur that front-end/back-end line, but I honestly think that's inevitable for development teams. The rate of change today has just accelerated that.

I would say my front-end title speaks more to my speciality than as a limit to my skills. I learn the most about CSS and JavaScript, but that doesn't mean I won't write Ruby scripts or side-projects either. Semantically, I think web developer titles will communicate more "I focus mostly on this along with other needed skills" instead of "I do this and nothing else."

The downside is how this encourages the "full-stack" myth. Helping more people understand that knowing at least the basics of everything doesn't automatically make them qualified for "full-stack" is a huge challenge.

Collapse
 
lynnewritescode profile image
Lynne Finnigan

I agree with everything you just said 😁

It's a good way to think of it as a specialty, rather than the only thing you can do.

Collapse
 
clairecodes profile image
Claire Parker-Jones

The problem I have is that everyone recruits for "frontend developers" and ask for HTML, CSS and JavaScript but when you dig into the roles the things you'll end up doing are really different. In one company you'll be writing a lot of CSS and thinking and about designs and UX, but in another you'll be writing mostly React/Angular and thinking about managing state and API calls - I find it really difficult to look for frontend jobs because of the vagueness of the term "frontend developer" 😥

Collapse
 
lynnewritescode profile image
Lynne Finnigan

I know what you mean! This is what is confusing both for people looking for jobs and for companies recruiting. They need to be really aware of what type of developer they need.

Collapse
 
asg5704 profile image
Alexander Garcia

So I was originally hired as a UI developer. And yet most of the code I've written is for back-end code and minor tweaks to the front-end (none of them with styling). I think the divide of what is considered the front-end and back-end is more prevalent than ever.
Designer = Front-end dev role
Front-end Dev = Full-stack Dev role
Full-stack Dev = Unicorn 🦄