Full-stack developer primarily working in the iOS and Ruby on Rails ecosystems. I also develop for the Mac and Java platforms, and have past professional experience using embedded toolchains for PIC and ARM7. I am proficient in Objective-C, Ruby, Java, C and C++, and coming up to speed with Swift.
Comfortable working in large-scale enterprise environments, creative agencies, as well as working with entrepreneurs and startups building MVPs. I have managed offshore development teams, and am comfortable working offshore for extended periods.
I have worked Linux since kernel 1.3 and while I am not a professional sysadmin, I know my way around a Linux system. My preferred distribution for enterprise work is CentOS.
My personal development projects mainly revolve around embedded systems and electronics. Some of these projects are documented on this site.
Interested in full-time or consulting activities, including international assignments in developing countries.
LanguagesObjective-C, C, C++, Swift, Ruby, Java, Python (learning)
Frameworks, Open Source Projects, APIsCocoa, CocoaTouch, iOS, Rails, AFNetworking, Urban Airship, JSONModel, Masonry, Snapkit, Realm, FreeStreamer, FolioReaderKit, Estimote, iBeacons
APIsStripe, TransUnion, Plaid, Pusher, Twilio
PlatformsHeroku, Amazon EC2, Linux, Mac
MSIA iPhone App - Lead developer and technical lead
iOS, Objective-C, Swift
MSIA is a spiritual organization with an archive of audio/textual materials that were previously available via physical CDs or through a crude download mechanism on their website. The client wanted to move towards a more modern subscription model, and this app was their first step in that direction. The hybrid Objc/Swift app implements an audio streaming feature allowing users to listen to audio materials to which they are subscribed and interfaces with backed APIs to control access. The app also implements an ePub reader for presentation of textual materials. All materials were previously distributed as PDFs and I led an effort to convert these materials to ePub format from their original Quark or inDesign files. The app also provides features allowing users to tithe or donate to MSIA without using in-app purchase.
Note: I am not affiliated with, nor a member of MSIA
Developed an interface between the Lockheed Martin P3D flight simulator and Teledyne Wireless Ground Link (WGL) avionics system. The P3D flight simulator runs on Windows and implements an API that allows developers to extend the simulator, or interface with external control and display systems. My task was to build an interface between the simulator and the WGL so that real time flight telemetry was sent to the WGL to simulate its performance in a real aircraft for demo and trades show purposes. The interface between the systems used Airinc 429 and custom hardware supplied by Teledyne. The project was written in C++ and implemented an embedded web server UI for display of diagnostic data.
Vendor Self Admin Site - Schwag
Managed the specification and implementation of an Angular single-page webapp that enables vendors on the Schwag network to manage ad publication via the web. During this project I managed two contractors that implemented the Angular portion while I implemented API extensions to the Rails server to support the new features.
Industrial Tool Cloud Server MVP
Implemented a Rails backend to support a cloud-based industrial tool control system. The system provides a means to collect usage, performance, and maintenance data on use of the tools in the field. Interfaced with client to refine requirements and designed API specification for tool controller interface.
One80 Technolgies Provider iPhone App - Architect, Developer
One80 Technologies is an on-demand medical service. Consumers use an iPhone app to request service from nursing Providers that use a second app to receive the requests, which is distributed internally via the iOS enterprise distribution system. The Provider app allows providers to view the name of the requesting party and their location to decide if they wish to accept or rejct the request. If accepted the app takes the provider through a workflow that collects data on the pace of treatment, and handles multi-party payments.
One80 Technologies Consumer iPhone App - Architect, Project Manager, Developer
One80 Technologies is an on-demand medical service. Consumers use an iPhone app to request service from nursing Providers that use a second app to receive the requests, which is distributed internally via the iOS enterprise distribution system. The consumer app allows user to sign up for accounts, handles account verification via SMS thru Twilio and allows users to request treatment from One80 nursing providers. The app allows users to enter multiple addresses where they may request service, and allows users to split the cost of treatment between multiple parties, similar to how the Uber app allows a user to split the cost of a ride.
I implement the API layer and several other aspects of this app, and managed an offshore team in Argentina for the remaining app development.
One80 Technologies Server - Architect, Developer
One80 Technologies is an on-demand medical service that allows consumers to request IV rehydration treatment via an iPhone app. The company staffs a network of nursing providers that use a native app to control their on-call status and receive requests from consumers. Both of these apps communicate with a Rails backend that manages the workflow and of a consumer request and distribution of requests to providers based on geographic proximity. The server implements all billing functions via the Stripe API and maintains transaction ledgers and invoicing admin screens for financial clarity.
Teledyne WGL iPad App
Developed an in-house iPad app that presents a simulated aircraft cockpit with avionics to demonstrate operations of the Teledyne Wireless Ground Link (WGL) avionics system.
The app receives UDP broadcast packets containing XML doclets and display various flight parameters on simulated cockpit gauges and implements a charting screen to reveal parameter values over time. The app is used by Teledyne during sales meetings with major air carriers worldwide as well as during conventions and trade shows.
CALTY Newport Beach Lobby Touch Screen - Mac App
Mac, Objective-C, Core Animation
CALTY is Toyota's premier design studio, located in Newport Beach, CA. The studio's lobby regularly showcases full-scale models of Toyota concept cars and is the meeting place for studio tours that are given to executives and students. CALTY wanted to install an 80" touchscreen with a high-style multimedia presentation system to show mutliple HD videos, or image galleries of their designs, navigated by touch. I implemented this system using Objective-C with heavy reliance on Core Animation to achieve the necessary frame rates on an Apple Mac Mini.
Schwag iPhone & Android App
Schwag is localized ad network designed to present users with timely, nearby deals. I developed the iPhone app and managed implementation of the Android app by an outside consultancy.
Schwag Server System
Schwag is localized ad network designed to present users with timely, nearby deals. It has both iOS and Android mobile clients that communicate via API to a Rails backend, for which I served as architect and developer.
SkyCube Ground Control System
Developed ground control software for the SkyCube amateur satellite project. The server was written in Java and implemented a proprietary binary protocol optimized for the high-latency / low bit-rate radio system. Implemented finite state machine architecture for automated telemetry and imagery acquisition during satellite passes.
Haggle Rock (defunct)
Lead iOS developer of a video marketplace app. Developed Instagram-like short video functions in AVFoundation, API using AFNetworking, integrated Balanced payment processing. Worked with in-house designer to implement UI.
Goi - Learn Japanese Vocabulary iPhone App (retired from app store)
Goi is a Japanese language learning app that uses an clever algorithm to take users through an adaptive, and progressively more difficult vocabulary test battery. In order to test the customer's algorithm I built a simulation as a web application using Ruby on Rails to enable rapid iteration before beginning principle development. The resulting algorithm and state machine were then implemented in Objective-C. I also implemented the UI from customer designed art and provided guidance on UX issues.
Slooh iPad App (retired from app store)
Slooh is entertainment/education focused astronomy app designed for users with a casual interest in space. Slooh maintains a robotic observatory and the app allows users purchase space imagery taken by the Slooh observatory specifically for them. I developed iPad app and and Rails backend API and admin system. The backend integrates with Urban Airship for push notifications, performs iTunes receipt validation and is deployed on Heroku. The app uses StoreKit for in app purchases, AFNetworking for API interaction and FMDB for local database management. I used an interesting product named Ferry to directly consume photoshop comps and turn them into views with no slicing.
Mention, a Mac client for the defunct social network App.net
Katie Couric Touchscreen Control Software
Developed Mac desktop software to control a touchscreen for the set of Katie Couric’s talk show on ABC. The application interfaces with an IST Touchscreen bezel using an ASCII protocol and allows the Katie to navigate through a set of still images and videos. The app provides an editing environment that allows producers to build the media assets to be used in each show.
Robotic Camera Control iPad App
Developed an iPad app to control a Telemetrics robotic camera system and installed camera system and app at CCTV (China Central Television) studios in Nairobi, Kenya. The app is used to record on-air camera moves and play these moves back during the broadcast using a simple button grid on the iPad. The app interfaces with the RS-232 serial camera system interface using a Lantronix UDS 2100 serial to ethernet device server.
OnWatch! iPhone App (retired from app store)
OnWatch was my first iPhone app. It's a simple app designed to ensure sailors making night voyages remain awake and alert.
Parking Rules Data Entry Web Application
SMS Services Platform Proof of Concept
Developed a SMS service platform for testing a product designed to reduce 'flashing' in high density mobile networks in the developing world. Travelled to Lagos, Nigeria to install and support.
GPS Corrections Distribution System
Developed an NTRIP caster for distribution of GPS correction data to GPS positioning rovers used in the ground survey industry. Developed Linux appliance to send Real Time Kinematic correction data from fixed GPS ground stations to NTRIP caster. The caster, and Linux appliance code were written in Java and used Apache HTTPComponents to implement the Shoutcast ICY protocol variant specified by the NTRIP standard. Implemented a Rails based admin and user provisioning system.
2008 – 2010
Mobile Location Platform
System Architect and Lead Developer of a geographically redundant mobile location platform for the Clearwire WiMax network. Managed requirements gathering process, interfaced with business and technical colleagues during the proposal, requirements, development and deployment phases. Developed Java server software and Ruby On Rails based web admin and dashboard systems. Server was managed using JMX and SNMP. Developed custom SNMP MIBs and supported integration of SNMP MIBs with network management systems. Developed certificate authority in ruby for issuance and management of client side certificates.
2007 – 2008
GPS Assistance Firmware and Test Harness
Designed an embedded firmware stack to implement the RRLP GPS assistance protocol for RFMD on embedded ARM processor. Selected Objective Systems ASN.1 compiler and integrated ASN.1 code generation into build system. Developed bridge interface used to test hardware and assistance code with Spirent GPS simulation equipment.