There is some sentiment out there that front-end development isn’t real development. It’s a swaggering, trollish sentiment. Still, it’s fun to puff our chests back sometimes. Let’s try to put a point on why front-end development is every bit as difficult and worthy of the title as any other subset.
This is a continuation of my post last week on how the expected skills of a front-end developer are hard to nail down and how different we all can be. That post struck a chord with a good chunk of readers, and the comments that came in were full of interesting stories and experiences about what front-end development means in both the technical and personal sense.
The practice of front end development is similar to playing the bass: it’s easy to learn but difficult to master. There is a lot more to it than HTML and CSS (which are plenty difficult onto themselves).
Chris posed the question on Twitter in fill-in-the-blank form:
Front end development is hard because _________.
— Chris Coyier (@chriscoyier) July 16, 2015
And while the majority of responses were certainly entertaining and LOL-worthy, there were some nuggets of wisdom in there as well. Let’s take a look at the common themes that make front-end development, uh, development!
We have to deal with cross browser compatibility.
Inconsistent browser behaviour
— Nathaniel Flick (@nathanielflick) July 16, 2015
This was far and away the most cited gripe in the group. While Internet Explorer continues to be the brunt of most jokes, every browser has its own quirks that often require special development techniques to overcome.
It’s rather expected of us that we know how to build websites that can work cross-browser. We should know what browsers support what and how to debug and overcome browser-specific issues. We should know how to do emulate or otherwise test on a variety of browsers.
We should know tools that help us with cross-browser problems either automatically or enable us to write code to handle situations of support and nonsupport of features. We should know how to do fallbacks. We should know about progressive enhancement and graceful degradation.
Cross-browser compatibility is a hugely complex development task.
Oh my, all those devices!
Varying screen sizes and browsers.
— Nicholas Bumgarner (@NickBumgarner) July 16, 2015
In addition to dealing with browser inconsistencies, front-end developers are also charged with developing for as many screen sizes, screen orientations, pixel densities, and input types as possible.
The burden of the massive landscape of different screens, browsers, and capabilities lies most heavily on front-end developers.
Frameworks, libraries, preprocessing, dependencies, plugins…
So many new things everyday and no idea what will become standard.
— dean (@visualcookie) July 16, 2015
All the lame frameworks out there
— Rick Blalock (@rblalock) July 20, 2015
Today’s development feels a lot different. The toolchain is a lot thicker. We’re making choices about build processes, which libraries to use, what languages to write in, how invested in future syntaxes we want to be, how much we want to depend on frameworks, which third-party tools make sense and feel safe to use.
Not only is it fatiguing to think about the choices, it’s increasingly difficult to know what the best choices are and if these choices are smart in the long term.
There are just as many choices, or more, at the front end level of development than there are anywhere else. Not to mention the landscape moves extremely quickly.
We’re the bridge between visual designers, back-end developers, and other disciplines.
because it doesn't feel entirely "front-end" anymore
— Ara Abcarians (@ItsMeAra) July 17, 2015
Many of today’s frameworks and CMS’s, straddle the line between lots of different disciplines. Front-end developers are right in the middle of it all. We’re ultimately responsible for design—how the site looks. We’re helping content people ensure they have what they need and they give us what we need. We’re working in templates prying out the data we need in the formats we need. We’re handling user input and ensuring it funneling where it goes for more back-end concerns.
You get confused between who you are – programmer or a designer
— Priyanka N Majumder (@PriyankaNM) July 17, 2015
The chain of blame starts with front end
— Chris (@chrisdebelen) July 16, 2015
Not only do we sit at the intersection of a lot of disciplines, there is some expectation that we know enough back-end languages to be useful. You’d be pretty sorry WordPress developer if you didn’t know any PHP. You wouldn’t be very useful on a Rails project if you didn’t know any Ruby or Rails conventions at all. The more you know, the more agile and self-sufficient you can be for your team.
Everybody and their dentist thinks they can do it.
It's easy, make it like this..wait-now like this…ok now that we're done, can we change everything to this? it's easy…
— Andrew League (@aleague888) July 16, 2015
The barrier to entry for front-end development is fairly low. Everyone has heard of HTML. They “know enough to be dangerous” as it were. Because that barrier is low and because it’ so easy to dabble, it makes sense people assume there isn’t that much to know and that front-end development isn’t particularly difficult.
Naming things. And we have to name a lot of things.
You have to name things.
— Stuart Robson (@StuRobson) July 16, 2015
I imagine you’ve heard the maxim about naming things being one of the hardest problems in computer science. Us front-enders are naming things all the time. Class names and IDs, data attributes, file names, communicating patterns with your team. It’s endless. It feels like there are dozens of name choices on an average day.
Not to mention the task of copywriting often falls to us, which isn’t quite naming but is in a similar vein of difficulty.
“The right way” and “the wrong way” aren’t as cut and dry as with back-end development.
No standard production pipeline. No reference browser implementation. No right answers, but tons of wrong ones.
— Pelle Bjerkestrand (@pcbjerkestrand) July 16, 2015
In back-end development, if what you are expecting to happen happens, you’ve succeeded. Surely they are different ways to get there, some better than others. But in front-end development, the paths to completing a task seem endless. Even if you’ve seemingly succeeded, it can feel like just a matter of time until a bug is found in how you’ve done it.
CSS is very hard to test.
Bugs can be subtle, confusing, and unexpected. Worse, a seemingly little change may have an adverse effect in an unexpected place where you don’t notice until it’s too late.
There are linting tools, which help a little. There are some style guide enforcement tools, but they don’t really help enforce more important things like adherence to naming standards.
Front end developers need to hold a very strong understanding of the entire website in their head in order to be most effective and efficient.
Performance is 80% on our shoulders.
The rule of thumb is that 20% of the waiting for a website to load is from back-end concerns. Once HTML document has arrived, the rest of loading time is the concern of front-end developers. What resources are loaded, how many resources are loaded, how optimized they are, in what fashion they load in and how that feels, etc.
It’s where accessibility happens.
Building sites that are visually stunning is one thing and the accessibility of them is another. Designers care very much how users interact with a site and that might not always be a visual interaction. Designing and developing for disabilities is a discipline unto itself, but is most tightly tied to front-end development. Accessibility has its own set of specifications that sadly aren’t typically taught along with traditional front-end development training.
It’s hard to hire for.
Front-end developers are typically the hardest seats to fill.
And, of course…
Because we make it hard.
— (@mikeyb) July 16, 2015
So what do you think? Is front-end development “real” development? I’d like to think so and believe the feedback provided here—especially by others—is solid proof. Are there more things that make it hard? SEO? Is this a conversation worth having?
Well, this one is an amazing post. There are just so many truths. So many possibilities and options and things, ways to accomplish a given task. Front End development has so many tools at its disposal, but choosing the right tools and using them are completely different things. We really make it hard.
I’m not sure where this “front-end development is not real development” idea comes from. It’s almost silly to try to “prove” that front-end development is development. There’s nothing to prove, of course it’s development.
With that said, although I agree with most of the points in the article, some of them really irk me:
A front-end developer has a subset of the skills of a full stack developer. By this logic, full stack developers are impossible to hire.
It’s not really about finding front-end or back-end or full-stack developers. It’s about finding good developers. Good developers are the hardest seats to fill.
The front-end part of a full-stack developer will make up about 1/3-1/2 of the skills of a professional front-end developer. Specialisation allows you to go deeper where everyone else expects their shallow knowledge to be all there is to know.
The problem is, you need people who take care of the back-end and the middle ware before you can specialise yourself to become a frontend developer. Thus, to even become a frontend developer, you need bigger teams.
Since before frontend MVC, most development was in the backend, you’ll find much more good backend developers than frontend specialists.
There aren’t too many bigger frontend teams. Those that turn out frontend developers usually don’t want to lose them, so it’s hard to hire them.
Source: my experience; we’re currently trying to hire 2 new advanced/senior front-end developers.
Heh, not sure whether to agree or disagree…
I’ll go with agree – what you said there proves my other point:
A “full stack” developer with only 1/3 or 1/2 the skills of a front-end developer isn’t really a full stack developer – to me – I’m sure others may feel differently.
It’s the “jack of all trades, master of none” vs. “jack of all trades, master of some” discussion. I like full stack developers that match the second one.
Front end development is difficult – basically – because we have to know everything, and everyone seems to think we know nothing. I’ve noticed the payscale differences between back end and front end developer. It bothers me because of the wide range of technologies (new and otherwise) that I have to know, whereas most of the backend developers work with two, maybe three (depending on usage of databases and such). Plus, we both had to get Computer Science degrees, it’s just that I found myself doing something different.
We’re expected to know our data/control structures, but also nitpicky nuances with three or more languages, in addition to 5 years of experience with the latest framework that debuted last month, and be excited about what’s happening in ES8 (with ES6 only beginning to become supported). On top of that, a back end developer is often going to try to write our workflow for what they think is best, which makes everyone upset because they don’t understand why we told them they’re wrong because they don’t understand how cascading works and why we think that it should be done in a way that they think is wrong.
This may or may not be based upon experiences.
As you point out, front-end devs are the bridge between many other disciplines that make up a web project. A good front-end developer must become a project manager to some extent and have a good understanding of all the discplines that filter through them to make the final product. Rarely do the salaries offered for front-end developer positions take this into account.
Also, many of the previous applicants were rather framework/toolkit users than frontend developers; they couldn’t even write a simple tab component in JS/jQuery, let alone more complex code.
Are you hiring in Ohio or remote developers?
Are you considering remote work as an option?
You have a certain range of knowledge and abilities. I’m assuming you’re good enough with them to pay your bills. Why do people care about titles in our business; Isn’t it complex enough already?
“Developer” is not a too precise term, “plumber” is. As long as your profile meets a market everything should be fine.
And, by the way, real programmers use butterflies.
So does that mean that front-end devs can only be “real programmers” if they write a fork of HTTP that delivers their web packets via butterfly?
Also, from what I understand the issue raised here isn’t usually about a title – it’s about a level of ignorance in some of those who hire and with with front end developers.
Being a front-end developer today means having to know a little bit of everything. In addition to HTML/CSS/JS, you are usually responsible for design decisions when it comes to responsive. Designers still make PSD mockups for desktop layouts, and we then translate them. You have to cover accessibility. Also site performance.
Work with WordPress? Then you’re responsible for PHP, MySQL and database issues. We usually end up migrating the site from staging to production, and while some managed hosts handle this, there are many cases where this is still manually done.
Of course, we need to understand Photoshop enough to interpret colors and opacity levels, translate font-sizes from pts to px, and bust out the ruler tool for measuring padding and margin lengths.
We also take care of UX, translating interactions in CSS animations, and often times write copy for sites.
But anyone can do it. laughs
Spot on !
Get out of my brain.
So you’ve admitted that your job is only really like 50% development, 50% balancing your disciplines. Ah-ha!! You’re not REALLY a developer… sarcasm
As a back-end developer, I say software development is easy — at least compared to front-end development, anyway. Dealing with JS is by far the easiest part of front-end development. Everything else is much harder!
:) This made me smile. Thanks for that. I have heard this expressed by other back-end developers and it surprises me. I think it’s that FED and BED just think in different ways — FED thinks in terms of the visual and BED thinks more in linear/math-oriented terms, not so much the visual IMO. So fascinating!
In my office, we have a web developer and I’m the Webmaster. Despite the ancient titles, we effectively separated to front end (me) and back end. I can tell you that as the one in charge of the front end, I needed to level up in a big way on the ever changing HTML/CSS/JS front, but also had to become proficient on the back end (we’re a ColdFusion shop) and interacting with the database. Plus I’m kinda the only modern on-campus Expert of all thing web, so I’m looked to for far more than my ability to write a stylesheet.
It’s a hard job, it’s almost certainly (IMO) an evolution of the Jack-of-all-trades Webmaster. But I’ll also admit that some of the (good) back end guys are wizards!
To be honest I kind of miss being a Webmaster. It just sounded so much cooler.
Granted, tack “master” onto anything, and it gets 100% cooler.
I think the prejudice against front end development comes from two ends of the spectrum. On the one end, lots of people get started with a little JS/CSS/HTML and it’s tempting to think of front end developers as being those novices who are constantly starting. At the other end one can recognize the complexity of front end development and question the sanity of people who want to live in the “most hostile development platform in the world”.
Front end development is hard not because the core elements of the problems people are solving are hard (essential complexity). It’s because the environment has evolved in such a way to make even reasonably straightforward problems a hassle. (It’s the essential vs accidental complexity described by Brooks.) And then, if you’re trying to solve a problem that is inherently complicated by itself, and the environment adds all the extra difficulties enumerated above, wow that hurts!
I like the article and justification behind it.
But what I would like to think is no matter how much of front-end developer you are (beginner, intermediate, advanced)..keep your head in other things as well..new frameworks, new syntax, new js libraries, mobile apps development…database development…………………………..
Just so if the time comes and you are asked to step up the role or better job position at some place..at least you wouldn’t have to hesitate..and then there’s always front-end developer experience to back up your complexity…. :)
As a proud FED (and as a bass player, too) – I couldn’t phrase it better. I remember getting angry every time smart ass back-enders used to downplay front end developers and development in general (well, maybe back in the 90’s they had a point). Seeing them getting frustrated after asking them to do some simple stuff on the front end side, made them realize that there is way more than meets the eye in it, and this, I think, is why front end development is hard to master; whereas most programming languages are very opinionated, have strict documentations and most of the times offer black and white solutions to common problems, us front enders have to learn it the hard way and along the way, after gaining decent experience and insight that we have so many responsibilities beyond just “drawing staff” on the screen.
It is one thing to do front end development, it is a whole different story to be a front end developer.
A developer is a developer is a developer. :)
Different skills, same job.
I think that the skills, experience and tools that can be used to segment development into front-end, back-end and full-stack have been and still are opaque – to developers and to the companies that want one. Self identification is usually pointless except to insiders who can wink and nod to each other and bemoan the “informed” ignorance of hiring agencies or corporate job-opening-responsibilities authors.
Developers are not absolved from contributing to the ever blurring lines because, let’s face it, if we need a job we will apply for anything – specifically front-end developers. Historically (and by history I mean a past more distant than a couple years ago), front-end development meant the now vulgar business of being a webmaster. Even when they existed, webmasters were as rare as unicorns because no one ever mastered the Web. The term held a broad set of skills that included back and front-end specialities and generally required an ability to adjust and adapt to the avalanche of “the latest”, “the best” by extrapolating from the familiar. Those adjustments would be made in the context of their projects, perhaps properly, perhaps not. With no time to tear down or become an expert, success was achieved if it worked and didn’t break anything. This is called dabbling. Webmasters were dabblers.
Successful dabbling long held sway. It was so successful that the myth persists to this day, that being that a single person can manage the Internet presence of a small to medium-sized company. It will continue to persist as long as these companies want dabblers (even though they don’t understand what they want) while every developer at every level applies for them, thus reinforcing the the notion that the market for developers is homogenous.
And we wonder why companies have trouble hiring a developer. A company looking for a front-end developer is usually looking for someone who can manage their particular hodgepodge of eccentric, oddly intertwined, “you had to be there when somebody ‘absolutely insisted’ on something” that started the breakdown of standards that has produced a monstrosity only understood by a single person.
In my experience, for non-tech companies, it’s only when the monstrosity breaks free to terrorize the company that radical structural changes happen, starting with a recognition that their developer is probably not a great database admin or programmer or software engineer.
As a result, because a breaking point has occurred, true back-end specialists are introduced rather suddenly who, after about 5 minutes, curse the person responsible for the mess rather than seeing in the mess the magic of maniacal genius struggling to accommodate and harmonize what should have been the product of a coordinated team of stackmasions.
ALL that to say, if job hunters don’t know what they need, if our friends, family and IRS don’t know what to call us or understand what we do, I think that’s because we don’t know either and we don’t know precisely what we should know.
To all you full stack developers out there, you are very admirable. Enjoy your heart attack, nervous breakdown and your God-like status – the latter because you get to tell your bosses how things will be done while, of course, the community of developers winks and nods.
This post is as pathetic as the people who provoked it..
It’s totally fine to feel that way about the post and the people who provoked it, but so are opinions without justifications. If all thes things are pathetic, at least explain how they are and perhaps a good dialogue can stem from that.
Front-end developer here, my team and I work on a big Ember.js project. We have to display real-time data (lot of data!) and I must say that probably we have harder times than the guys of the backend :/
I totally know your pain and feel for you. Been there, done that.
I totally agree in all statements of this article, and I think it is interesting to see that we have this tendency of putting more and more of the server-side logic onto the client using JS. It forces backend developers to dig more into the front-end part of development.
Unlike any other job position, being a front end developer you always have to keep on learning, evolving and adapting. It is severe constantly changing harsh environment.
My favorite quote of all time.
Your comment causes me to lament the lack of a like button in the comments. :D
Thanks for the article I enjoyed reading it. I have to agree that front-end development is an extremely difficult job and involves constant learning and is ever evolving, this can be hard but it’s also part of the fun, we are constantly pushing ahead and striving to improve, we have jobs that actively encourage that and require us to to nimble and agile, we can never rest or we fall behind.
My only niggle is that I feel there is a sentiment that abounds and is stirred with something like this that makes one want to puff their chests out, look down the corridor at their co-workers and say things like ‘I can do what you do’, ‘I’m really actually more valuable to the team’ or ‘why are you on more than me’ even better ‘I know more and can do you, you just do one or two things’.
This is counter team and if we truly wanted to build great products we would shy away from trying to be the project hero and try to be a better part of the project team. Developers, front-end developers, designers and even project managers are all players on the same side we have the same core goal, build a product. Each of us thinks our area is the most important(I suppose that’s why we choose it to begin with) but we need everyone working together so a to not just build a good product but a great one.
Without a great hacker on side we have slow data calls, poorly structured api and more importantly we have to do that stuff(which I don’t enjoy). A front-end developer who is able to design a site might just be able to do that, but what do they know about branding are you aware of how to actually sell that product because that’s the goal, are you just reading posts online, checking out 2015 web inspiration and then designing the site, that doesn’t produce a great product at least it might have good typography but does it meet the conversion goals because that’s good design must do. Like wise a designer who doesn’t bother to learn and html, Css, Js is probably going to find it hard to design a good site, only made worse if they then just sit at their desk and never ask the dev team if what they are doing can be done or if there are obsticals.
I guess what I am saying is we all have crossover we all share some skills, neither is better and rather than stand around comparing who’s got the bigger tools we should be focusing on how we can be better teams, how we can Communicate and communicate together better to share the knowledge we have I order to produce not good products but truly great products together.
That’s how I see it anyway, thanks again for the article, it was a good read.
Great points, except… what ever made you think everything is cut & dried on the back end? Bahahahahaha….
Well the .NET library and visual studio comes very close to it ;)
But yeah its the same as front-end. It depends on the project.
Never heard of this discussion and I would not even give it a full length article. All backend developers around me agree that it’s harder to develop in frontend than backend and that’s why we have a lack of good frontend developers. And customers and designers around me do not even understand the principles of backend and frontend development so they don’t have a point to shoot at this topic. I feel like this article is just for making a counter argument for the rude statement of a single “hacker kiddy”.
of course front end developers say their job is hard. it’s because they’re front end developers :P
Got to agree with many of the comments here. I don’t think any legitimate back-end developer would dispute that front-end development is real, hardcore development. Especially now with business logic being moved to the front-end with Angular and other SPA libraries. And let’s not even start on isomorphic (http://isomorphic.net/).
Let the flame war end and let’s all get back to doing our equally complex and important jobs. ;)
PS – All this back and forth immediately brings this video to mind… https://www.youtube.com/watch?v=2Tvy_Pbe5NA
As a front end developer, I want to wholeheartedly agree with this; however, I still think a vast quantity of front end devs I’ve encountered over the years wouldn’t quite quality for all these.
I’m surprised no one has brought up the non-backward compatibility and escalating complexity of HTML5.
Changing basic syntax like not requiring tag closure and allowing mixed-case tagging does not make my job easier. Who thinks those are good things?
I used to be able to increase accessibility of a table by adding a “summary” attribute to the table. Now instead I have to wrap the table in and add a
figcaption> statement – or… wait… Do I need to close or not?
And of course I now have hundreds of pages that no longer validate.
Subscribed to your mailing list.
“Someday I’m gonna be a real boy” – Pinocchio
But for real, it’s the only form of popular technology that is living in the past.
CGI production is cutting edge,
video game development is cutting edge,
audio processing is cutting edge,
surgery = cutting edge,
font-end web graphics & visuals = 20yrs behind.
Of course it’s real development, but how can it be seen as something serious when we the developers allow it to be sabotaged by special interest?
font-end web graphics & visuals = 20yrs behind.
Well not everything? We allready can do amazing things the only problem is browser support.
If you have the latest chrome (64bit) try my page (www.itsleon.com heavy website so i can take some time to load and render, Yup render as in a 3d map you can walk in.)
I’ve been on both sides of the interview and I don’t think front end people are hard to hire, I might agree a lot of developers are not necessarily good interviewers or good interviewees as those are skills, but to me it’s never been easier to evaluate a developer’s strength and experience/exposure than today. If screening done right interview in person should boil down to culture fit, and maybe some think quick exercises, maybe something based on their github portfolio or something they claimed proficiency in, as well as an exercise maybe where you introduce something new to them and see if they know where they can apply it.
But please don’t fly someone in and them give them a written test that’s a red flag, never having a candidate code is also flag if more of developer than PSD->HTML/CSS.
From the beginning there was a portfolio, even those with school projects in place of commissioned ones, and now there is github, whether a developer started own repo, or forked and added a feature to an existing one, or fixed a bug in an open source one etc..
Most people have smart phones… so if you are a mobile web developer than have them check out your stuff during the interview, and let the links drive the interview, what you used, maybe why you are proud of it… or lessons learned, what you’d do differently the next time.
There are great tools to do either record them code or watch them live code (codepen.io, coderpad.io, collabedit.com, google docs not ideal but works too) or having candidate use what ever tools they are most comfortable and timeboxing the exercise.
There are more meetups then ever from codepen meetups to [insert framework here].
There is stack overflow. There are local hack-a-thons (as well as at universities) and government code challenges and growing number of great front end focused conferences.
The other thing to focus on as an interview as interviewer is try to find the closers, problem owners… Sometimes there are really bright people, that are either apathetic or over think, or for whatever reason don’t contribute what they are capable of, whether it’s mentoring or closing stories/tickets…
If you are dealing with data structures, program control flow, business logic & application logic then you are a ‘real’ developer. If not then you’re configuration person.
I find the hardest thing with development is how to structure the code to solve the problem in such a way that is clean, testable, maintainable and will perform. What are your classes? What are their attributes and methods? How are these classes interacting with the other classes? On top of that you have to deal with app security, asynchronous web service calls, event handling, exception handling and logging.
With pure HTML & CSS (configuration) you don’t have all of this.
Sure, you have to determine page layout and dealing with CSS, cross browser and different screen sizes is difficult but it’s not the same as building all of the software that makes the app run.
Woah the feels. Thr more you learn something, the more you feel an idiot.
if you know the basics, all development is the same.
data structures, naming conventions, architecture, algorithm, etc.
so yeah, Front end developers are Developers.
This is a great shoutout to all the developers out there. Will definitely be sharing this to my co-developers in our very own web development company (https://www.createaspectacle.com/) so thanks much!
In my experience, back end developers are akin to back seat drivers, and usually follow a path of least resistance. To them, basic forms and elements are just fine, but for us front enders, they MUST be styled. Why back enders feel they must drive the train is anyone’s guess, but it may be that what they really want to be are artists, and bristle at the thought of someone else tweaking the look of their code. It’s what we do, really: tweak and refine the look of the voodoo they call PHP or whatever it is they write. But that they take exception to us front enders being called programmers is okay with me, because I know it’s the way it’s always going to be.
No standard production pipeline. No reference browser implementation. No right answers, but tons of wrong ones.
yes yes and yes
finally a place to vent!
Sadly I’m one of those people who love to see what others can achieve by writing code. Somehow it looks exiting! typing some code, flipping through windows running your code and something amazing happens, you are creating, solving, advancing – Brilliant!
Being one of those people has been my dream an purpose for many years.
However, even by being smart enough to hold a Bachelor in Engineering and a Master Degree in IT. I am yet to reach the point of feeling comfortable producing quality code and tackling medium to big projects- sad :(
So what is wrong? like Paul Ford describer his battle to become a developer in his enlightening article: “What is Code”
Well, I have not unveiled the magic. It has been 5 years and it still feels unnatural… But why? the passion is there, the effort is there, also is the time and the experience- I have been working as a front end developer for two years and built dozens of websites, in many frameworks and forms.
Hell! what is wrong?
So before digressing even further, I would say. In some cases (like mine) front end is NOT development. But for the guys who have Mastered coding, it is true development and as respectable as back-end, software development or any other.
To you all my admiration. Because in this regardYOU developers of all kinds are superior to me and most people.
I have an idea, how about companies investing in their employees and hiring someone who has the fundamentals and is teachable. Train them to be what the company needs. Every company has specific needs and works with various software and hardware; there are many computer languages, and devices. One person can not possibly know everything. Working as a contractor I have had to learn specific software a company is using. I am very teachable; I would like a permanent job; I wish a company would be able to see the potential in me and train me to be exactly what they need. There isn’t a lack of good frontend developers, there is a lack of interest on the company side to invest in teaching their employees to be exceptional developers.