Richard Barrell's curriculum vitae
Contact:
Email: | richard@brrll.co.uk |
LinkedIn: | https://www.linkedin.com/in/richardbarrell |
Github: | https://github.com/RichardBarrell/ |
Phone: | Available on request. |
Profile:
I am a senior software developer with a range of skills. I have extensive recent experience with TypeScript.
I am comfortable talking directly to clients and am friendly and personable.
I would describe myself as an "everything programmer": I have on multiple occasions learned and used a new programming language or tech stack from scratch, in order to deliver software for which the company's main tech stack was not available.
I am a British citizen and hold a valid passport.
Skills:
React: | I've worked on a large number of web app frontends written in React, both pure SPAs using create-react-app and Vite, and SSR apps using NextJS. |
React Native: | At Calvium I worked on a large number of mobile phone apps written in React Native, targeting iOS and Android. I've worked with Expo and EAS for CI/CD. |
TypeScript and JavaScript: | I've written front-end UI code for web applications using React, jQuery and HTML5. I've written mobile apps using React Native. I've written web app backend code for NodeJS. |
Python: | Most of my work at Team Rubber was writing web app back-end software in Python, using Pyramid, Zope and Plone. |
Microsoft Azure: | I've implemented apps on Microsoft Azure for clients. I've used a variety of the products in Azure, including Azure Storage for files and log storage, Azure Application Service for Node.js web app hosting, Azure Application Gateway for load balancing, and Azure SQL Database for MS SQL Server hosting. |
Amazon AWS: | I've implemented apps on Amazon AWS for clients. I've used S3, EC2, AWS Lambda, RDS, VPCs, IAM, Cognito and CloudWatch. I've set up cloud deployments on AWS using Terraform. |
Google GCP and Firebase: | I implemented a purpose built CMS using Firebase and GCP's file storage and function-as-a-service functionality, and several customer projects using Firebase. |
Git: | I have about a decade's experience with Git. I've used GitHub, GitLab, Phabricator and BitBucket. At previous jobs I've frequently helped other colleagues with issues or confusion they run into with Git. I've performed some one-off history rewrites such as performing a migration from Subversion to a Git monorepo by using git-svn and branch filtering to rename files into different directories. |
Docker: | I've used Docker for building and delivering software. I use Docker for isolation and reproducibility on personal projects. |
SQL: |
I've worked on a large number of projects using a variety of SQL
databases. I have used:
|
Shell: | I use bash and zsh routinely and am fluent with shell scripting. |
Linux: | I've administered and debugged CentOS, Debian and Ubuntu servers. I've used Linux as a development platform for several years. |
MacOS: | I've worked on porting web applications through OS X upgrade cycles at both Team Rubber and Calvium. I've used MacOS as a development platform for several years. |
Agile: | I've worked in projects using Kanban and Scrum and have a broad understanding of Lean and Agile principles. |
Secondary skills:
C: | I've written command-line tools in C. I also sometimes write C recreationally. |
C#: | I've written bindings for Azure APIs in C#. I've also recreationally written C# code for scripting inside the videogame "Space Engineers". |
Salesforce, Apex, SOQL | At Calvium I delivered functionality for a customer inside their existing Salesforce site, in the form of an Apex REST extension that used SOQL. |
Elixir, Erlang | At Calvium I delivered an integration between a PHP site and an interactive application written in Elixir and Erlang. This involved carefully reading code in the Elixir app in order to write PHP code that exactly matched some custom cryptographic signing that the Elixir app did. |
Java: | I've occasionally had to debug Java code while working on React Native applications at Calvium. I'm passingly familiar with Java from having learned it at university. |
Objective C: | I've occasionally had to debug Objective C code while working on React Native applications at Calvium. |
Varnish cache: | At Team Rubber we used Varnish Cache extensively. I've worked on VCL code to keep our sites running. |
Haskell: | I've written command-line tools in Haskell. |
jMeter: | I've used jMeter for performance measurement on complicated web apps. |
Professional employment history:
I worked at Calvium Ltd from May 2017 to April 2024 as a software developer.
I worked at Team Rubber Ltd from June 2009 to June 2016 as a software developer.
Calvium Ltd:
Calvium Ltd is a software consultancy SME. It delivers bespoke software for clients in multiple sectors. At Calvium I primarily worked on projects for clients in the aerospace and defence sectors. I also worked on projects for clients in many other sectors such as engineering, tourism and arts.
My primary job duty was writing software. I also worked directly with clients to define their technical requirements and help them deploy technological solutions.
The principal tech stacks I worked with at Calvium were React Native and Expo for mobile apps; React with Vite or NextJS for web apps, and NodeJS for app back-ends. Most code at Calvium was written in TypeScript.
My primary job duty was writing software.
Technologies I worked with at Calvium:
- NodeJS,
- TypeScript,
- React,
- HTML5,
- CSS,
- React Native,
- Vite,
- create-react-app,
- NextJS,
- Linux,
- Docker,
- MacOS,
- Microsoft Azure,
- Amazon AWS,
- Google Firebase,
- Google GCP,
- Git,
- Bitbucket,
- Phabricator,
- Gitlab,
- Github,
- Jira,
- Trello,
- Java,
- Objective-C,
- C#,
- Rust,
- Erlang,
- Elixir,
- MySQL,
- PostgreSQL,
- Microsoft SQL Server,
- Shell,
- OpenStreetMap,
- Mapbox GL JS,
- Expo,
- EAS,
- flow.js
Team Rubber Ltd:
Team Rubber was at the time an umbrella company with three subsidiaries called Delib, Rubber Republic and Viral Ad Network. I worked for all three at different periods.
I did software development, systems administration and last-line technical support for customers.
Technologies I worked with at Team Rubber Ltd:
- Python,
- Zope,
- Plone,
- Pyramid,
- ZODB,
- PHP,
- WordPress,
- MySQL,
- Ruby,
- BerkelyDB,
- Git,
- Bitbucket,
- Subversion,
- git-svn,
- Trac,
- Redmine,
- HTML5,
- CSS,
- JavaScript,
- jQuery,
- AJAX,
- Varnish cache,
- HAProxy,
- Linux,
- Docker,
- FreeBSD,
- MacOS,
- RackSpace IaaS,
- Amazon AWS,
- Colocation,
- CentOS / RHEL,
- Ansible,
- Puppet,
- jMeter,
- Shell
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.
© Copyright 2024 Richard Barrell