One idea that has lodged itself into my brain recently (largely from this panel discussion) is how a front end developer needs to be aware. In a general sense, the front end developer is positioned in the middle of lots of other jobs. Everybody involved in a web team ends up talking with the front end developers. That makes sense. The front end developers create the actual thing people interact with. Everything comes together with the front end developer. Perhaps that’s why it’s such a fun job!
Because the front end developer is this central hub position and dealing with lots of different people doing lots of different jobs, the job can be done better if they are aware. Aware of everything else that makes a website tick.
A front end developer is aware of design. If they aren’t a designer themselves, they know how important design is. They have good taste in design. They know about the tools involved. They know where the design role fits into the process.
A front end developer is aware of the back end. If they aren’t a back end coder themselves, they know how important the back end is. They know what the back end is capable of delivering and what it isn’t. They know the responsibilities back end developers have. They know the languages involved. They know how to ask for what they need on the front end.
A front end developer is aware of the network. They know that websites are delivered over the internet, a network, and that that network is a wild and sometimes unpredictable place. They know networks can be on or off, fast or slow, and reliable or unreliable.
A front end developer is aware of performance. If they aren’t entirely performance focused themselves, they know that performance is vital to a website’s success. They know performance is a complex world onto itself. They know there are quick wins and long term struggles. They know that so long as the back end is fast, the other 80% of the time a website is loading is a front end concern.
A front end developer is aware of content strategy. If they aren’t a content strategist themselves, they know that websites live and die by the content on them. They know that the lack of a content plan can cause problems that you may not be able to develop your way out of. They know that the people that use the website is what matters and those people need to find what they need and expect it to be in good shape.
A front end developer is aware of databases. The content lives there. The content must be in good shape. The front end developer can only work with what comes out of those databases. The front end developer needs to combine what comes out of those databases with templates to make the website happen.
A front end developer is aware of testing. So many kinds! Integration testing. Regression testing. User testing!
A front end developer is aware of systems. They might be responsible for implementing a design system, or an icon system, or a coding style guide. They might have to create those systems themselves. They might need to document those systems.
A front end developer is aware of devops. They are writing and committing code along with every other coder on the project, so they need to adhere to the same setup as everyone else. If they didn’t write the build system themselves, they know what it is, what it does, and what it is capable of. If they didn’t set up deployment themselves, they know how to use it.
A front end developer is aware of servers. Without them, there is no website.
A front end developer is aware of accessibility. If they aren’t well versed in building for accessibility themselves, they know that it’s important. They know how to test for it. They know who to talk to about it. They know there is quick wins and long term struggles regarding it.
A front end developer is aware of the device landscape. They know the web is everywhere these days and a good website needs to meet users there. Big screens, little screens, touch screens, far away screens, black and white screens. The front end developer is aware of the unknown.
That’s just a handful of the things a great front end developer should be aware of. The more the better.
All this, of course, on top of their own direct job. HTML, CSS, JavaScript, responsive design, libraries and frameworks, communication… this list is scary-long itself!
Couldn’t agree more. I think every front end should learn the basics of UX Design in Photoshop, Axure, as well as backend & data modeling/build a simplistic dB, just for a better understanding.
Wow Chris. I have thought of this time and time again about how a front end dev is aware of the inner workings of a company. Typically we have a beat on the business side of things as well. This is because the face of the company is a look at how the company works complete with its direction, products and leaders.
Several companies I’ve been at I have got a sneak peek at upcoming changes and development that others are blind to simply because of being the lead front end.
Thanks for this. Interesting perspective and good writing.
I think you should talk to Jens and join http://coderesponsibly.org/ :)
great write up as always Chris! no doubt, Front end developer are indeed like a Presentation of your business!
I could never put it into words simply because there is so much we are part of, but you nailed it.
So true. I think front end developers are subjet to the Lion’s share of the drama as well. Yet they pay us $15 bucks less per hour then the backend types. Sigh.
Most of these points could be said for every other developer as well.
Or most other positions within a company. Everybody needs to be aware of everybody else.
Wholeheartedly agree, Chris. Reading this it’s not hard to see that in some ways the front-end developer is the new breed of fullstack developer.
Try “engineer”, not developer. I consider developers to be more of the “follow-through” type than being as communicative as an engineer.
The paragraph “A front end developer is aware of systems” is not complete. Seems like you had a small “cut and paste” problem.
Wow, bang on Chris!
I always wonder why (as the front end developer) I end up as the mediation between all the other teams. This list is why. You could add Negotiator as well, so much of the job is negotiation because there aren’t many people who understand all the systems together and can compromise between teams.
Brilliant. In my mind once a Front End Developer has mastered awareness in these areas they have graduated to a Web Architect – someone who can responsibly architect for the World Wide Web.
We talk about performance in terms of how fast something loads. All of us do. But if you look at the definition(s) of performance I think it has more to do with whether or not a given task is accomplished. In other words, web performance has a lot to do with stability. Things like if the website still works in old browsers or if JavaScript breaks. Because of this I think there is a correlation between performance, stability, accessibility, and optimization.
I come from a background in Agile methods and we talk about this person who is aware as the Generalizing Specialist, or the T-shaped person. This person is a craftsperson and is excellent at what they do. They are also very interested in the supporting roles around them that they work with every day.
In the design & marketing world, where a lot of your readers probably reside, this type of person is especially important in order to create high performing teams. It’s not just limited to front-end developers though. All team members need to know their specialty, but also have a basic awareness of their team member’s specialties.
I would encourage all team members to focus on their craft, but learn about the craft around them. Designers should take a little training on development. Developers should take courses on design. This makes collaboration easier for everyone as you can speak somewhat of the same language and anticipate the needs of others on your team. Great teams are filled with T-shaped people, across all disciplines. And they build amazing things and take great pleasure from working with each other.
Jonathan Hyatt
After reading, I found myself for the first time contemplating what it is that has made me so successful as a developer. Particularly over this last year or so there has been an emphasis on “ability to code” which I believe largely stems from the huge influx of aspiring enthusiasts out there. It is all too easy to diverge from other character traits which are beneficial. Going off of what Chris mentioned:
OCD: I have always been the type of person that cannot deem something “completed” until it is juuuust right (e.g. one of the alternate featured product images appears to be just a hair short of its parent container for tablets! There is a stylesheet being called on the account.php page which bears no purpose other than to tease me as if saying, “watch me take up an extra .2546 seconds of your visitors time when viewing past orders). That anything other than perfection signifies completiong would be incomprehensible.
Emotional Awareness: Yes I know this one sounds odd, but I have always had a knack for recognizing how things reflect on an individual’s demeanor. Front-end tasks are easier as its sole purpose serves that of the visitor afterall. I compensate for potential issues that might arise for the various design or sales teams without ever really giving it consideration (e.g. the location of the payment methods during checkout is not immediately obvious. Chances are that the Sales Reps will get an earful from our customers which not only makes their day less pleasant but ultimately ends up trickling back down to me).
Fearlessness: I LOVE the rush felt when offering to “venture into the unknown” …whether that be creating a new feature on the homepage or figuring out new ways to improve use of the CDN (e.g. the way that a given user/admin/customer/author/affiliate sees a given page versus whether that page must be loaded over SSL).
Hungry: I recently discovered my love of Chocolate Chip Chewie Bars, but I’m also talking about the other kind of hunger: the desire to learn anything and everything! I have recently (this past year) invested time in various marketplace API for Jet.com & Amazon: particularly finding ways to update and add my companies inventory on the fly in a hassle-free manner (anyone who has become acquainted with Jet.com will attest to the Seller process being borderline impossible for anyone who lacks at least a moderate amount of experience to get their stuff synced up). The more familiarity with a given interface only increases the likelihood of being able to improve/adjust it down the road.
Statistical Junkie: I am fascinated by statistical data of any kind. The notion of being able to predict how a human being might act based off of trends in data gathered from fellow visitors is one that continues to amaze me. Having always found mathematics of any kind enjoyable (high school, college), creating meaning from the likes of what Google Analytics acquires takes very little effort.
I’m sure I could go on but I already feel like you covered the bullet-points , so I’ll stop now. Many have been invested in the programmer/web developer path purely for economic reasons (the cost of a good college education is absurd nowadays!). And while I hold no grudge towards such persons, I can’t help but feeling at an advantage. Being able to come to work every day and feel like a kid in a candy store is magnificent! Thanks for the insight Chris.
I don’t think frontend developer is any different from full stack developer . They were just assigned to do a specific sets of tasks. If you’re a good engineer, you ‘ll do well regardless. Lastly, it comes down to how much you care about the product and how well you work with other people. Just put a consumer hat on and I’m sure a good full stack developer will do just as well.
Have to disagree with this. It is highly unlikely a good front end developer can get by without a solid understanding of the rules of design. This and the many other unique responsibilities that a fall under the front end developer don’t come easy to a lot of people. On the other side of the coin can most programmers design… or can they even be relied on to sign off on a modern UI? I don’t think so, and honestly it feels hypocritical to expect that front end devs have to be on the top of their game plus everyone else’s. A Java/Python/C# developer doesn’t have to be at the same the level on the front end so how does it make sense to have it be the other way around? I would agree that things have changed and it is now important that a front end person to have deeper programming abilities. But as the requirements of computer science plus front end specific skills and talent add up to be much bigger than most other fields, a front end developer’s real value needs to be determined with balance in mind.
I would consider myself full stack. For a year now it’s been all front end stuff ever since all of the worlds deemed themselves capable of running a successful e-commerce business. I could never devote a lifelong career to the front end, but will gladly ride the wave for a hefty side-income while it lasts. So I would agree that as a guy with substantial backend skill, there would appear to be no difference.
Regarding design, I’ve never invested much time into it, relying much more on analytics which has never done me wrong. …perhaps down the road when there are thousands of sites for any given market.
Off topic, but it drives me insane that there are still so many recruiters/job listings for devs to essentially run a business (build the site, maintain it, SEO occasionally, etc.) for the likes of $12/hr. That is unbelievable to me.
@ jimmy I would say you sound like you’re in a different market than I am describing. Nowhere I’ve seen are companies expecting to find enterprise level talent for $12 /hr. If you’re talking about online freelancer websites and offshoring, I could see your point. Those clients are much less particular about design aspects. But in the market that I’m aware of and I believe the article is addressing (remember that this site is called css tricks!) front end specific skills and talent are VERY important. The problem as I see it is that Front End Developers in big city markets like Silicon Valley have lately been raising the bar on their standards for front end developers to be the same as other engineers… even though they must have a broad range of skills that aren’t expected of other groups of engineers. I could consider myself Full Stack too btw… and I’ve been doing this for a loooong time.
@unleashit I felt a need to respond as to my prior comment… I am fully aware of this website and the market it addresses, for I too have been around since its beginnings. And I must also admit to being curious as to where you are employed that a front end dev has to be so acquainted with design as mentioned by you above.
“Front End Developers in big city markets like Silicon Valley have lately been raising the bar on their standards for front end developers” Interesting point however I would think the main issue would be the lack of any system to gauge a potential employee’s skill/ability/etc. Short of doing problems on a board in C++ or building websites from top to bottom, there really is no way to easily find the right person these days. I would imagine considering your comments about designs importance that you work with smaller sized companies, yes? In larger organizations I have yet to see a front-end dev held responsible for the designs that go into a particular project… that’s why designers exist right?
So you think that requiring front end developers solve C++ challenges on a whiteboard is a good way to access their skills? That’s exactly the mentality I’m speaking of. It comes from hiring managers who are from CS focused backgrounds who are tasked with creating the company’s proprietary algorithms. They usually don’t know enough about the front end to even think of an appropriate way to access the candidate. Another problem is the fact that there are benefactors to every caste system. That’s what caste systems are for! Heck, who doesn’t want to influence how the heap is seen by others, if they have currently at the top of it (having the attention of the business)?
Eventually I do think once the stats are properly measured and start to roll in for the “full stack only” type teams, companies will buck this trend and realize that putting people in the roles that they’re good in results in much more productively than trying to make it one size fits all. Of course having a design background helps in a front end developer. They don’t always have to “design” (although the ability to design can of course help land many types of gigs) so to speak. But unless a simple bootstrap prototype is where the bar is being set, you’re going to need to have an awesome eye for design in order to properly implement your comps/prototypes. If you don’t, your company will be spending much more time than they should be on QA round trips. Design is by no means the only front end specific valuable skill, as mentioned in this very article. Have you looked around this site and on places like code pen to see what front end developers are up to? Amazing stuff right? Not just the flashy stuff, but plenty of practical css tricks that are hard won and used in everyday production work. I doubt I’m the only one who realizes there’s quite a lot of value to be had from deep front end specific focus. And last I checked, C++ (stubbornly as it sounds) will refuse to run in the browser ;-) Checking for C++ (or Java whatever) knowledge does one thing and one thing only: roots out the self-taughts who don’t have a CS degree. Even if they’re good javascript programmers. The agreement that this is a good thing is only valid if you’re either a) you have ignorance of the real requirements of frontend dev or b) you like to keep the status quo.
Anyway I’ve made my best effort… Here’s a good read for you. I think this article does a much better job than me in trying to explain the disconnect of the hiring process and what front end developers/engineers actually do…
Make totally sense. After all front end is the window (and mostly the only one) to the company – so it has to reflect the company as good and broadly as possible.
The list definitelly can continue. What I personally would add is aware of analytics and rigorous understanding of data.
Awesome article. What you’re saying is that we need to be generalists with an expertise in at least one of the skills. I think this is true for most professions because we work in ecosystems. The decisions we make affect other decisions made around us. Being conscious of this allows you to better communicate opportunities and pain points.
Great description.
Front End Devs Rock!
Thanks :-)
It disturbs me that most developers are merely aware of accessibility; it’s a legal requirement to make a website accessible in the UK (2010 Equality Act), and yet they’re still very rare to find.
Agreed Phillip! It is also unsettling to have to even bring up that there are laws when advocating accessibility because fundamentally accessibility should be a design concern not a legal concern.
This descriptions seems more the one of a fulls stack engineer… I’m a frontend dev and I barely know how the backend of the app I develop works and I have no idea about how the server is configured. Don’t ask me about databases because I just know which technology we use, nothing more.
Even so, I think to be a good frontend dev, I’m focused on my area of competence and the stuff works good.
I’d put it vice versa:
Name a subject we shouldn’t be aware of.
Development ist not just about feature implemention, it’s an integrative job. Being aware of everything is impossible, so you’ll have to maintain your personal “awareness mix”. This might define your profile much more than any technical skills. IMHO “That’s the person who helped us understand” is much more worthwhile and pleasing than “That’s the coding person”.
Word. I started as a sytem admin, then a backend dev, now front end. I use all of my past experiences to develop good applications. Yes = a front end dev HAS to be aware.
Very good list and enjoyed reading. Nice work!
Well said. These are things I’ve thought in the back of my mind for a long time.
(I wish I could put this next comment in very small text but Markdown doesn’t seem to have a way to do that; the phrase “onto itself” should be “unto itself.”)
+100 Printing this and sticking it on the wall in our office.
Enjoy this article. Every point is really good and picked something as a front end developer.
Thank you! That is all.