Scientist & Storyteller

Selected App Development Projects

This is a selection of app development and data science work I've completed recently. References are available upon request.

If you need someone to create or update a desktop or mobile app; or to help with a tricky data science / machine learning problem, I can help.

Before contacting me, I strongly suggest you read through my contract guidelines.

Dramafy iOS App

Dramafy App

Dramafy, a streaming service for audio drama podcasts, approached me after users reported that their existing Cordova-based app was having severe performance problems.

On the advice of some friends, they wanted the app rewritten using Apple's native Swift frameworks. I rewrote the app from scratch, adding some additional features along the way, and ensured it looked and performed great on both iPhone and iPad devices.

The final result can be found here.

Rogue Amoeba's Airfoil Satellite

Airfoil Satellite

Image copyright Rogue Amoeba

I'm the lead mobile developer for Rogue Amoeba's' Airfoil Satellite line of products. Working with their UI designer, I created audio receiver and remote control apps for iOS, tvOS, Android, Windows, and a command-line based receiver for Linux distributions and the Raspberry Pi.



Wipro ITI asked me to help them develop an interpretive glyph recognition system for customer data.

At first, this seemed like this was a simple OCR problem. However, the input data consisted not of rendered images, but a stream of coordinate data that represented overlapping points and lines in two-dimensional space. Additionally, the problem scope required that the glyph interpretations be made with relevant contextual information based on other aspects of the data stream.

Some of the coordinate data formed primitive shapes that could be combined to form glyphs in a variety of fonts and spatial arrangements. Some of those arrangements were simply aesthetic, other arrangements conveyed contextual information relative to other glyphs. Some of the data represented additional contextual information necessary to interpret the glyphs correctly. Some of it was simply noise.

I worked with their engineering team to develop a multi-phase machine learning algorithm that uses a series of heuristic processes to filter out noise, combines primitive shapes into interpretable glyphs, then uses a series of post-processing pipelines to reinterpret glyphs according to their surrounding contexts.