Software Projects

Software development plays a fairly large role in both my personal and professional life. I like to make my computers work for me, rather than with or against me.

In my job I am involved with software from application level all the way down to bootloader, drivers and baremetal developemnt. In my own time, I enjoy Linux application level development, as well as the simplicity of an 8-bit AVR (e.g: ATmega328p) for low power tinkering. Often my projects include both of these extremes. So far, my love of Linux and 8-bit Micros hasn't taken me so far as to get Linux booting on an 8-bit Micro, but you never know... (kudos to Dmitry by the way).

Open Source Projects

I feel that 'open source' is a really great movement, and have released a few of my projects for others to use.

  • libxbee - a C/C++ library to interface with XBee modules and their wireless network.

  • libbuf - A C library that provides fast, flexible and efficient buffers.

  • libhttpd - a simple C library to aid HTTP serving.

  • libjson - a C/C++ library for parsing, building and accessing data stored in JSON format.

  • AVRos - a basic Hardware Abstraction Layer for AVR processors.

Personal Projects

I also work on some projects for myself. Some of these are course work that I have put online for reference, others are maturing projects that I may one day feel could be of use to others.

  • Mort - an advanced home automation system

  • Coffee Pot Server - a second year University project to implement RFC2324, a HTCPCP server and client.

Really Old Projects

  • Sorting Demo - A simple demonstration of a collection of sorting algorithms


The projects are labelled with various icons, the meaning of which can be found below:

Bare Metal Bare Metal Linux Linux FreeBSD FreeBSD Windows Windows Mac OS X Mac OS X