Air Monitor
Air Monitor is a ESP32 micro-controller powered VOC (Volatile Organic Compound) and CO2 monitor.

It graphs the CO2 and VOC on an LCD over various intervals.

A custom app allows the data to be graphed on your Android device.

WiFi/LoRaWAN Weather Station
I built several weather stations using ESP8266 and ESP32 micro-controllers.


  • Temperature/Humidity/Pressures
  • Battery Voltage Monitoring
  • Rain Measurement
  • UVA, UVB and UV Index
IOT Clock
I built a simple Dot Matrix clock which uses NTP via UDP sockets to get the time.

Built using an ESP8266. I also designed and printed the case.

Air Monitor App
To compliment my micro-controller based Air Monitor I created an app which connects to the Bluetooth on the device and produces 24 hour graphs.

It runs on Android and uses React Native and Victory Graphs.

ThingSpeak Channel Grapher
I built this app to connect to the ThingSpeak API and graphs fields. It can graph any field from any channel over any time period.
  • Automatic field detection
  • Wide range of time periods
  • Mean Sea Level Pressure conversion
  • Customisable graphs
  • Preferences stored using cookies
  • Responsive design

It was built using ReactJS, ChartJS, Ktor and Bootstrap.

LoRaWAN Soil Moisture Sensor
Due to the high price of commercial soil moisture sensors I decided to build my own.
It utilizes a Atmega328p micro-controller and uses a capacitive soil moisture sensor.
Data is sent to ThingSpeak using the LoRaWAN network. Features:
  • Solar/Battery Powered
  • Battery optimisation by powering down sensors
  • Temperature/Pressure
  • Battery Monitoring
I recreated scenes from Riff Raffs video clip "DoubleCup" using HTML, CSS and SVG.
I rewrote a favorite game of mine and used some game assets to build a simple and fun game that teaches you hexadecimal. It uses plain JavaScript and CSS to do it’s magic.
Is a a web app that I am building to help me keep track of my personal goals. It is built with PHP/Laravel and hosted on a Google Cloud Ubuntu instance.

It currently allows the creation of multiple goals with activities recorded against those goals. It then displays a graph showing when work was done on completing said goal. It features user accounts, administration and email authentication.


I have built many open source projects in my spare time. I try to focus on projects that have a real world impact by either improving or simplifying life.
Kotlin Website and backends. ThingSpeak Weather Station, Website
JavaScript Websites, single page web apps, native apps Channel Grapher, AirMonitor ReactNative App, Websites
C/C++ Embedded applications, microcontrollers Weather Station, LoRaWan Weather Station, LED Clock
HTML/CSS Web design Channel Grapher, Websites
PHP Websites SuccessPlan
Please view on a larger screen to see resume.

You can contact me here.