
Development
Introduction
James has over 25 years of web development behind him, developing a range of complex and data driven websites.
He is an open-source developer at heart, he usually develops in Perl (including mod_perl) and PHP, on Apache webservers, and interacting with open source databases like MySQL.
He has extensive knowledge of HTML, Javascript and CSS, and a great understanding of both accessibility and responsive design.
James' portfolio includes examples of:
- Complex user-interface development;
- Large scale data collection, analysis and display;
- On-line resource databases;
- e-commerce;
- Globalisation and localisation;
- Site administration systems.
Skills
Languages:
- PHP - including wordpress themes/plugins
- Perl - including mod_perl and server/site management
Databases:
- MySQL - both adminstration and query optimization;
Client-side:
- HTML - Standards compliance, optimal design, XHTML, HTML 5
- JavaScript - Vanilla javascript and jQuery based applications, security
- CSS, SASS - CSS 3.x, Responsive CSS, mobile first design
- SPAs, PWAs - Single page sites, conversions of sites into "mobile/offline apps"
Administration:
- Apache, Pulse vADC - website configuration, proxy set ups and security
- Ubuntu, bash - server deployment and management
- SVN, git - including hooks for code
Other:
- Responsive design - development for mobile, tablet
- Web optimization - Image optimization, Javascript optimization, PHP/Perl optimaation, site design for static HTML, CSS
- Security - Request headers, SSL - with Let's encrypt, code quality
- Accessibility

Wordpress
Introduction
James brings his extensive PHP skills into Wordpress development - and has a good understanding of how Wordpress works under the hood
This has allowed him to develop a series of plugins which support rapid development of complex structured websites, remove some of the quirks of wordpress.
Plugin development
James has developed a number of simple plugins:
- Base Theme Class - An über class which sets up functionality for themes - object creation using ACF/ACF Pro, tidies up/removes a lot of stuff wordpress adds as default, a simple templating system - based on HTML, additional PECR compliant short codes for embedded media, etc;
- Wordpress simple cookie policy plugin - A simple PECR compliant cookie pop-up for simple sites (designed to be easy to integrate into own code which sets cookies, and e.g. Google Analytics and Matomo);
- Form submitter - A static form renderer and handler;
- Simple SEO tags - Adds additional SEO tags for Twitter, Facebook etc, based on attributes of posts/pages;
- Pagesmith OAuth2 WP integration - Integrates with the Pagesmith OAuth2 provider {simple extendable log in system} to allow for single-sign-on.
Maintenance
To assist in the management of the development of the various websites James works on he has developed a number of useful scripts.
Manage sandbox
simple configuration based script which maintains a sandbox version of the website - installs appropriate plugins and themes, either through the wordpress "website", via zip files or, copies back data and uploads from a master site.
The script has options/aliases which allow for some or all of the steps to be executed.
Update
manages secure/reliable propogation of code to the dev/edit sites
Fetcher
a series of scripts to flatten the Wordpress site into static HTML for distribution to the live nodes.

Portfolio
Introduction
James has worked on a large number of high profile websites, below are a selection showing illustrating some of the features developed.
Wellcome Sanger Institute
The Insitute site uses Wordpress for it's administration interface, James was responsible for the creation of custom objects using Base Theme Class and ACF/Pro. He developed a number of the CSS/Javascript components for sliders, filtered searches etc.
The public facing site is static HTML site which is produced from the admin site by James' fetcher script.

Wellcome Sanger Institute - People directory
The directory uses custom Javascript and CSS developed by James to filter people and to also lazy load images as the user scrolls down the page.
The directory code use data-
attributes and the presence of
divs to configure the functionality of the directory so the same code can
be used across multiple sites and directory listings.

Wellcome Sanger Institute - Data representation
James' background as a mathematician and statistian has helped him develop a number of dynamic data views for the more complex data sets within the Institute.

Human Cell Atlas - Registration
The Human Cell Atlas manages a number of registries of scientists linked to the whole consortium or individual projects or areas, or philanthropic funding from grant gives like the Chang Zuckenburg Initiative. This is an example of the "static" form generator plugin developed for wordpress generating a complex forms, and handling submission of data.

Human Cell Atlas - infographics
Another part of James' work on the Human Cell Atlas is to manage the dynamic production of infographics giving information about the members of the consortium.
These displays use a mixture of CSS and Javascript to make the data easier to understand - the scripts use a mixture of D3.js and jQuery to help highlight features of the data.

Malaria Cell Atlas - visualisation
James redeveloped the Malaria Cell Atlas site in Wordpress to develop visualisations of the data produced by the Malaria team. The original app was developed in R (a statistcal package which includes data visualisation tools which can be viewed on the web using the Shiny server - this system required a large resource and was very unstable.
James re-wrote the views using a mixture of Vanilla JS and the D3 library, data is served statically by transforming the raw data from R into files suitable for d3 - which uses a column format for data. This improved performance and funcionality. Users can filter the data and have options to change the colour based on various facets of the data, as well as spinning & scaling 3d views to better view the subtlties of the data.

Ensembl - Transcript SNP View
James for a number of years was a principal developer and web team manager for the Ensembl project - a complex genome browser - with genomic data of approximately 50 species. James worked on many of the displays on the site. Transcript SNP View was one of the complex displays - this helps scientists visualise the effect of variation on the functionality of genes.

Annual Scout Census
James has worked on a number of Scouting websites over the last 25 years, including sites for The Scout Association. James has, for the past 20 years, developed and maintained the software behind the annual scout census which collects summary information about the 600,000 members of The Scouts, and the local section they belong to.
The system distributes the responsibility of data input to the roughly 40000 entities within the organisation. The site produces a number of dynamic reports to inform managers (at all levels) within The Association about the membership in their area.

Engauge Tools
James has developed a series of systems for Human Resources questionnaires, performing 360s and other survey types. Along with the user and admin interface James produces reports either as HTML pages or PDFs generated dynamically from the data.

Other websites
James has worked on a number of other sites over the years:
The Edinburgh University Mathematics Department student prospectus:
James worked with the IT team in the Maths department to develop an online prospectus to advertise the courses available.
ScoutBase UK:
The original website of The Scout Association which contained a large resource collection for adults within The Scouts in the UK and beyond.
James started working on ScoutBase UK in 1995 at the infancy of the Internet and WWW.
James developed much of the dynamic content of the website - including contact directories, a directory of campsites, the site search, document libraries, e-commerce, and the production and distribution of The Association's rule book Policy, Organisation and Rules as a structured, cross referenced PDF and series of web pages. James also worked on a number of other sites for The Association over the years.
UnderU:
a clothing e-commerce site with a multi-lingual, multi-currency interface and complete fulfillment system. The site was integrated with a number of different payment solution providers, include NetBanx and WorldPay.

Publications
Publications
James has worked in academic and research institutes, both as a statistian and as a web develoepr within a genomics institute, below are citations of his published works.
2022
-
Return of genomic results does not motivate intent to participate in research for all: Perspectives across 22 countries.
, , , , et al.
Genetics in medicine : official journal of the American College of Medical Genetics 2022;24;5;1120-1129
2021
-
Demonstrating trustworthiness when collecting and sharing genomic data: public views across 22 countries.
, , , , et al.
Genome medicine 2021;13;1;92
PUBMED: 34034801 PMC: 8147072 DOI: 10.1186/s13073-021-00903-0
2020
-
Global Public Perceptions of Genomic Data Sharing: What Shapes the Willingness to Donate DNA and Health Data?
Middleton A, Milne R, Almarri MA, Anwer S, Atutornu J et al.
American journal of human genetics 2020;107;4;743-752
PUBMED: 32946764; PMC: 7536612; DOI: 10.1016/j.ajhg.2020.08.023
2018
-
'Your DNA, Your Say': global survey gathering attitudes toward genomics: design, delivery and methods.
Middleton A, Niemiec E, Prainsack B, Bobe J, Farley L et al.
Personalized medicine 2018;15;4;311-318
2012
-
Genomics of Drug Sensitivity in Cancer (GDSC): a resource for therapeutic biomarker discovery in cancer cells.
Yang W, Soares J, Greninger P, Edelman EJ, Lightfoot H, Forbes S, Bindal N, Beare D, Smith JA, Thompson IR, Ramaswamy S, Futreal PA, Haber DA, Stratton MR, Benes C, McDermott U and Garnett MJ
Nucleic acids research 2012;41;Database issue;D955-61
2010
-
Ensembl variation resources.
Chen Y, Cunningham F, Rios D, McLaren WM, Smith J et al.
BMC genomics 2010;11;293
PUBMED: 20459805; PMC: 2894800; DOI: 10.1186/1471-2164-11-293
-
Using caching and optimization techniques to improve performance of the Ensembl website.
Parker A, Bragin E, Brent S, Pritchard B, Smith JA and Trevanion S
BMC bioinformatics 2010;11;239
PUBMED: 20459812; PMC: 3098060; DOI: 10.1186/1471-2105-11-239
2009
-
Ensembl's 10th year.
Flicek P, Aken BL, Ballester B, Beal K, Bragin E et al.
Nucleic acids research 2009;38;Database issue;D557-62
2008
-
Ensembl 2009.
Hubbard TJ, Aken BL, Ayling S, Ballester B, Beal K et al.
Nucleic acids research 2008;37;Database issue;D690-7
2007
-
Ensembl 2008.
Flicek P, Aken BL, Beal K, Ballester B, Caccamo M et al.
Nucleic acids research 2007;36;Database issue;D707-14
2006
-
Ensembl 2007.
Hubbard TJ, Aken BL, Beal K, Ballester B, Caccamo M et al.
Nucleic acids research 2006;35;Database issue;D610-7
-
TranscriptSNPView: a genome-wide catalog of mouse coding variation.
Cunningham F, Rios D, Griffiths M, Smith J, Ning Z et al.
Nature genetics 2006;38;8;853
-
Ensembl 2006.
Birney E, Andrews D, Caccamo M, Chen Y, Clarke L et al.
Nucleic acids research 2006;34;Database issue;D556-61
2005
-
Ensembl 2005.
Hubbard T, Andrews D, Caccamo M, Cameron G, Chen Y et al.
Nucleic acids research 2005;33;Database issue;D447-53
2004
-
Mutagenic insertion and chromosome engineering resource (MICER).
Adams DJ, Biggs PJ, Cox T, Davies R, van der Weyden L et al.
Nature genetics 2004;36;8;867-71
-
The Ensembl Web site: mechanics of a genome browser.
Stalker J, Gibbins B, Meidl P, Smith J, Spooner W et al.
Genome research 2004;14;5;951-5
-
An overview of Ensembl.
Birney E, Andrews TD, Bevan P, Caccamo M, Chen Y et al.
Genome research 2004;14;5;925-8
-
Ensembl 2004.
Birney E, Andrews D, Bevan P, Caccamo M, Cameron G et al.
Nucleic acids research 2004;32;Database issue;D468-70
2003
-
Ensembl 2002: accommodating comparative genomics.
, , , , , , et al.
Nucleic acids research 2003;31;1;38-42
2002
-
A physical map of the mouse genome.
, , , , , et al.
Nature 2002;418;6899;743-50
-
The Ensembl genome database project.
, , , , , et al.
Nucleic acids research 2002;30;1;38-41
1998
Constructing Partial Prior Specifications for Models of Complex Physical Systems
Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith
Journal of the Royal Statistical Society. Series D (The Statistician) 1998;47;1;37-53
1997
-
Pressure Matching for Hydrocarbon Reservoirs: A Case Study in the Use of Bayes Linear Strategies for Large Computer Experiments
Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith
Case Studies in Bayesian Statistics, Lecture Notes in Statistics 1997;121;37-93
1996
-
Bayes Linear Strategies for Matching Hydrocarbon Reservoir History
Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith
Bayesian Statistics 5: Proceedings of the Fifth Valencia International Meeting 1996;69–96
1995
-
Matching hydrocarbon reservoir history - a Bayes linear approach
Peter S. Craig, James A. Smith, Michael Goldstein and Allan H. Seheult
Third International Applied Statistics in Industry Conference 1995;1;371-379
1993
-
"Looking for nothing" bayes linear methods for solving equations
James A. Smith
Durham theses - University of Durham 1993

About James
Introduction
Before James turned his hand to web-development 30 years ago, he graduated from Durham University with a BSc and PhD in Mathematics, for the latter he spent three years Looking for Nothing. He then spent another 7 years as an academic statistician first at Durham as a Research Assistant looking at ways of improving the geological models of under sea oil reserves, by looking at production data and then lecturing statistics at Edinburgh Univeristy.
Hobbies and interests
Outside his work and web development James runs a Cub Pack just outside Cambridge. He has run and helped fun Cubs, Scouts and Beavers over the years in Norwich, Durham, Edinburgh, and Cambridge;
He enjoys building and collecting LEGO models;
He also enjoys walking in the hills, and paddling when he has the opportunity, reading Terry Pratchett and other fantasy authors, and cooking.

Contact and Privacy
Contact details
You can contact James at:
contact@jamessmith.me.uk
Cookie Policy
This site does not use cookies
Privacy Policy
What type of data we collect about you?
When you visit our websites, we may collect a variety of data about your use of our websites (“Browsing Data”), including but not limited to the following:
- The domain name from which you access the internet;
- The date and time at which you access our site;
- Details of your usage of the site including pages visited;
- The internet address from which you direct-linked to our site;
- The information collected is not intended to be personally identifiable but we cannot guarantee in every case that no personally-identifiable information will be included. Logs of these data may also include your user ID in the event that you visit a page that requires you to log in. For more information about the data collected, please see our cookie policy.
Purposes and legal grounds for processing
We collect Browsing Data to meet our audit and security requirements, as well as to help us improve our sites. We have carried out a balancing exercise between our interests and your rights, to ensure your rights are protected during the processing.
How we store your data and when we delete it
Your Browsing Data is stored in logs kept on our access-controlled secure servers. These logs are maintained no longer than necessary and in compliance with our standard operating procedure.
Your data protection rights
You may have the right to request access, rectification or erasure, amongst other rights, in relation to your personal data.
Any request to exercise one of these rights will be assessed by us on a case by case basis. There may be circumstances in which we are not legally required to comply with a request because of relevant exemptions provided for in applicable data protection legislation. If we are required to comply, we have one month to respond in most cases.
Please contact us at the email address above if you wish to make a request.
How to complain
If you have concerns about how we have handled your personal data, you should get in contact with us at dataprotection@sanger.ac.uk in the first instance. If you are dissatisfied with our response, you have the right to complain to your Data Protection Authority. In the UK, that is the Information Commissioner’s Office (ICO).
The ICO’s contact details:
Information Commissioner’s Office
Wycliffe House
Water Lane
Wilmslow
Cheshire
SK9 5AF
Helpline number: 0303 123 1113
https://ico.org.uk/make-a-complaint/