Printable PDF

Joe Carter

I am looking for Software Engineering orientated roles. My current fields of expertise are mostly consisting of Node.js, PHP, C++, Java and Python. I absolutely love learning new technologies and can adapt to any stack.

Personal Details

Location: South West Wales (Pembrokeshire), Looking to relocate.
Phone: Available on request
Email: joe@josephcarter.co.uk
Website: http://josephcarter.co.uk
LinkedIn: https://linkedin.com/in/theupperquartile
Github: https://github.com/ylt

Skills

q
Sysadmin: Debian, Ubuntu, CentOS
Node.js: Express, koajs, gulp, grunt, pm2, Sequelize (ORM mapping)
Javascript: ES 2016 (babel), typescript, livescript, coffeescript, dart, Mocha, Angular, Chai
AWS: IAM, VPC, EC2, Route53, S3,
Devops: Docker, Docker Swarm, Docker Compose, Kubernetes, Vagrant
Continuous Integration: Jenkins, Travis, Gradle
Databases: MySQL, PostgreSQL, MongoDB, Redis, InfluxDB
Programming Languages: Javascript/ECMASCRIPT 5 + 6, Python, Java, Bash, C, C++, C\#
Java: Maven, Gradle, Swing, Spring, JUnit, Mockito
Android: Xamarin, Kotlin/Cordova, Java, Firebase
Other Technologies: Apache, Nginx, Lighttpd, PHPUnit, Git, SVN

Education

2014
2015
BSC Hons: Software Engineering,
University of Wales: Trinity Saint David
  • Major Project
  • Interactive Graphics Programming
  • Real-Time Systems Development
  • Advanced Web Development
  • Distributed & Cluster Based Enterprise Applications
2012
2014
HND: Software Engineering,
University of Wales: Trinity Saint David
  • Application Design & Development
  • Systems Software & Multi-User Applications Engineering
  • Database Management Systems
  • Data-Centric Windows Programming
  • Algorithms & Data Structures
  • Implementation Project

Work Experience

Feb 2017
Present
Innotex Ltd & Innotex Development Ltd
Development and Sysadmin, responsible for deploying and running the servers and am on-call for any issues. Develop web applications (such as the new notification system) and also responsible for fixing existing applications in the case of emergencies.
Oct2015
Jan2017
Red-Wing Interactive
PHP Developer, development of bespoke client websites and improving the companies custom PHP framework (SM4). Sites are designed and implemented fitting the clients requirements. Core framework is also developed on in order to fix bugs and to add in additional features, this is done without breaking compatibility with the various sites that depend on it.
2011
2014
Innotex Ltd
Contract work done alongside university. Development and Sysadmin, responsible for deploying and running the servers and on-call for any issues. Develop web applications and also responsible for fixing existing applications in the case of emergencies.

Projects worked on

Aug2017
Lumberjack
WritheM
Still in development, an Android data collection and tracking tool developed using Xamarin, mainly focusing on Android APIs. This continually collects metrics such as sensor data, gps location for company device management.
Aug2017
Librebank
Innotex
Still in early development, this is a node.js based open-source bank agnostic library. The aim is to provide a standardised library targeting all banks. This is developed in typescript which allows defining the data structures and allows for compile time checking for if the bank implementations are compliant. Currently implementations are in progress for the banks Starling, Monzo, Paypal and Tide.
Mar2017
Starling Bot
Innotex
Node.js based bot for Facebook Messenger, this allows you to check your account, this includes checking your recent transactions and balance.
Mar2017
Node.js based data logger for Reddit live threads. This utilises the reddit API's to monitor for stat changes, and pushes this onto a influxdb server. These are then visualised using a Grafana instance.
April2017
Innotex Servers
Deployed new servers for Innotex Ltd. KVM was used as the hypervisor, hosting a cluster of virtualised servers running Kubernetes. Custom docker images were implemented to host the various applications. Virtual network subnets were used for isolation, with no two containers having access between each other unless dependent.
Feb2017
May2017
Ricks Retro
Innotex
Work towards the new ricks retro website. This is a fresh Symfony2 website build, with the majority of the logic implemented from scratch.
Oct2016
Dec2016
MCSEC
Red-Wing
Website for MCSEC (Marlborough College School of English and Culture) based on Resirva
Aug2016
Resirva Summer School Platform
WritheM
Development of the Resirva platform. Based on the learning experiences of building other summer school sites.
Oct2016
Dec2016
Nectar
WritheM
A fresh website reskin for Nectar, this is a legacy ASP classic website
Sep2016
SBooks
WritheM
SBooks is a responsive single page website build. All content is fully CMS managed.
Oct2015
May2016
St Edmunds College
WritheM
Development of St Edmunds College website, this is a major website build, with a large front end booking process on the frontend and a large "backoffice" management of the summer school.
Jul 2015
Oct 2015

Node.js Music based social network. This is a fairly large build. The frontend is based on React, with Redux. This communicated with the backend via socket.io / engine.io.

The backend consisted of multiple layers. It uses a message bus based design. At the heart of it is a RabbitMQ service. The socket.io/engine.io from browser talks to the "bridge", this bridges messages from the browser socket onto the RabbitMQ and also handles other aspects such as client subscriptions to messages, etc.

The workers are implemented as microservices listening on the RabbitMQ, they emit messages onto the RabbitMQ bus, and also listen for messages such as RPC commands, and responds them. This is horizontally scaled using pm2. The workers implemented RPC functions, and these were done inplace of using HTTP calls - the overall design of the API based based around the ideas of REST, wih routes being used along with an action.

2015
A heavy Node.js project, an experiment into making a more modular event emitter system. Wallace is a two-part project, at its core is another of my projects: Grommit, this is a modular node.js plugin and event system (in Wallace repository for now), allows loading, unloading and refreshing of plugins Wallace is a bot implementation on-top of Grommit that takes advantage of the flexible behaviour.
2015
XRP Radio
Innotex
A website build, this website is interactive with many users interacting with each other in realtime. Much of the work was getting it scalable at peak times when a large event is on.
2014
2015
Interactive LaTeX editor
University Major Project
A purely Javascript based web-based LaTeX editor. This was implemented using prototype.js. A lexer and parser which allowed creating an object view of document, which was then transformed into XML, this was then styled via css. Edits could be transferred back to LaTeX by reversing the process: reading in the DOM and generating LaTeX code.
2012
Rules
Personal
Java plugin for the game Minecraft, this was targeting the custom server software named ``bukkit`. This also was MySQL backed - with a transactional datastore storing changes to state, with a cached summary of current permissions. Multiple servers accessed to this shared database, and determined updates to the state. A custom MySQL plugin was implemented in C to allow for more precise timestamps.