- iOS - UIKit, Foundation, Core Foundation, Core Services, Core Audio, OpenAL, SQLite, CFNetwork, Bonjour, Core Location, AV Foundation, Map Kit, Core Animation, Quartz, Game Kit, iPod Library Access, Keychain, In-App Purchase, using Objective-C and C.
- Mac OS X development - Cocoa, Core Foundation, Core Services, Core Audio, XCode, Interface Builder, QTKit, legacy QuickTime libraries, Installer plug-ins, launchd, using Objective-C and C.
- Java - SE (AWT, Swing, Java 2D Graphics, I/O, nio, sockets, applets), EE (JDBC/SQL, Servlets, RMI, JMS, XML parsing), Extensions (QuickTime for Java, Java Media Framework, JavaSound, javax.comm)
- Media production - Final Cut Express, Soundtrack, Garage Band, podcast distribution tools.
|Subsequently & Furthermore, Inc.
Marietta, GA /
Grand Rapids, MI
December 2003 -
Independent Software Developer -- Developer of end-user Applications sold on iTunes App Store
- "Road Tip" (January 2010) -- Developed iPhone application to find upcoming gas / food / lodging services for in-car use while driving on freeways. Determines current position and course, performs searches on licensed MapQuest data (via web services and proprietary XML protocols) to find and arrange segments of current road, finds exits along that path and nearby services. Implemented in-app purchase to sell ongoing subscriptions to the map data service.
- "Don't You Know Your Own Tunes?" (September 2009) -- Developed iPhone / iPod touch quiz game based on contents of user's music library.
Software Consultant/Developer -- Designer/developer of software for iOS, Mac OS X, and Java.
- Sonic Solutions, Inc. [Sub-contractor] (July-September, 2010) -- Integrated Core Audio AUEffects alongside VST plug-ins for Mac OS X audio conversion app, developed drag-and-drop GUI to customize and reorder effects.
- Double Encore, Inc. (June-July, 2010) -- Addition of new features to existing professional sports event iPhone application: in-app purchase, iOS 4 app-switching support, networking fixes for iOS 4, UI changes.
- Teleca AB (January-May, 2010) -- Worked on team porting user-activity monitor from Windows to Mac OS X. Developed installer plugins (Cocoa) and scripts, uninstaller app, daemon process to coordinate monitor tasks and download and install updates in the background. Also wrote stand-alone status bar menu (launchd agent) for user interaction.
- Double Encore, Inc. (Oct-Nov, 2009) -- Diagnosed and repaired Core Audio and networking problems with HTTP Live Streaming audio feature in professional sports league's branded iPhone application.
- Eight Interactive, Ltd. (June-August, 2009) -- Developed user interface and low-latency Core Audio infrastructure for client's iPhone OS text-to-speech application.
- Veldheizen, Inc. (March-December, 2006) -- Developed stand-alone QuickTime for Java application (Mac, Windows) per client requests, offering one-off video capture and editing. Solved long-standing QTJ issues regarding rendering of video capture data, handling of device or settings changes, and pre-configured capture-time compression settings.
Contract writer -- Feature article writer
- Apple Developer Connection (2008 - 2009) -- Writer of iPhone OS programming articles for company's registered developer program. Topics included customized table views with UIKit, network access with URL Loading System, low-latency audio synthesis, mixing, and capture with Audio Units in Core Audio, and positional low-latency streaming audio with OpenAL.
October 2003 -
Editor of industry-leading technology websites ONJava and java.net.
- Solicited article proposals (3-4 / week), reworked with authors, edited copy for clarity and adherence to company style guide.
- Wrote 20+ blurbs a week on site activities, open source projects, and industry trends. Also wrote five daily blogs and a weekly newsletter.
- Wrote 30+ by-lined feature articles for these sites (see below).
- Recorded, tracked, produced, and edited podcasts of developer interviews, technology talks, and opinion pieces.
- Represented sites at technical conferences: JavaOne, ApacheCon, JBoss World, etc.
January 2002 -
Contract Software Engineer --
Developer of Java-based network monitoring and configuration application.
- Designed, and coded all user screens, wizards, etc in Swing,
heavily threaded for responsiveness.
- Wrote network client classes to receive status reports and send commands, import/export configurations via Java Message Service (JMS), also with RMI, JDBC, and raw sockets.
- Co-developed DHTML web client to duplicate functionality
of an existing media browsing/previewing client, wrote servlet code
to proxy database and Jini connectivity to web client.
- Wrote servlet to report current and historical host status and
customer-support ticket info, with information from separate Sybase
and SQL Server databases. Created needed Sybase database tables,
triggers, and auto-ticketing script fired by trigger.
October 2000 -
Software Engineer -- Developer for Java-based visual XML editing application
used to map internet content (websites, databases, legacy servers) into a
- Added essential GUI functionality to application: copy-and-paste,
- Prototyped XHTML browser-like rendering engine in Swing and Java2D.
- Internationalized application for distribution in other languages and regions.
|Video Networks, Inc.
July 1997 -
Principal Engineer -- Team-lead and primary architect/developer
for Java-based client-server system used in television news-rooms.
Primary developer for Java servlet-based media browsing/ordering system
- Wrote Swing-based client user-interface.
- Designed distributed event scheme to update client UI's on arrival of new stories or changes made by other users.
- Rewrote dubbing code, which plays an MPEG-2 video clip in an external
application with text overlay from dynamically-generated BMP image,
while controlling VTR via serial cable.
- Developed "plug-in" system to allow for dynamic loading of arbitrary
business logic code on server and client.
- Also wrote code for back-end transport (file moves, database persistence).
- Co-architected next generation of this product, moving from client-server
to distributed architecture, using JMS and Jini for reliable self-networking.
- Developed servlet session-tracking and JSP-like "server-side tag"
functionality before those features were added to servlet API.
- Designed HTML and dynamic content for query and result pages.
- Wrote applet to upload files via FTP and hand off to servlet,
cryptographically signed for and tested on Windows (95/98/NT), Macintosh,
and Unix browsers (Netscape, Internet Explorer, HotJava, and others).
May 1994 -
Writer / Associate Producer --
Wrote top stories for live-hours, then produced update shows.
- Selected video and stories for 15-minute cut-in shows, assigned stories
to writers and copy-edited scripts. Adjusted rundowns during broadcast to
keep to time.
- Frequently filled in as copy editor, editing all scripts for two
live hours and produced a cut-in as above. Occasionally produced
|Pragmatic Programmers, LLC
E. Lansing, MI
1991 - 1993
M.A. -- Telecommunications (Media Arts emphasis).
1985 - 1990
B.A. -- English (Creative Writing emphasis).
B.S. -- Symbolic Systems
(Artificial Intelligence emphasis).