Thanks for all the questions! What are your opinions on utilising data attributes for styling? (such as http://codepen.io/SudoCat/pen/wzBzoG - shameless plug, I know, but a prime example of what I'm talking about) The purist in me doesn’t like it. Data attributes, as per the spec, are: to store custom data private to the page or application. They’re a store, not a hook. However, I’m starting to soften that stance a little. If you want to style something because it contains certain data, it might be a good idea[1]. However, using them where a class could/should have sufficed is probably not the right way to go. A lot of people slam unqualified attribute selectors and wildcard attribute selectors, but they provide a huge amount of power to us devs, especially helping make our CSS more Object Orientated - where do you stand on the matter? (Kind of related to the above question) As above, if a class could have done the job, and you’re not actually storing data, then a class it should be :) I know you're a huge BEM advocate, but what about SUIT? At the risk of trivialising the work that both Yandex and Nicolas do, I’d argue they’re both different flavours of the same thing. The only thing I’m interested in is the fact that you’re using a naming convention at all (and you’re using it uniformly and consistently). How do you deal with the horrors of JavaScript/CMS plugins injecting their nasty markup into your projects? Usually I just Deal With It™—there’s probably something more important to be worrying about. However, if the HTML is littered with IDs that we can’t get rid of, opt to use an attribute selector to style it instead (e.g. [id="foo"] {} instead of #foo {} because then at least we’re not using an ID’s worth of specificity[2]. Is the dream of a truly clean, tidy, maintainable code base really achievable? I feel like my FED life is spent fighting for nearly unattainable goals - is there a light at the end of the tunnel? Until every developer on the team is a clone of a very talented developer, then it’s not realistic to have a completely perfect codebase. As soon as we recognise and acknowledge that, we can start focusing on good enough , and that’s where we can make value: It’s not perfect, but we can work with it; we have tech debt, but we have a plan to repay it; it could be neater, but it’s not slowing us down. Whenever I write or get on stage, I’m talking principles and ideals and theory—even applying them word for word isn’t enough when you’re working in the real world. They exist to make life easier, not perfect. Agencies or Products? Each have their own merits, but I absolutely prefer products. Agencies give you diversity and variety, but there is little incentive from anyone (clients, managers, us) to focus on code quality. The client just wants it working for as cheaply as possible; your manager can’t sell ‘code quality’ like they can sell social media integrations; developers will be on a different project in eight weeks anyway. When you work for a product, however, the tables are turned! You’re both the client and the developer, so it is absolutely in your interests to write better quality code. You’re going to be looking after this in two years time, so do your future-self favour and do a good job. As soon as you hit Save, you’re leaving legacy—make sure it’s worthy. As an aside, here’s an interesting piece I read on code quality recently: http://www.darkcoding.net/software/facebooks-code-quality-problem/ http://csswizardry.com/2016/10/pure-css-content-filter/ http://csswizardry.com/2014/07/hacks-for-dealing-with-specificity/