I'm a freelance software developer based in Uppermill, Saddleworth near Manchester in the North West of England, UK — specializing in Google Go (Golang), data mining / acquisition, search engine and big data systems.
Computer programming is my vocation. Along with tinkering with source code I'm an armchair naturalist with a keen interest in the natural sciences and luring people in to "debates" on our place in the universe.
I have a diverse set of skills and expertise in both frontend and backend development. Full-stack developer isn't my favourite term but it might best describe my skill-set. I do however have a strong bias towards the development of scalable big data systems / distributed systems, web crawlers, data acquisition, microservices, REST API design & development and other areas of backend development.
Development Platforms & Tools
- Proficient Linux user; operating system of choice
- Apple OS X
- LAMP, Nginx, Node.js, Tomcat, Jetty and Go's net/http
- Cloud Platforms: AWS and GAE
- VCS: Git, Mercurial and SVN
- Docker software containers & Vagrant
I'm a proponent of "KISS" — a key reason I'm a fan of Google Go. "Golang" strikes an excellent balance between developer productivity, safety, performance and the enforcement simple, explicit & maintainable code and a fantastic standard library.
Rust is another language that has recently piqued my interest due to its performance & security in the absence of a runtime and GC - this allows FFI without the context switching penalties that come with using C in Google Go.
- Google Go (Golang)
- PHP (OOP, Laravel, Silex)
- HTML / HTML5 (Canvas)
- XML (XSL family, XSLT, XPath)
- CSS / CSS3 / Responsive Design
- SASS / SCSS
- SQL (PL/pgSQL, CQL)
Serialization & Encoding Formats
- Custom binary protocols
- JSON (REST lingua franca)
- Cap'n Proto
- Protocol Buffers
Databases & Data Stores
I've worked with big data sets and understand the constraints & considerations depending on the data store, from traditional RDBMS to NoSQL platforms and the limitations of CAP theorem.
- PostgreSQL, PostGIS
- MySQL, Galera Cluster
- Amazon RDS
- Apache Cassandra
- Apache Kafka
- Sphinx Search
Web Design & Development
Although web design isn't my forte I have some creative aptitude, including UI / UX and accessibility considerations. I have a good understanding of responsive design and providing great user experience across a wide range of devices, from desktop computers to the plethora of mobile phone platforms.