I'm one of those types of folks who can turn their hand to a bit of everything. I do web app development, using the Ruby on Rails framework. I do iOS development – apps for the iPhone, iPad, and Apple Watch – with Swift. I cover the full gamut of services that come under the DevOps banner. And I'll even project manage myself into the bargain. If you're looking for a good all-rounder who can be your entire development team then, as Leonard Cohen sang: I'm your man!
If your project is too big for one person, or if you're in a hurry to get it launched, I can still help out. I can be your "part-time CTO" – coming up with your IT strategy, figuring out the right architecture for your scaling needs, dealing with security & information governance, and helping you to hire the best development team for your project. Have a read through the sorts of services I can offer in a little more detail:
Web app development with Ruby on Rails
I first discovered Ruby on Rails back in 2005, before it reached 1.0. I fell in love with its simplicity and expressiveness, and I've been using it ever since. They require different tactics, but it suits projects large and small. I've used it to build apps that are used by a dozen people, and I've helped build systems that scale to hundreds of thousands of users.
I've put together a wee web site dedicated to my Ruby on Rails-related services:
iOS development for iPhone, iPad, and Apple Watch
I've built a fair few projects on iOS. Most of them have been focused on the iPhone as the primary use case, but thanks to Apple's clever adaptive user interfaces, they all looked good on the iPad, too. I haven't yet had an excuse to build something for the Apple Watch, but I'd love to give it a try!
I cut my teeth on Objective-C back in 2003, writing an XMPP chat app for Mac OS X, but recently I've switched entirely to Swift for iOS projects. It's a delightful language, and I reckon it's the way forward when it comes to developing for Apple's platforms.
Right now, I'm really interested in what we can do when we combine mobile apps with additional sensors to better understand our environment – on a personal level with Apple Health, or throughout our dwellings with HomeKit. There's a lot we can learn by collecting data from our context, correlating it, and producing insights…
DevOps scalably managing infastructure
I could talk all day about configuration management, if you give me the chance. I've built, deployed, and scaled physical servers, even racking a few of them myself. These days, much like everyone else, I rather like the flexibility of cloud-based services, whether that's plain ol' virtual machines, or using entirely managed services from the likes of Amazon or Google. It all depends on the size of the project, and the budget. I can help you figure out the right platform to build upon, and when you should be looking at transitioning to alternative solutions.
When it comes to running services, I've tended to manage machines with Chef or Puppet, but these days I'd probably opt for a fleet of disposable Docker containers, and the infrastructure to build them. I've run web servers, mail servers, message queues, databases, DNS services – in fact, I'm old enough to have run Usenet News servers!
In fact, my interest in all things Ops-related is such that I'm writing a wee book in my spare time called A Sneak Peek at The Internet. Its goal is to give software developers some insight into how the Internet they rely on really works.
Teaching delivering courses in Ruby, Rails, iOS, DevOps, and Agile practices
I love being able to help other people learn about technology. I've done a fair bit of teaching throughout my career, whether it's pairing with other developers, coaching a development team, or delivering training courses. I'm happy to put together bespoke training packages for your needs. We can cover web development with Ruby on Rails, building a scalable hosting infrastructure, iOS development, Agile project management, or a mixture of all these things together.
Managing Humans hiring, running, and scaling development teams
I've run a few teams on various projects. I can define software development processes -- Agile ones, to one degree or another -- and help teams work with them. I've interviewed dozens of developers, and I'm pretty good at spotting the ones who'll best fit a particular project. On the whole, I'd rather write code, but it's reassuring to know I can handle this end of the spectrum too.
Talking of software development processes, I'm definitely in the Agile camp. To me, agility is all about being able to respond to change. If the code we write is able to change in response to the ever-flighty needs of the market, then I feel I've done a good job. If we're able to change our process to suit the business as it scales, then we're doing the right thing. I do my best work when we can deliver small things, frequently, and I've always found that to be a workflow which suits the companies I work with.
Consulting Part time Chief Technology Officer
If you're needing a hand with the high level IT side of things, I can pitch in there, too. I've been "part-time CTO" to a few companies before, working out the company's IT strategy, figuring out the roadmap, scaling the organisation, that kind of thing. I'm pretty comfortable with business planning, building models in Excel, and presenting to investors.
If you've already got an app in production and you're looking for a bit of help to get it to the next level, I can review the code base, and give you some advice on the next steps. And if your existing developer has dropped out of contact – which sadly happens now and again – then I can step in and rescue you!
So, how can I help you?
Does it sound like I could be of some value to you? I hope so! Drop me an email, to email@example.com, and let's see what we can build together.