I am currently employed as a principal software engineer at Auto Trader, the UK's largest platform for vehicle listings, working as part of the infrastructure team. Primarily building the infrastructure that enables our developers to create software quickly and easily, without them having to re-invent the wheel.
You can see the software, hardware and other tech I use over on my 'uses' page.
Writing tests for interactions with asynchronous systems (e.g. Kafka, RabbitMQ) is hard, of course at some level you can and should just mock your interaction, but for a more integration level test, it's important to use the 'real' system.
The main thing that makes testing these systems hard, is the unpredictability of when they will respond, and therefore when you can assert your condition.
Inspired by a Java library called Awaitility, I wanted to bring some of the concepts and syntax it introduces over to NodeJS.
Now, testing asynchronous systems is as easy as just persevering...
My most successful and popular side-project so far has been an app that I created to solve a problem that I found while playing a new video game. The Legend of Zelda: Breath of the Wild is another incarnation in a long running game series from Nintendo, within the game there is a rich cooking system in which players can combine ingredients to create dishes which will give them buffs and such.
The issue that I saw is that there is no in game recipe book or notepad that one can jot down recipes they discover; this means that it is easy to forget which combination of ingredients does what. I therefore set out creating an Android application that with the help of the community would grow to become a lexicon for in game recipes.
The application has received over 83,000 installs and holds an active user base of ~20,000.
Application to aid in the migration of endpoints from one service / url to another. This utility will perform various comparisons to ensure parity between the two.
Features include (but not limited to):You can check out the source code and/or download the application using the links below.
As a bit of fun and to explore creating a CLI tool using Spring Shell, I created this urban CLI application. It takes a word or phrase and uses the urban dictionary API to retrieve a definition.
This project was useful as it has allowed me to begin to think about how having a Spring Shell based application could prove very useful; one use that I can think of for this may be adding an admin interface to a spring web app.
You can check out the source code, or download the application using the links below.
Adding / altering the headers on a request is a very useful feature for front-end development. Allowing the developer to easily add authentication or Content-Type headers. This addon aims to make it simple for these headers to be toggled off/on and managed through a UI.
The source code for this is available on GitHub which you can access with the link below!