CV
I am a hands-on senior iOS Developer with over 20 years commercial programming experience and over 4 years experience developing commercial iPhone/iPad applications.
Although I am very focused on iOS development, I do have significant senior management experience which is often useful in project planning, execution, team mentoring and in client-facing situations.
I care passionately about usability and maintainability of the software I create. I find maintainability brings a focus on testability, automation, separation of concerns, evolving systems sympathetically with their original intent, using appropriate technologies, making illegal states unrepresentable and removing barriers to iteration speed. My interest in maintainability is leading me to be increasingly interested in strongly-typed functional languages; such as Haskell and Swift.
Skills
Tier 1 Languages & Technologies | Swift, Objective-C, Cocoa-touch, C++, C, Javascript, Web technologies (HTML, CSS, AJAX etc), Smalltalk |
Tier 2 Languages | Java, Haskell, Elm, Ruby, CoffeeScript, C#, SQL, Shell |
Experience
C/C++ Consulting with Sienda Ltd
10/2015 - Present
Firmware development in C & C++ for ARM-based custom networked audio hardware on a sweat equity basis.
iOS Contracting, The Learning Clinic
4/2012 - 10/2015
Contracting as a senior developer and “Technical Design Authority” iOS/Objective-C. Developed award winning iOS apps for patient observation recording, tracking and escalation between nurses and doctors within hospitals.
- Recruited, led and mentored an iOS development team.
- Modernised a legacy code-base by introducing well defined protocols between components and encouraged coding standards based on industry best practice.
- Refactored the code-base to be more maintainable and testable, with single-responsibility and dependency injection.
- Introduced modern iOS technologies such as auto-layout, ARC, Cocoapods etc
- Dramatically simplified and removed a class of bugs from networking code by eliminating developer produced multi-threaded code, and other asynchronous code by unifying under promises.
- Solved long-standing client facing issues with dynamic logging, improved diagnostics and remote and on-site trouble-shooting.
- Added a visual component test harness, which decreased the coupling between components, improved developer and tester productivity and reduced defect rates.
- Migrated the code-base from SVN to Git, providing training, support and advocacy.
Founding Director, getitmade.com
2009-2011
A site for inventors & designers to market-test and manufacture products. Full stack web development using an innovative continuation based open-source web-frame - Seaside of which I was a significant open-source contributor and was selected as one of the core-maintainers. Spoke at various conferences and developed related on-line training material. Deployed using Amazon EC2, Linode and Gemstone - an object database.
Captain, Circumnavigation
2005-2009
Sailed round the world aboard my own yacht. Kept a well regarded blog of my trip
Head of Software, Actix Ltd
2002-2005
Started as a contractor and finally became the head of software leading a team of 60 developers. Developed components in C++; a visual state diagram editor, a 3D terrain viewer, performed aggressive optimisation on a map component. Led development of a new distributed database-backed data-processing and querying system. The technology from this project provided multiple innovations within the company including a new web-based UI allowing rapid development of novel interfaces.
Technical Director, Nykris Ltd
2000-2002
Full stack web development in Java, TLC, Javascript using Oracle and PostgreSQL. Prepared and presented proposals to clients. Worked with clients to define, refine and understand their goals for their web applications and ensured the result matched their business objectives. Hired and led a small development team.
Founding Director, Tigerteam Software Ltd
1998-2000
One of two founding directors. My presentation resulted in the seed funding which allowed us to create the company. Developed innovative web-based interfaces in DHTML.
Head of Software, DK Multimedia Ltd
1994-1998
Started as a contractor and became the head of software with responsibility for 30 developers. Developed award winning multimedia CD-ROM software in C++. Pioneered new ways of working with ‘creative staff’ to help break-down the divide between technical and non-technical staff.
Programmer, Servotest Ltd
1991-1994
Developed a Windows based UI to a new range of test and control electronics in C++ and VB, including the test interface for a Formula 1 car testing rig. The software was used largely unchanged for the next 6 years within a wide range of products.
Programmer, Wessex Electronic Consultants Ltd
1989-1991
Embedded development in C. Windows development in Foxpro.