What does a HTML Developer do?

Home >> Article >> What does a HTML Developer do?

Ever seen these kind of job roles advertised after doing a search for html developer?

UI HTML5 Developer - Investment Banking, London

Experience of building Single-Page Applications in one or more JavaScript MVC. Preference Angular.JS
 

HTML5 Front-End Developer

Able to convert PSD files into pixel perfect HTML/CSS code
 

Front End Developer - HTML5, CSS3, JavaScript, ReactJS, Redux

AngularJS or React.JS or EmberJS or KnockoutJS or BackboneJS or Vue.JS
 

UI Developer - Front End Developer

Design and build server side components in Java to support the UI

I have more than 10 years experience in the field of Web Design and Development. I do have full stack experience of implementing a project from concept stage to fruition, using say a lamp stack, (php, mysql, etc.). Typically this may also involve deploying or using an Open Source Content Management system that by virtue of its modularity and with some experience and knowledge of the techniques involved, is fairly easily extensible and configurable to suit you or your organisation's needs. Using a CMS to manage content is widely expected these days raher than everything having to go through a full release cycle just to make copy or content changes.

For larger projects (not exclusively) I have tended to specialise in User Interface Development, everything from responsive/adaptive websites that work on multiple viewports, to tablet applications that are device specific. Again, for alot of use cases it is expected that a site will be responsive or if neccessary, adaptive. The prevailing technologies used here have been HTML CSS and Javascript. If the backend developer had done their job well then they would have avoided encapsulating any styling within their output, but provided you with all the necessary semantics, classes ids etc in order for you to be able to style and render the output in a way that was acceptable to the business/designer and ultimately the end user. Occasionally there would be a discussion between the Front End and the Back End and if necessary make any changes to the output so that it can be styled appropriately. A few times after making their changes, I would effectively have to start again. Part of this role may also doing ensuring that your styles work consistently cross browser, viewport device etc. This may well involve taking a mobile first approach which helps to minimise any overides and styles required for these devices.

One of the great things about Drupal and it rich ecosystem of contributed and core modules like Views, Panels, Display Suite etc is that they manage the data layer and how it is formatted, enabling changes via a relatively simple ui that allows someone with out any sever side scripting knowledge to control and customise to a large extent the semantic markup that is being output that is to be styled. In fact these changes can even be exported in code as a module that allows advanced configuration changes to be changed on a live site using version control. This is of benefit as most configuration state is managed in the database layer and is not subject to version control and and can be tricky or time consuming to deploy these changes and keep your various environments in sync, especially if dealing with many users and user data. In other words Drupal has the ability to a large extent to separate out concerns or decouple the business logic from the view or presentation layer, enabling say a front end developer to work collaboratively with a back end dev/site builder. In fact maybe the Front End person can format the data and Build the SIte, allowing the the back end developer to concentrate on some other task which may be of more value to the business.

Ch ch ch ch......

Today the landscape and underlying architecture of how the web is being served across multiple devices including mobile, tablet and desktop devices is changing quickly. Companies like Google and Facebook who have the challenge of serving trillions or requests/sec are driving this change with a push to make better use of client side javascript Libraries/Frameworks to provide you with a sophisticated and moderately complex web application that runs well even on devices that historically are not that fast or powerful. This is an exciting time for new start ups who are looking to leverage these technologies to quickly scale their operations without the expensive legacy overhead. For the big corporates, the drive is to adapt to this quickly changing landscape and to remain competitive.

For example Facebook have developed React that advocates building loosely coupled javascript components that can be bound together to create complex applications that utilise the concept of immutability and an omnidirectional data-flow to produce fairly complex, performant and scalable applications. Facebook has also decided to use javascript to abstract the html and css components, although they have developed jsx that will feel familiar to those that have worked with XHTML/HTML before.

Google has developed the V8 Javascript engine that powers node.js a non-blocking javascript asynchronous i/o environment to allow you to deploy your application serverside on your website is a real possibility today to complete the set up of your isomorphic application.

Driving this change have been advances in Javascript itself with the introduction of require.js and ES6, we have the tools we need to create modular javascript that is not only capable of running your application in a performant and scalable way, but also provides you with a healthy development ecosystem of package managers, task, runners, transformation and testing tools for developers.

One persons definition of a 'HTML developer' may be quite different to someone else.. To my mind, a html developer used to mean taking the html or output that was rendered by the back end team and styling it, across multiple devices etc. In other words someone who manages the html, css and javascript across different devices etc.

if ('HTML Developer' === 'HTML Developer') {

return true;
}

else if ('HTML Developer' === 'Software Engineer') {

return false;

}

Today, a HTML Developer quite likely means using Javascript to abstract a library of loosely coupled components that can be bound together to form a complex and performant javascript based web application that runs clientside and also has to send and receive server requests such as to a rest api, JSON object and the code will likely use some advanced javascript OO concepts and patterns, and it may be useful to use a library like react to offer some structure and support in your quest. Chance are your code will need to be uint tested etc and quite possibly you need to think about how to render your initial state of your application server side to prevent it reloading again once the state has been set clientside!

Furthermore the application will have to run in a performant way and will need an understanding of the event/data immutable data pattern that will be utilised, i.e Flux, Fluxor, MobX, Redux etc. It will also have to be developed using Test Driven Development approach and utilise various Testing Frameworks/Libraries to that end. In fact you also need to wrte your code in a modular way that lends its self to unit testing from the outset.

The second definition I believe is more akin to that of an 'Software Engineer' than that of a 'Front End' or 'HTML' Developer.  One is using it to add custom behaviour that they cannot do using css or post processing your application to manage its state etc, The other is using it to largely abstract html and engineer and implement a modular scalable performant and likely reasonably complex client side web application. 

Ultimately though, both are producing html, css and javascript that is run in the browser. However, the path, complexity, experience, and level of knowledge required to get there can be quite different!

Add new comment

By submitting this form, you accept the Mollom privacy policy.