I have 10+ years of experience building full stack web apps, with a focus on non profits and companies with a social purpose. I’ve spent the last 4 years working remotely for Ushahidi, leading development on our flagship application, and now managing the distributed development team.
I have taken projects from day zero through to launch, and iterating beyond. I enjoy both carefully architecting a system for the future, and just sprinting to launch when needed. I like to work close to users, be driven by their needs and deliver a great experience.
I tend to a collaborative working style, but enjoy the uninterrupted periods of independent work.
Skills & Experience
- Managing a distributed development team, defining tech direction and development process.
- Full stack web development, primarily in PHP and JS (AngularJS)
- Object orientated architecture design and programming, including MVC frameworks, SOLID principles, Clean Architecture.
- Leading an open source project, and working with the wider user and developer community.
- Automated/continuous deployment setup.
Ushahidi – CTO 2015 - Present
- Leading Ushahidi’s tech team for Ushahidi’s products
- Setting technical direction for Ushahidi’s products (Ushahidi and RollCall)
- Improving development process
- Improving software quality
- Built culture of code review and testing
Ushahidi – Lead Developer 2014 - 2015
- Lead developer Ushahidi 3. Lead the rebuild of Ushahidi’s flagship mapping and data gathering tool.
- Took the project from prototype through to launch
- Launch SaaS edition of Ushahidi v3, based on OSS product
- Defined clean architecture for Ushahidi v3 API and Client
Ushahidi – External Projects Developer 2012 - 2014
- Main technical contact and lead developer on custom Ushahidi deployments for external partners.
- Working within an existing legacy code base. Fixing security issues.
- Deployed and managed servers for client projects.
- Security Lead. Acting as main contact point for security issues and planning.
Torchbox Ltd – Drupal Web Developer 2010 - 2011
- Developed complex Drupal based sites for charities and non-profit organisations.
- Developed specifications for full Drupal sites, or enhancements.
- Scaling and optimising complex Drupal sites using varnish, nginx, memcache, static caching, PHP profiling, and database replication.
- Building tools for fast, standardised development and deployment.
- Building debian packages.
- Configuring and managing LAMP servers.
Greenpeace New Zealand – Web Developer 2009 - 2010
- Developed web applications and websites.
- Managing websites and social media feeds during live events under high load.
- Used the web for social change campaigning.
- Online fundraising and analysis of fundraising platforms to improve results.
- Developed and maintained a large Drupal site.
- Security testing and fixes on online shop.
- Integrating multiple sites with Payment Express for credit card processing.
- Linux server administration – managing multiple virtual servers, LAMP configuration, PostgreSQL, bash scripting, vsftp, automated backups.
Engineers Without Borders NZ – Web manager (Volunteer) 2008 - 2010
- Web and IT Manager for Engineers Without Borders NZ.
- Managed the website content and platform (Drupal CMS).
- Developed online payment (donation) and membership system.
- Member of the founding committee for Engineers Without Borders NZ.
Self employed web development 2002 - 2009
- Developed websites and database applications for clients and provided website design/development, database design and basic graphic design.
- Developed custom web applications based on Silverstripe CMS.
- Delivered a content management system using Jojo CMS (jojocms.org) and provided custom plugins for the CMS.
- Set up and management of Linux web servers.
Genesis Interactive – Web Developer Summer 2007 - 2008
- Developed web based applications and websites for clients. Implementing full sites from an overall design provided by a graphic designer.
- Improvements to existing in-house content management system. Including adding a new AJAX based content administration interface and security fixes.
- Developed a stock and inventory tracking component for the company’s flagship customer relations management (CRM) system – LiveCRM.
- Improvements to client’s CakePHP based web application.
- Set up a linux development server. Including Apache/PHP/Mysql, Mercurial and SVN for version control, Trac issue tracking, incremental backups, and Webmin control panel.
Navman – Software Testing Engineer Summer 2006 - 2007
- User acceptance testing (UAT) on car navigation software and hardware.
- Development of test cases for new handsfree kit product lines – F40, F50 & S Series products.
University of Auckland. Bachelor of Engineering (Computer Systems). Graduated 2009.