Create templates to quickly answer FAQs or store snippets for re-use.
Totally agree with this!
I am 100% a #1 (front-end designer) but it feels like if I'm not working towards #2 that my career will go nowhere (based on co-workers, industry types, etc.). Every "front-end" job posting in the last 2 years for "front-end" not only includes a requirement to have mastered HTML/CSS but the 4 latest JS frameworks as well.
If I'm not learning how to do CSS in JS I'm "behind the times" but if a JS dev doesn't truly understand CSS grids it doesn't seem like the industry treats that as much of a big deal.
Both of my statements are exaggerated as everyone is in unique situations but I'm glad to find articles and opinions that mesh with mine. 🙌
I will post a quote here from Brad Frost, creator of Atomic design. This is what inspired me to write this article.
you just speak my mind!
Sent from a #1 (frontend designer)
As a frontend lead comfortable with both of these areas it pains me to admit these need to be seperated in many organisations. While front-end development had grown in complexity, many user experience teams are recognising the benefits of designing in code and it often helps to have web development specialists working on the earlier stages of design.
With all that said, I think describing them as two professions is too strong, frontend requires a spectrum of skills from UX and software engineering. I'd encourage an organisation to split these into seperate jobs but also to recognise that these are roles people should be able to move between in order to develop themselves as they progress throughout their career. In a large organisation I believe splitting these roles out but having them managed as one might be the right balance.
I had same the concerns when web design was split into UX, UI and front-end development, but given how huge those areas have become today, those concerns were unjustified. The reason this occupation was interesting to me was because of the interactive DESIGN and using HTML, CSS and JS to deliver that designs. Not because of JS development and backend services.
There is no benefit in pushing creative people into development. What would be the point of that? What would happen if we pushed back-end developers into art classes or design?
As usual a lot of this depends on you experience of different team structures. A lot of interaction designers already make use of HTML and CSS.
Also pushing people into roles is the complete opposite of what I meant. People should be able to find the roles where they can be happy and effective, artificially splitting jobs up can prevent this. The existing split can hurt companies who don't encourage collaboration enough.
I we don't make clear distinction between these two, problem in large companies will remain. Startups will adapt fast because they have to work with whom they have, but huge systems will not.
I've seen it all first hand.
Totally agree. I find myself boxed into the logical frontend category, where JSON smashing is literally the only thing I am doing. It's like an extension of server side code, that has been for no reason delegated to the frontend. Without investment into the creative side of things, it would be difficult to reach a well rounded product.
Smashing JSON files is not something that we should do. Everything database related should be done by JS engineers or back-end developers.
"Today most back-end developers moved to front-end." I think the term "most" is a bit exaggerated.
That said, for me it's the number one source of pain. Not the fact that I have to code more. I actually love coding the logical part of UI's as frontend dev / architect. No. The problem is having to work with suddenly tons of people whose level is to put a div inside a span with no idea how to architecture CSS.
I have thought about this for a while and one thing that I realised with frontend, is that it's too forgiving. The worst code ever may still do the job and the end result will look fine to the product manager. If you do something wrong in backend, consequences will be more obvious so you can easily see that something is off. A frontend code can evolve into a nightmare slowly. It can happen in backend too, but I haven't seen it to the same extend than frontend does.
Sometimes I meet a "real frontend" person in a team, and we just hug ourselves.
I agree that the term front-end cannot be applied to everyone today. There is no point in talking about beginners or their amateurish mistakes, because that discussion can go on forever with no solution in sight.
Problem for me is when I work with JS developers who have no idea how to work with CSS or to set up a proper HTML markup, but are great in JS development. Even more, problem is when they lack any talent for visual aspect of this work. At that point they turn to CSS frameworks like Bootstrap or Material design thinking that it is the only proper way to use CSS. That has led us to this point now where almost every site looks the same as the previous one. But as I said, there is no point in talking about beginners who are arrogant enough to presume that their part of the job is the most important one.
JS devs cannot be pushed into visually creative part of this job and the same applies for other group and JS.
It is childish to call either one of these "real front-end", since both are clearly needed, but for separate parts of the job. Complexity is rising with each passing month and it is hard for most people to keep up with everything. Let's not go into another extreme and compare those who are long enough in this line of work to know great deal about FE with majority of people in this business. I used to do that and it got me nowhere, since it didn't change the masses ;)
Don't you agree?
I think you misunderstood what I meant by "real front-end" person. That's why I wrote it between double quotes, I was hoping that people can picture what a front-end person skills might be without writing a lengthy description of all the possibilities that front-end tasks might lead to.
But regarding the amateurish work of beginners I do think it should be discussed. The problem is really that: onboarding people to do tasks they have never really learned do do because they can do a subset of them. The job is evolving and so do the responsibilities.
Thus, a team leader or anyone responsible for hiring should really know what the tasks will be in order to not put an amateur on the job. Having a loose definition of the front-end position leads to those problems. Like you mention in your post, the particular frontend position might need a more "creative frontend" or a more "logical frontend", or both. It should be clear which one is needed. That's where I agree with you where people without visually creative background shouldn't be pushed into such tasks.
I have met two types of JS devs who were "beginner frontends".
The first type just tried to get things done without "wanting more". That meant problems of markup, problems of CSS, visual incoherence, no care for accessibility and the application logic designed like a server app. This ends in annoying refactors and actual problems for the users.
The second type, are people I liked to work with. They might not yet know how to do things properly. (And nobody knows that always, obviously) But, they notice something is off or look for better solutions, so they investigate on their own. We talk about it and we create solutions that scale well for a great user experience, making the job both more productive and enjoyable during the creative / design process and the application logic implementation. Everyone complements everyone. (This is true for any kind of job though.)
Frontend / designer / backend they are categories to quickly get an idea of what a person is able to do. Obviously at the level of individuals, every person has its own strong points and interests while every project has its own history and architecture. Things aren't just black or white.
Personally, I have always been interested in both the engineering, logical part and the visual interaction one. I can't imagine putting myself in a job where I would be stuck with only one or another :)
I agree, but with this sentence where you can't imagine doing just one thing is where time will run you over. It was the same with me: I have started as a web designer and back then, at the beginning of first decade of 2000., web designers needed to know how to design AND to code (html, css, js, and in some cases even php, mysql...).
Because job became more complex, it was broken down in several large areas we had until last year - UX, UI design, and front-end. Rarely anyone mentioned php and mysql we had back then, since we have influx of many different technologies for that part of development. It was extremely painful for me that I was unable to apply my design knowledge and front-end programming, because companies were searching just for ONE of those areas.
Today we have to do this separation with front-end for all the reasons I have explained.
For the sake of sanity of all involved ;)
Thank you for your input,
Have a great day!
We're going through the same realization while restructuring our front end team ! The only difference is that we talk about "frontend dev" vs "frontend engineers" (but they cover the skills you describe)
It's great that you came to that understanding! Most companies and recruiters especially are still oblivious to all front-end titles we have today.
Goal of this article is just to raise awareness, but it remains to be seen how will we call these separate front-end groups.
There's definitely a difference between the two cases.
I've seen it appear 'organically' in our company as well.
I'm a compute engineer, doing frontend development for about 2 years now. I started working in AngularJS, without knowing anything about HTML, CSS, and JS. (C'est la vie). Before that, I was just doing some desktop applications using Java SE and that kind of things. After that, I introduce myself as an Single Page Application Developer, I knew a few things about React, and have worked a lot with AngularJS and Angular. The pattern is the same at the end.
Recently I pushed myself further into a real Front-end certification. I know there is a position for people that know how to style a web, and there is a position for people that know what to do to make that web works, but if you look, for example, for the Mobile Web Specialist, you will notice that you have to know both to get the certification. Of curse, it is mostly about code, but structure and style are as important as any feature of JS.
Make no mistake, you can do only HTML and CSS with Photoshop, and you also can do only JS, with little to none advance CSS. But to be a real Front End Engineer you should know how to do both.
Of curse, this is my opinion, but most of the jobs I applied to are somewhat expecting this.
Thanks for posting Vladimir! I see the distinctions starting to arise myself, with large co.s like Google, Salesforce, and several others hiring "UX Engineers" that are essentially Front End developers that work primarily with design teams with an ability to reach out and work with engineering when needed. I think this trend will trickle down and eventually the role of a front End Developer will be split into 2 as the breadth and complexity of front End work increases. With that said, roles and responsibilities are often designated by the companies themselves, but I see this definitely happening in the next 2-4 years for sure
Thank you for kind words and for understanding this problem David!
SPAs and microservice architecture moved some of the frontend development from the server into the browser. I don't think it has really changed the role of backend development at all (microservice architecture is just another tool for a backend developer).
This is a valid question.
My answer is - CSS still isn’t that complex to require a dedicated occupation, but I have no doubt that it will get there some day, maybe sooner that anyone expects. JS is still required for presentational purposes, animations and DOM manipulation, so this title wouldn’t be accurate.
Just imagine what will happen when web assembly comes into mainstream front-end. THE PAAAAAIN! :D
Division is clear.
IMHO, I think that we will be less exhausted from each other if we make a clear line between these two. We would be more productive with this division since everyone would do the job they like.
If someone likes to do both, great! But in time, it will be harder to keep up in the same way it is hard to keep up with being a web designer or full stack developer.
Backend development tends to be quite different, but (depending on context of course) can require just as much creativity as frontend work, while some types of frontend work might be very dull and repetitive.
Article wasn't a jab at back-end. One cannot live without the other one. It was meant to express that some parts of the back-end development have moved to front-end. Those parts are now being pushed onto front-end developers who clearly don't want to do that.
When I say "creative", in this context it means visually creative and artistic. That was always implied when it comes to front-end and web design. Of course, you can be creative in back-end, but in a more logical way.
Times are changing, so must we.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.