SEEKING WORK - remote / Brighton, UK
I have some availability for contract development work, freelance projects or consultancy. I have excellent programming skills in Ruby and Javascript (and many more). I'm also very good at system administration and DevOps (I've made Apache do some pretty wacky things in my time).
You would probably benefit from talking to me if:
 - you need one person who can manage your entire technology stack
 - you have a team structure based on functional teams and you would like to encourage cross-training
 - you have a great team already and you're looking for someone to complement them
One of my main skills is helping the business to explore their problem space. I'm not the sort of developer who quietly does as I'm told; I seek to understand your business and what it is I'm doing. I regularly have an exchange like this: "Is _x_ a valid scenario, and what should the software do in that case?" "Yes, x is a valid scenario, but I'd not really thought about that. Let me think and get back to you"
I strongly believe that shared understanding (and not the latest language or framework) is the key to a successful software project. I am speaking about the value of metaphor as a tool for understanding at the Better Software Conference in Las Vegas in June ( <a href="http://bscwest.techwell.com/sessions/better-software-conference-west-2015/what-s-name-metaphorical-power-our-ideas" > )
A bit about me
One of my most recent projects was a network appliance that uploads video files to S3. It was designed to be used on client site, typically behind both a firewall and a proxy server.
The application itself was a fairly simple Sinatra app, with asynchronous work being handled by Sidekiq.
The interesting challenges in this project were reliably building production units and allowing a robust update path while residing in, what could quite legitimately be called, a hostile environment. There are currently close to 1,000 units deployed and with very few exceptions they have been very reliable.
I set up a PXE build environment, installing Ubuntu with custom LVM partitions and some sudo tweaks to "encourage" the more adventurous techs to call the support desk before making any potentially damaging changes.
I also set up the ability to subscribe to release channels (similar to the canary, beta, stable channels for Chrome).
Unusually, the application and the operating system could be upgraded by the end-user independently through the UI, rather than requiring a firmware image. This helps mitigate problems such as heartbleed (not a problem we faced, but good to know)
Some other interesting things
 - I once used my programming skills to help capture a serial killer
 - I implemented a provisioning system for T-Mobile, the descendant of which is still in use at EE/T-Mobile/Orange
 - I helped mentor a team that went from 0 to £250k/week revenue in 6 weeks
 - I'm a qualified hypnotherapist
 - I've been a guest lecturer for Oxford University's Agile Methods course
 - I have recorded over 80 hours of unrehearsed pair programming screencasts (with my good friend and business partner Antony Marcano) which has been used as the basis for 2 PhD's (that I know of)
Github: <a href="http://github.com/andypalmer" >
Twitter: <a href="http://twitter.com/andypalmer" >
Blog: <a href="http://andypalmer.com" >
Pair programming: <a href="http://pairwith.us" >
Email: REDACTED_EMAIL