Richard Barrell's curriculum vitae
Contact:
Email: | richard@brrll.co.uk |
LinkedIn: | https://www.linkedin.com/in/richardbarrell |
Github: | https://github.com/RichardBarrell/ |
If you would like to speak to me via phone, I would be happy to arrange a call by email.
Skills:
Python: | Much of my work at Team Rubber has been writing web application back-end software in Python, using Pyramid, Zope and Plone. |
Linux: | I've administered and debugged CentOS and Ubuntu servers while working at Team Rubber. I routinely use Fedora as a desktop OS. |
FreeBSD: | I maintained FreeBSD servers at Delib over a period of about four years and helped the company migrate all of its systems to CentOS. |
Mac OS X: | I've worked on porting web applications through OS X upgrade cycles and have a passing familiarity with OS X. |
Git: | I use Git for all personal and professional software work. |
Javascript: | I've written front-end UI code for web applications using jQuery and HTML5. |
C: | I program in C recreationally and write command-line tools in C. |
Docker: | I use Docker for isolation and reproducibility on personal projects. |
Haskell: | I program in Haskell recreationally. |
Shell: | I use the Bourne shell extensively for all my work. |
Java: | I picked up Java at university and am familiar with Java and the JVM. |
Agile: | I’ve worked in projects using Kanban and Scrum and have a broad understanding of Lean and Agile principles. |
Professional experience:
I have worked at Team Rubber Ltd from June 2009 to June 2016. Team Rubber is an umbrella company with three subsidiaries called Delib, Rubber Republic and Viral Ad Network, each of which I have worked for as a computer programmer and systems administrator.
Most of my work at Team Rubber has been for Delib Ltd. This is a company which sells web apps to governments around the world for surveys and consultations. Major products and projects that I have worked on include:
Citizen Space, a web app for governments to run surveys online in order to consult citizens about decisions which will affect them. It can also be used to publish (possibly partly redacted) responses and direct people to consultations that are happening offline, such as meetings.
- I implemented the code that allows Citizen Space to work with 3rd-party mailing services such as MailChimp or GovDelivery, for customers who wish to use their own mailing list service instead of Citizen Space's built-in mailing list.
- I wrote the database interaction layer for the response publishing features and participated extensively in the design and implementation of response publishing.
- I worked on the survey implementation, starting with a project for the UK government Central Office of Information to add features to Citizen Space's surveying and reporting features to meet their own requirements. I wrote or worked on features for that project such as: repopulating survey pages with saved answers when a respondent navigates back to a page they've already filled in; associating responses with each other; survey questions asking respondents to upload files; and survey editing workflow.
- I wrote and worked on front-end Javascript for features such as: warning survey respondents before navigating away from a page before saving changes; collapsible boxes for putting related information in; streamlining by finding and removing unused code; HTML WYSIWYG editing; lightbox popups for illustrations; and sorting data tables.
- I worked on the Varnish caching strategy that allowed Citizen Space's read-only use cases (such as browsing consultations to decide whether to fill them in, reading RSS feeds, reading explanatory material) to work for large numbers of members of the public browsing, with only modest server CPU requirements, despite the fact that the system used a web framework where HTTP requests for HTML pages would typically take on the order of 100ms of server-side CPU time.
Budget Simulator, a web app that lets citizens interactively change funding allocations in a model of your organisation's budget. It shows how much effect changes in funding in each area will affect the overall budget. It presents information on what the results of making particular changes will be.
- I ported this application from Zope 2.4 to Zope 2.10, adding Unicode support in the process.
- I made many customised microsites with bespoke feature changes for customers using the Zope 2.10 version.
- I worked extensively on a commercially successful rebuild of this in 2014.
- I was part of the team that rewrote the whole application from scratch using Pyramid on the back-end and HTML5, JavaScript, jQuery and jQuery UI and responsive CSS on the front end; the result of this was a single application that is pleasant and fun to use on phones, tablets and desktop computers.
- I worked closely with the graphical designer on this project to turn rough prototypes of UI interactions written in JavaScript into more robust implementations.
Dialogue, a web app for asking citizens to submit suggestions to deal with a particular issue and to rate and comment on submitted suggestions.
- Dialogue was used for a pair of very large consultations called the “Your Freedom” and “Spending Challenge” challenges shortly after the Conservative-Liberal Democrat coalition government took office in 2010. I joined the team working on Dialogue to add features that would be used for these consultations and to work on application performance in light of the large amount of traffic that these consultations needed to handle.
- I used jMeter to benchmark Dialogue so that we could give our customers realistic measurements of the throughput they could expect from the applications.
- I worked on moderation features to fix bottlenecks that came to light while the consultations were live, such as streamlined pages for central moderation of user-defined tags applied to suggestion threads.
- I worked on hosting and tuning for these applications both before and while they were live to the public.
Citizen Space Aggregator, a tool for showing off all of the public Citizen Space consultations on the internet online at any one time.
- I worked on the first iteration of this application, in which it was a component of Citizen Space.
- In 2015 I wrote a complete new backend for Aggregator backed by Pyramid, SQLalchemy and PostgreSQL as a side project to gain experience with these technologies and to experiment with web app architecture.
- One of my colleagues subsequently applied Delib's frontend UI libraries to it and we put it online at https://aggregator.citizenspace.com/
An internal invoice tracking tool called Scully.
- I worked on UI features such as modal dialogues and searching.
- I added SSL support to it and fixed several crash bugs.
Delib’s hosting infrastructure:
- I procured, installed and eventually decommissioned servers and procured co-location and virtual servers with appropriate capacity and service levels for our applications.
- I worked on formalising and codifying server set up instructions.
- I worked on migrating Delib’s hosting from a mixture of FreeBSD versions and CentOS to an all CentOS environment with the goal of reducing our total operational complexity.
- I worked on Delib’s server configuration management with Ansible.
- I worked on migrating Delib’s hosting from co-located servers to an all-IaaS model running on public clouds.
Delib’s technical customer support:
- I worked closely with Delib’s customer support team, diagnosing and constructing workarounds and fixed for technical issues that they ran into.
I worked for two years at Viral Ad Network (“VAN”), a subsidiary of Team Rubber. VAN traded in advertising space on websites, buying ad space from publishers and using it to run customers’ advertising campaigns, akin to DoubleClick but operating in a specific niche. This arm of Team Rubber was eventually sold to a company called Sharethrough as part of Sharethrough’s expansion into the UK.
I worked extensively on the company’s monolithic supplier and customer management system, called Polarbear. I worked on both its front-end, on features such as searching and sorting, and on its back-end, implementing features and fixing both minor and production-stopping bugs.
I built a test container for manually testing ads that were implemented as Google Gadgets with VAN-specific libraries.
I fixed a large difficulty that the QA and development teams had with being able to set up working installations of VAN’s individual applications in order to be able to test and work on them, by creating Vagrant scripts for each application I worked on, starting from the imprecise installation instructions in each application’s documentation. By switching to using Vagrant for reproducibly building test environments, the QA team were able to start productively working on tickets in a period of minutes rather than hours, and the tendency of reported bugs to be rejected as configuration issues was alleviated.
I worked on fixing production issues with VAN’s running systems. For example, I once spotted and diagnosed a bug in VAN’s custom DNS responder which was causing it to fail to respond to approximately 10% of incoming requests, causing the company to lose revenue for every dropped request.
For several brief periods, I worked for Rubber Republic, a subsidiary of Team Rubber which makes advertising campaigns for a wide variety of customers. At the time I worked for Rubber Republic, the company's offerings included making marketing micro-sites to go with specific campaigns, some of which I worked on.
I worked on a microsite for Channel 4 series called “Hippo: Nature's Wild Feast”. I was one of three programmers on the project. We implemented a static blogging system that the series producers could use by uploading flat XML files, in order to accommodate their need to edit the site via a very limited satellite internet connection from rural Zambia.
I have also done various summer work in 2007-2005. Details are available on request.
Education:
- 2:2 BSc in Computer Science from the University of Bristol.
- Four 'A' grades at A-level, in Physics, Chemistry, Mathematics and Electronics. Five 'A' grades and five 'A*' grades at GCSE, from St. Martins Comprehensive in Caerphilly, Wales.
References:
Available on request; please feel free to email me.
© Copyright 2024 Richard Barrell