Welcome to my professional website
I am a programmer and former mathematics student. I have always had an analytical mind that favoured generating clear algorithms to solve problems. I have always loved building things, from programming to sewing and electronics, and have endevoured to explore many varied projects over the years in my free time.
IRC bot
As a personal project, I have built an IRC bot to perform a number of channel management services and functions across many IRC channels and servers. Security, stability and flexibility have been forefront in my mind throughout development. This project has taught me a lot about multithreading and the python language while I've worked to expand the project to meet user demands.
CallerID
With work, I developed some software to provide an interface between an already existing EPOS solution and off the shelf modem hardware. I learnt much about GUI design as well as interfacing with pre-existing software solutions. I worked closely with in-house graphic designers as well as customers, to ensure a clear and organised interface, adapting to changing specifications over time.
Business management suite
Our company had specific workflows that we wanted our sales and engineering departments to follow, as such our boss decided it would be best for a business management suite to be built specifically for us. I worked closely with my coworkers in sales and management to gain an understanding of their needs and their workflow, in order to design a system to guide and help them with their work.
Sales API
I have worked with other developers to design and build a RESTful API to allow EPOS sales data to be displayed to users via a website or mobile application. I ensured that the API returned data in an clear and consistent manner and that the authentication was secure and reliable. Later I had to construct a java application to format sales data on a user's machine for upload to this API, allowing me to further test and expand it.
EPOS Networking application
As part of a larger project at work, I developed an application allowing multiple softwares across many machines to communicate and send and receive api requests and responses. The project involved a large amount of design and planning between our programing team, with the design focusing on robustness while allowing rapid scaling from a small project to a large and changing network.
Forum comparison website
A large personal project I have previously built and maintained was a website to record and display the activity levels of many different forums and self-hosted wikis for an online hobby. It allowed members of the community to find other forums and see, at a glance, whether they were still active. This project included tools to automatically check forums for activity, as well as a custom graph library to display data which had been gathered.
Employment
Head Software Engineer - Infinity BAS
Working with the team at Infinity Business Advancement Systems, I have learnt a lot about programming as part of a team and designing specifications for myself and the team to develop software for. I’ve built many software products for the company, working from design and specifications stage all the way through to testing, bug fixing and deployment. I’ve integrated my software into larger projects and worked with other programmers to meet specifications and deadlines.
Java
Experience with Java and am always improving my knowledge of the language.
PHP
As the first programming language I learnt, PHP gave me a strong entry to the programming world.
Python
I have spent much of my working life working with python 2 and 3, and am familiar with the tkinter library.
SQL
Working with many MySQL, PostgreSQL and MSSQL databases, I have gained a strong grasp of the language.
HTML & CSS
I have developed strong html & css skills while building websites for many projects.
Restful API
I have planned and built many APIs, ensuring strong security with a clear RESTful interface.
Windows
I have very good proficiency with microsoft windows, office and related tools.
OS X
I have used OS X personally for many years in either a single or dual boot system.
Linux
Experience with many distributions of linux, focusing on arch and debian.
Agile
Good understanding of agile development methods, with focus on scrum methodology.
git
Experienced with using git version control, using github, bitbucket and stash servers.
HTTP Server
Experienced with setting up and managing both nginx and apache web servers.