Freelance / consultant 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 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, data analytics / analysis, 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
- AWS (Amazon Web Services) and GAE (Google App Engine) Cloud Platforms
- Version Control Systems: Git, Mercurial and SVN (Apache Subversion)
- Docker software containers & Vagrant
- ELK stack
I'm a proponent of "KISS" — a key reason I'm a fan of Google's Go programming language. "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 garbage collection - this allows FFI without the context switching penalties that come with using C in Google Go.
- Google Go (Golang)
- PHP: OOP (Object-Oriented Programming), 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 & Big Data
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. As component of data mining I have experience in data extraction and normalization (ETL).
- PostgreSQL, PostGIS
- MySQL, Galera Cluster
- Amazon RDS
- Apache Cassandra
- Apache Kafka
- Sphinx Search
I understand web design principles — including responsive web design, UI / UX and accessibility considerations. I also have experience in website profiling and content delivery optimizations using tools like Google PageSpeed Insights.