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.
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 |
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: | qIAM, 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 |
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.