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.
Fiji Island Escapes
The way I usually describe this project is: think of Hotels.com, but just for Fiji. Island Escapes was conceived by two guys who have deep connections into the hotel and tourism industry on Fiji, and 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. The work was done on a standard LAMP stack, using the CakePHP framework, sprinklings of jQuery, and a Python script that synced our availability tables with the booking operator’s.
(As of 2013, the site appears to be offline.)
CAM is an SaaS-style web 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 to employees 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.
CAM was designed in CakePHP, which turned out to be quite an adventure after the good folks at CakePHP HQ decided that version 1.2 didn’t need to really be backwards-compatible with version 1.1. The system used a mishmash of Prototype and YUI for Ajax stuff; I’d do it all with jQuery this time if I had to do it again. 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!)
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 was brought into RivalZone after they were already most of the way through the development, to help update and enhance the service back end as well as implement the designer’s work on the landing sites.
Since then, RivalZone has pivoted twice, first to something similar to the first version but just aimed at golf players, with the ability to locate and “check in” to golf courses with the idea that the courses could run specials and deals (sound familiar, Foursquare users?), 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. For the third pivot they were convinced to switch to Ruby on Rails; I had very little involvement with that version.
Linvatec Applicant Tracking
This was my first big “public” project, although it had both an internal and external side—a system for Linvatec’s HR department to post job listings which could be filled out online by candidates. The resumes, in turn, could be reviewed by prospective hiring managers, both applications for specific positions and ones in the “candidate pool” that hadn’t been hired yet but met the qualifications.
While the system really shows its age in some regards—tables, tables everywhere!—as near as I can tell, it was successful enough that Linvatec’s parent company, Conmed, adopted it, and judging by their web site a descendant of it was still in use as of 2012.
Netwolves sold a firewall/VPN appliance ostensibly aimed at enterprise customers which was essentially a rackmount PC running FreeBSD and a bunch of open-source software, with a proprietary web-based front end managing it all. Besides this UI, the main innovation their “WolfPac” box brought to the table was the remote management system: basically, you could pay to have Netwolves manage your box for you. SRM2 did most of what other network management systems did, but didn’t require any open ports on the customer side, a neat trick pulled off at the cost of not really being real-time.
Both SRM2 and the on-box front end were written in PHP, backed with PostgreSQL. I did a fair amount of the coding, particularly on SRM2, and led a three-person development team (a subgroup out of the whole twelve-person engineering group).
As far as I can tell Netwolves is still around, although their web site is so incredibly neglected it’s hard to be sure.
I take some pride in being an engineer who (kind of) likes writing documentation. I’ve authored/edited hardware documentation for Global Locate, edited documentation 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 very 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.