JonBlog
Thoughts on website ideas, PHP and other tech topics, plus going car-free
PHP software engineer available for contracting, Birmingham, UK

I’m a LAMP developer of some 15 years experience. For the past twelve months, I have been working on my own private projects, and am now making myself available for software engineering projects on a contracting basis. Prior to my current sabbatical, I did a 16-month contract for an excellent fintech start-up in Warwickshire (with three contract renewals). I am open to full or part-time arrangements.

This page is to tell you a little bit about me, so you can see if I might be suitable for your client or project. I’m currently minded to look at UK hirers only. Remote is OK for firms that are genuinely geared-up to work that way, but I expect that on-site will be generally asked for. I’ll initially prefer central Birmingham opportunities, but if you have a Midlands location that is commutable from Birmingham, get in touch for a chat anyway.

Some readers will find my blog via my Stack Overflow profile, where I ask questions, answer questions, advise users on how to use the site, and discuss the operation of the site itself. If you have flown in from elsewhere, feel free to read my contributions – I think that is a good place to start.

Link to Stack Overflow image

I also help with continuous integration issues on the CircleCI forum.

For the last six months, I have been working on an self-funded web forms start-up. This offers a simple wizard-style configurator and a deployment system designed to work on shared hosting, and aims to be a simple way to create contact forms on the web. This runs on Docker Compose in AWS in a microservices architecture, with extensive continuous integration and testing in CircleCI. I’ve posted some notes here.

I also have a self-funded web scraping project in the recruitment space. Previously I’ve worked in a variety of technical roles, including financial services, logistics and consumer services sectors. The bulk of my experience is with PHP and MySQL, an MVC-like framework such as Slim, and modularising for testability. I am a big proponent of Docker, Docker Compose and Traefik. I use CircleCI and I’ve TravisCI experience also. I do a lot of functional/unit testing using PHPUnit.

Fancy seeing some of my code? Check out Awooga, a website to report insecure programming tutorials on the web. I’ve not had time to promote it, but it is modular, functionally tested, and hooks into great tools like Scrutinizer CI and Travis. Want to read some of my writing, and see more of my work? Then do also check out I ♥ PHP, a tutorial for beginner coders.

On your side, you’ll either be looking for an engineer to undertake a greenfield project, or to lend a hand with an existing one. You need someone who understands the web and the agile development lifecycle. I like security stuff too: I’ve got an annoying habit of finding vulnerabilities, even in well-tested enterprise code. Whilst I specialise at the backend, I am comfortable with the rest of the stack: I use jQuery all the time, and will happily use Bootstrap.

I’ve worked remotely for 3.5 years at a stretch, so if you’re comfy with things like Jira, Trello, Redmine and Slack, we’ll get on just fine. If you can get to the centre of Birmingham, I’ll happily come meet you for a no-obligation chat. Shoot me your company URL and details of your enterprise or client to get started. My email is work2018.ws {at} jondh.me.uk.

To give you a fuller flavour of the technologies I’ve used – probably more than can be listed here – here is a sample of them. I’ll keep this up-to-date as I try new things.

Object-oriented PHP, using namespaces and traits, Composer, Packagist Expert
Written English (req’s analysis, tech specs, emails, IRC) Expert
Carrying a web project from ideation to completion Expert
Understanding of the MVC-like design pattern as applied to the web Very good
Docker, Docker Compose, using registries, containerising existing applications (read more) Very good
Relational database design and SQL Very good
Git (BitBucket, Github), code review, pull requests Very good
Consuming and offering HTTP APIs: REST, SOAP, JSON/XML, etc. Very good
Queues e.g. Gearman, Beanstalkd, etc. Very good
Security: SQL injection, XSS, upload vulnerabilities, etc. Very good
Web-scraping, and the policy issues around copyright Very good
jQuery and frontend JavaScript Good
Linux Bash/shell and investigating machine issues Good
Guzzle 3 and the event system Good
Unit and functional testing (PHPUnit with either Spiderling or WebDriver) Good
CSS and frontend design Good
Git, diffs, merging, interactive rebasing, stashing, commit hooks Good
Regular expressions, XPath Good
Frontend speed engineering (minification, uglifying, integrating into build processes) Good
User interface design Good
Apache, mod_rewrite, basic configuration Intermediate
Twitter Bootstrap (example) Some
WordPress (example) Some
Laravel Some
TDD Some

For good measure, here’s a few things I’m working on, learning, or would like to learn:

Missive form project (I have a Trello board full of plans!) In progress
Swarm (this is on the radar for Missive) Future
Kubernetes Future
React/Redux (or similar component-oriented frontend framework) Future
XDebug or Blackfire for debugging and performance analysis Future
Automation tools (Ansible, Puppet or Chef) Future

(Last updated 16 Apr 2018)