About
Skills
Primary languages: PHP, C#.net, Javascript
Secondary languages: Bash, C, C++, VB.net
Tertiary languages: Python, Ruby
Data Storage: MySQL (inc. clustering), CouchDB, Memcache/Couchbase.
Concepts: OOP, MVC, MVVC, SOLID, REST (api’s), Waterfall, “Agile”
PHP Particulars: ZendFramework 1+2, Phalcon, Symfony, Doctrine, PHPUnit
Building: Jenkins/Hudson, NuGet, Composer
Support: Redmine (inc. writing plugins), Bugzilla
Other: Windows XP/7/8/2003/2008, Linux (particularly Ubuntu/Debian),
Hardware, usual geeky stuff. Amazon EC2/RDS/CF etc
Work History
MediaSkunkWorks, York – Jan ’15 – present
CTO. Returned to previous employer to continue work on the software previously written to help push it forward for release-to-market. Focus primarily on using a variety of programming languages and services to allowparallelisation of reports, data analysis and real-time graphing with reduced costbut also increased speed. For example using Amazon’s Lambda for the number crunching of data out of CouchDB into a pre-computed MySQL database to power an information website.
Randomstorm, Wetherby – Sep ’14 – Jan ‘15
Software Engineer. Rewriting of current API’s to be simpler, cleaner and adhere more to SOLID as well as aiming for REST principles where currently there were very little. Use of Doctrine and some Symfony. Standardising the multiple modules currently in the systems into a coherent set of independent modules with easy data exchange between them.
MediaSkunkWorks, York – Jul ’12 – Aug ‘14
CTO. Manager of a small development team tasked with primarily internal products moving to data-driven SaaS websites using the multi-terabyte datasetsstored in CouchDB.
Creation of backend and front-end systems for the analysis of and reporting on Google SERP pages. Built bespoke CRM for management and reporting of link building integrating with external tools to provide validation of links and correspondence management from a central, single UI. Bespoke was required due to the unique way the business is run with mass outreach and API integration – nothing was found that was suitable. Tools were designed with two purposes 1) improve performance of staff 2) provide tools to support as well as creating saleable products. Technologies used include Zend Framework,CouchDB, Couchbase, MySQL, C#, HTML5/CSS3/Javascript (requirejs).
Stickyeyes, Leeds – Apr ’09 – Jul ‘12
Developer promoted to Lead Developer of the in-house data analysteam/structure team. Focusing more on fully fledged programs built in PHP. Heavily MVC orientated (including Zend Framework). Also implementation of other design patterns such as singletons (primarily used for PDO connections), factories (for the distributed job system), proxy classes (to enforce separation of data from code) and the observer pattern (to allow plugins to core system modules).
Day-to-day administration of the node network of over 100 “worker” servers in various locations around the world. The worker servers run custom software I wrote in PHP to deal with jobs from a queuing system (customized beanstalkd – available on GitHub) that now forms the core of the business and allows other developers to easily deploy new scripts that required large, distributed data processing: a system that allows easy horizontal scalability just by adding new servers.
Set up and wrote map/reduce jobs running on our own 4TB CouchDB cluster to allow migration away from MySQL.
Also created websites for clients such as www.gamingsupermarket.com, based on Zend Framework’s MVC pattern.
Wrote custom node management software in .NET (C# and VB) which was ported to Linux using Mono as well as writing a custom QT scriptable web browser in Python for integration into our node network system written in PHP (also available on GitHub).
CleverClover, Wakefield – Nov ’07 – Apr ‘09
Website Developer for a web design company involving lead project developer roles.
About
I’ve been an avid developer since I first got a PC when I was 11 years old, initially playing with Basic and CompuServe Page Builder. I did not pursue it as a career really until my first full time job at a removal company where I wrote their invoicing and job management software in VB.net and also built their website. After that I got Clever Clover to give me a job and rapidly went up from there, “moving up the ranks” as it were. I’m not a fan of titles for developers when talking to each other but for the sake of job seeking I’ve been a lead, senior and CTO.About Me
Outside of programming I am still very geeky as my favourite hobby is video games, particularly MMO’s which I’ve been playing now since I was a teenager. I do however also like home DIY projects, snowboarding – particularly in Canada and socialising at the pub – where I generally end up discussing concepts to do with programming admittedly, I think that’s called passion though!