Ranea.org

Watts Martin’s web space

Work Projects

TRAIL

In March 2013 I joined TRAIL as their second developer, then quickly found myself as their only developer. TRAIL is a platform for teaching Internet literacy; their JobScout site is the first one out of the gate, designed specifically for job seekers. TRAIL completed in TechCrunch Disrupt SF 2013‘s “Startup Battlefield.”

While most of what’s visible on the site is a new design I implemented, a lot of the underlying code is still the original system. I’d started to rewrite the platform using Laravel 4, although this project is on hold as of early 2014. I’ve been refactoring the code as I can.

Nokia Point & Find

Point & Find was (one of) Nokia’s “Alternate Reality” projects, a downloadable application for some Nokia devices. Point & Find customers—business, tourist agencies, and the like—could create “worlds,” data sets combining images and and location metadata, that let P&F’s users get information about whatever they were looking at. If you’re thinking that sounds like the original Layar or Google Googles, you’re right.

I worked as a web developer on both the “Management Portal,” the back end system customers used to manage their worlds, and the consumer-facing landing site. We used a canonical LAMP stack with services built on the Symfony web framework as well as an in-house framework we inherited from Pixto, the company that became Point & Find. (Let’s tactfully describe that framework as “eccentric.”)

As Point & Find’s operations wound down, I worked as part of Nokia’s “Universal Search” team, developing on-device user interfaces in Qt QML. As far as I know that UI was never deployed, a casualty of Nokia’s shift away from Qt toward Windows Phone.

Point & Find Splash Screen

Fiji Island Escapes

The way I usually describe this project is: think of Hotels.com, but just for Fiji. Two guys with deep connections into the hotel and tourism industry on Fiji figured they could do a better job with the nuances involved in lodging and traveling there.

I did nearly all of the work on the site, both behind the scenes and in front: database design, front and back end implementation, interfacing with the payment gateway and the frustratingly API-free booking system, and most of the UX work (modeled on both the client’s design sketches and the work of a third-party graphic designer who came up with the logo and color scheme). I even ended up choosing the web host. I built it on a standard LAMP stack using the CakePHP framework, jQuery, and a Python script that synced our availability tables with the booking operator’s.

(As of 2013, the site appears to be offline.)

Fiji Island Escapes Splash Screen

Illumant CAM

CAM is an SaaS application designed to manage process controls in an enterprise. A less buzzword-laden way to look at it is as a calendar-based task system on steroids: a manager can assign tasks that require proof of completion, anything from a “I did this” checkbox to a form they have to download and re-submit. Tasks can be recurring or fired off on-demand, and completing one task can in turn trigger another task. (After Bob has completed the TPS Report, it’s sent on to Emily, who uses it to order more staplers.) Managers get high-level views of all the tasks under them with the ability to drill down, and auditors get their own reports with downloadable supporting documentation.

We built CAM in CakePHP, which became an adventure after the good folks at CakePHP HQ decided that version 1.2 didn’t need to be backwards-compatible with version 1.1. The system used a mishmash of Prototype and YUI for Ajax bits. I implemented nearly all of the system, from front-end to back-end, using design specs from the executive at Illumant whose idea CAM was. As usual, it was a pretty canonical LAMP stack.

CAM PowerPoint Presentation (It’s what I have!)

Other Work

Claw & Quill

This is an online magazine written using the Laravel 4 framework in PHP 5.4 and jQuery for the front end. It’s a personal project, not a work project, which is both good and bad: the progress has been glacial and it’s still in progress in some important respects, but the codebase is clean, the design is responsive and mobile-friendly—and unlike a lot of modern web sites, I’ve stuck to “progressive enhancement” principles, ensuring that the site remains readable even in console browsers without CSS and Javascript. For a site that’s mostly text this is an important feature; there are users who rely on text-to-speech readers, or are in rural areas using satellite or dial-up network connections (yes, they still exist).

Claw & Quill’s biggest problem has proven to be getting content, but that’s not a programming issue. You can visit its main site or its Github page.

RivalZone

Originally a social network for “everyday atheletes,” RivalZone featured both an iPhone app and a Flash-based web app for scheduling events—golfing, tennis, full-contact shuffleboard, whatever—with your friends, finding new people interested in the same sports you are, and keeping up to date with one another. I came on board after they were already most of the way through the development, to help update and enhance the service back end and implement the designer’s work on the landing sites.

Since then, RivalZone has pivoted multiple times, first to something similar to the first version but only for golf players, with the ability to find and “check in” to golf courses with the idea that the courses could run specials and deals, and then to something for tracking golf scores and allowing players to wager on games. For the first pivot I wrote a new back end in Python using Flask and SQLAlchemy, using RabbitMQ for a notification message queue—which was about 90% finished but never deployed. I departed the project around then; I know they’ve had multiple iterations since on different platforms.

Technical Writing

I take pride in being an engineer who (mostly) likes writing documentation. I’ve authored/edited hardware manuals for Global Locate, edited training manuals for Yahoo as a subcontractor, and did some authoring work—along with content management—at Cisco. In addition, some of my other jobs have involved preparing white papers. Unfortunately, I have few samples, as the writing I did tended to be for internal use.

One bit of more consumer-targeted work you can still find of mine is a review of Nisus Writer Express written for “About This Particular Macintosh.” My Github repositories have some documentation as well.