I like the term Front-End Developer. It's encapsulates the nature of your job if your concerns are:
- Building UIs for web browsers
- The spectrum of devices and platforms those web browsers run on
- The people who use those web browsers and related assistive technology
The breadth of knowledge for all-things front-end development has gotten super deep. I've found that front-end developers that have stretched themselves to the point they are thinking of themselves as full-stack developers more and more. I think that's kinda cool and empowering, but it doesn't mean that everyone needs to go that wide.
- Crafting semantic HTML markup
- Creating CSS code
- Testing across browsers and devices
- Optimizing the performance of front-end code
- Working with designers
- Working with back-end and application developers
That sounds like the "traditional" explanation of a front-end developer to me — if there is such a thing — but it makes sense to rename that role since front-end development is the term that got so wide.
Brad adds these responsibilties to the list:
- Create a library of presentational UI components
- Author and document a robust, intuitive component API for each presentational component
- Determine how flexible or rigid the component library should be
- Maintain the presentational components as a product
That's where I think this metaphor comes in:
Me, Brad and a slew of you out there are front-end developers. We work in browsers and we care about the users and where and how they interact with those browsers. We do the things on Brad's first list like craft HTML and CSS, work with designs and do testing. We share that common trunk of skills on the tree above.