Design of the overall architecture of the web application
Implementation of a robust set of services and APIs to power the web application
Building reusable code and libraries for future use
Optimization of the application for maximum speed and scalability
Implementation of security and data protection
Translation of UI/UX wireframes to visual elements
Integration of the front-end and back-end aspects of the web application
Requirements
Proficient knowledge of a back-end programming language {Depending on the specific case, a developer should have the knowledge of one or more: PHP, Python, Ruby, Java, .NET, JavaScript etc.}
Understanding differences between multiple delivery platforms (such as mobile vs, desktop), and optimizing output to match the specific platform
Good understanding of server-side templating languages {such as Jade, EJS, Jinja, etc. depending on your technology stack}
Good understanding of server-side CSS preprocessors {such as Stylus, Less, Sass etc. depending on your technology stack}
Creating database schemas that represent and support business processes
Data migration, transformation, and scripting
Management of hosting environment, including database administration and scaling an application to support load changes
Understanding of fundamental design principles behind a scalable application
Ability to implement automated testing platforms and unit tests
Good understanding of {Depending on the specific case, a developer should have knowledge of advanced JavaScript libraries and frameworks such as AngularJS, KnockoutJS, BackboneJS, ReactJS, DurandalJS etc.}
Proficient understanding of client-side scripting and JavaScript frameworks, including jQuery {or other frameworks such as Zepto, MooTools, etc. depending on project requirements}
Basic knowledge of image authoring tools, ability to crop, resize, or perform small adjustments on an image. Familiarity with tools such as Gimp or Photoshop is a plus.
Proficient understanding of code versioning tools {e.g. Git, Mercurial or SVN}
Familiarity with development aiding tools {such as Bower, Bundler, Rake, Gulp, etc. depending on the technology stack}