I'm best described as a hacker in the classic RFC 1392-sense and have been since before that RFC was written. My first experience with a computer predates my own memories, but I have been told by those in attendance that my fate was pretty much sealed and that was that. Thirty-some years later, I'm still hacking.
- I am currently doing consulting and contracting work with a number of clients in the software development space, specializing in spatial systems and mapping technology. I am formerly the lead software architect/technology partner for Zoocasa.com, an online real estate agent matching website and brokerage in Canada owned by Rogers Communications.
- I have written and maintained several free software libraries for various languages such as Ruby and PHP. My Github profile features various bits of software that I've cooked up with. Current highlights include ffi-geos, ffi-proj4, and gd2-ffij which provide FFI-based hooks to the GEOS, Proj.4 and GD2 libraries for Ruby and geos-extensions, activerecord-postgresql-extensions, and activerecord-postgresql-cursors which provide Ruby library extensions to GEOS and the Rails PostgreSQL database adapter.
- I am currently working on separating the PHP GEOS extension from GEOS core.
- I have contributed to various open source and free software projects over the years including Git, PHP, PostgreSQL, Ruby, Ruby on Rails, Arel, PostGIS, GEOS, WebKit/Safari, various personal releases, and a bunch of smaller projects.
- I was once a PHP engine developer and helped implement various features of the actual PHP and Zend engines. Some of the features and changes I wrote remain in PHP to this day. I mostly dealt with code involving the browscap and PostgreSQL modules as well as some array management features and various bug fixes in the engine itself.
- I own a Solaris Ultra 10 workstation that once served as a Solaris testing machine for the PHP group back in the day.
- I was the original implementor of the php-stem linguistic stemming extension for PHP.
- See more
Freelance Software Developer, Architect, Consultant
Greater Toronto Area, ON
Currently available for hire. Specializing in spatial systems, GIS, system architecture and optimization, and open source development. Current clients include:
- Marcato Digital Solutions, Cape Breton-based software company that specializes in live event management software. This is a recent client and work is being spec'd out as this sentence is being typed, but in the general, work will include:
- Helping out with Rails development.
- Optimizing server architecture and application design.
- Helping with some software development life-cycle management.
- Providing consultation on current and future software projects and overall development.
- CanadaStays.com, a Canadian vacation rental site based in Toronto. Work-to-date includes:
- Porting existing MySQL database system to PostgreSQL while implementing PostGIS for spatial capabilities.
- Designing and building out the main CanadaStays.com listings search engine and regional hierarchy.
- Extending Laravel 5 with spatial capabilities.
- Revamping the team's automated testing system and philosophy.
Software Architect/Technology Partner - Zoocasa.com
Real Estate/Property Management, Toronto ON
July 2007 - July 2015
Zoocasa.com is one of Canada's largest real estate listing search web sites. My primary interest in Zoocasa.com was involved GIS applications and libraries.
As a lead/senior software developer/technology partner/effectively-CTO, I was responsible for:
- technology-related hiring practices.
- designing and implementing team development guidelines.
- designing the overall system architecture.
- measuring system metrics and optimizing for scale and throughput.
- helping design and implement the more interesting aspects of the overall application stack, including the initial web site crawlers using Kapow, various geocoding services, the quad-tree-based map clustering algorithms found in the main map search and geospatial storage and retrieval via PostGIS and assorted technologies.
- implementing various Ruby gems including a number of PostgreSQL and geospatial extensions for Ruby on Rails. These Ruby gems are available on my Github profile.
- establishing and maintaining the complete server and network infrastructure, which currently consists of some 30+ or so servers running various flavours of Linux and Citrix XenServer as well as a pfsense router/VPN/firewall system.
- implementing some somewhat exotic pieces of software such as our extensive geospatially-aware delivery limitation and tracking plugin for the OpenX advertising platform.
- researching and investigating various GIS technologies including many open source GIS libraries and software stacks.
Home Renovation Information, Toronto ON
December 2010 - July 2015
HomeRenovationGuide.com is Zoocasa.com's sister site. Us Zoocasa developers work on the two sites simultaneously. My responsibilities with HRG are basically the same as with Zoocasa, although we use more recent versions of various software components, such as new versions of Ruby on Rails and the Google Maps API.
Curriculum Information, Toronto ON
September 2006 - July 2007
CultureSource.ca is an online teaching object repository created via the Ministry of Heritage Gateway Fund and is currently maintained by Curriculum Services Canada.
As lead (and, for that matter, only) software developer on CultureSource.ca, I was responsible for all aspects of the application design and implementation. Core components included:
- a Ruby on Rails-based application that revolved around object classification and search.
- an inheritance-based database system built using some of the more obscure inheritance capabilities of PostgreSQL. This allowed us to quickly add object types via the database as needs arose without redesigning large portions of application code.
- the search itself included boolean parsers and spell checking in both English and French as well as document relevancy ranking.
Software Architect - Magic Lantern Group
Online Educational Video Streaming, Oakville ON
March 2000 - September 2005
Magic Lantern was once Canada's most dominant supplier of educational videos in the secondary and post-secondary educational markets. In 2000, Magic Lantern began work on Tutorbuddy and Magic Lantern InSite, a pair of web sites that provided the Magic Lantern video catalogue online via high-quality streaming video.
The InSite/Tutorbuddy system was written primarily in PHP with several language extensions written in C and C++ while PostgreSQL provided the backend database system. Video streaming services were provided by Microsoft's Windows Media Services and Apple's QuickTime Streaming Server. Video play lists and clip management features were developed using the ASX and SMIL markup languages.
Features of the system included:
- high-quality video compression provided by Sonoptic Technologies, now Access Digital Media. One of the major goals of the project was VCR-quality streaming video, which in 2000 was quite unique.
- indexing of videos into chapter-style segments using ASX and/or SMIL to communicate with WMS and QT clients.
- personal and shared playlists which could be emailed and sent to other users and students. Playlists could be created from videos and chapter segments and could be re-ordered as the user desired.
- secured video sharing via signed URLs and a Windows Media Services extension written in C++ to decrypt and verify secured URLs.
- a search engine using inverse document frequency indexing, linguistic stemming, boolean matching and term weighting.
- an unreleased feature allowed users to edit their own video clips online.
Current Open Source Projects
As seen on my Github profile.
- active-profiling - a profiling gem for Rails actions using RubyProf and GC profilers.
- activerecord-spatial - Ruby library that provides ActiveRecord with extensive spatial capabilities such as spatial associations and references through the use of PostGIS and PostgreSQL.
- activerecord-postgresql-extensions - a whole bunch of extensions the ActiveRecord PostgreSQL adapter.
- activerecord-postgresql-cursors - provides some support for PostgreSQL cursors in ActiveRecord.
- browscapper - a browscap file parser and user agent string matcher.
- ffi-geoip - an implementation of the native GeoIP Ruby bindings in pure Ruby via FFI.
- ffi-geos - an implementation of the native GEOS Ruby bindings in pure Ruby via FFI.
- ffi-proj4 - a Ruby FFI wrapper for the PROJ.4 Cartographic Projections library.
- geoip-extensions - extensions to the geoip-c gem.
- geos-extensions - extensions for the GEOS library.
- gd2-ffij - Ruby/GD2 interface using FFI bindings. Forked from the original dlopen-based gem and reimplemented via FFI while maintaining backwards compatibility.
- google-maps-tools - Google Maps tools for Ruby.
- ncsa-parser - a simple NCSA-style log file parser for Ruby.
- ruby-cryptopp - a Ruby encryption library built on Wei Dai's Crypto++. Written in C++ with a C layer. Currently rather unmaintained.
- chordie-how-lib - a library that encapsulates the logic for building chord and scale charts on stringed instruments such as guitar and banjo as well as keyboards and harmonicas. This library powers my website chordiehow.com.
- I play guitar, mandolin, banjo, ukulele, harmonica, some piano, and (eventually) some fiddle.
- I built chordiehow.com, a web app that generates chord and scale charts for arbitrary stringed instruments, keyboards, and harmonicas, and, yes, was named after hockey great Gordie Howe.
- I have security clearance with the Government of Canada through to 2016.
- I know enough not to get involved in a land war in Asia.
- This CV is valid HTML 5, generally valid CSS 3, is jslint-approved and has 30 lives.
- See more
Last updated on 2016-12-15 17:14:26 +0000.