I am very proficient in C++ and Objective-C/Cocoa. Particular strengths are TCP/IP networking, standard internet protocols such as SMTP, POP3, and FTP, multi-threading, and MIME message parsing. I spent some time in the telecom world, where I learned Harris switch programming and Microsoft SQL Server, and implemented an IVR (Interactive Voice Response) system using Dialogic hardware. I am experienced on Mac OS X, iPhone OS, Windows, and Linux. Early in my career, I spent many years doing PC administration and setting up local area networks. I am also good at bash shell scripts, DOS batch files, and makefiles. I am good at technical writing and documentation, and can provide samples on request. Recent contract work has involved iPhone coding, Actionscript, Flash, and Amazon’s EC2 and S3 services.
| Self-employed contractor | May 2008 to present |
I’ve taken on many different jobs in this period. The largest project I did was a browser-based music streaming system, similar to Pandora. For the client end, I wrote a browser plugin in Flash/ActionScript. The Flash plugin connects to an app I wrote in C++ that runs on a Linux server. Metadata was stored in a MySQL database. Song files and album art were stored on Amazon S3 servers. I’ve also done many iPhone projects. The largest are a Hearts card game, a mapping app for finding parking garages, and an IM chat client. I’ve also contributed code to many other projects, including a finger-drawing app and a file-syncing app.
| Landmark Digital Services | March 2006 to May 2008 |
| 3100 West End Ave, Suite 300 | Supervisor: Rich Wardwell |
| Nashville, TN 37203 |
For this job I wrote code in C++ and Objective-C in support of Landmark Digital’s BlueArrow music recognition algorithm. It inputs short audio samples of songs from almost any source, such as over-the-air radio stations or internet streams, and can return the name of the track and the artist who recorded it. My primary focus was programming for Linux, but much of my code also works on Windows and Mac OS X. I also created lots makefiles and bash shell scripts.
| International Telecard Services | October 2001 to January 2006 |
| 100 Southeast Second Street, Suite 4270 | Contact: Albert Rains |
| Miami, FL 33131 |
I met the guys at this company through my contacts in the Florida telecom world. I did contract work for them for many years. They had a Harris switch, and I set up the same sort of telecom apps for them as I wrote for GICC a few years earlier. They did a small amount of callback in the early days, then changed their primary focus to debit cards. I set up new 800 numbers for them, edited digital recordings for promotional cards, helped with database and billing issues, and so on. I did most of the work remotely, while living in Nashville.
| Be, Incorporated | December 2000 to August 2001 |
| 800 El Camino Real, Suite 400 | Supervisors: Nathan Schrenk, Dianne Hackborn |
| Menlo Park, CA 94025 |
In 1999 I started using BeOS, Be’s Unix-like, MacOS-like hybrid operating system for PCs, and began programming for it. My main project was Pineapple News, a USENET newsreader. It lives on today on the Macintosh. It was on the strength of that program that I got hired as a C++ programmer at Be. While there, I worked primarily on their Sony eVilla project. In late 2001, Be was acquired by Palm, and its technology and employees were put to work on PalmOS, the operating system used in Palm Pilots at that time.
| Global Interconnect Corporation | September 1998 to October 2000 |
| 1001 Brickell Bay Drive, Suite 1510 | Supervisors: Leandro Klein, Samuel Mesel |
| Miami, Florida 33131 |
At this job I wrote callback and debit card call processing applications on the Windows NT platform, which managed calls on a Harris IXP switch. I also wrote an IVR (Interactive Voice Response) program, which used Dialogic boards for end-user interaction. It communicated with my main call processing apps via TCP/IP, so that each app could be run on a different computer, if necessary. The IVR would play recordings in one of three languages: English, Spanish, or Portuguese. Features included announcing account balances and the number of call minutes remaining. My IVR had a simple script language of my own design, so that prompts and interactions could be customized for each inbound phone number. Over time, I added many features to the system for GICC, such as remote callback triggering without DIDs from Sao Paulo, CDR generation, and account updating for resellers via interactive e-mail.
I was a full-time employee of GICC for about a year, and then did occasional system maintenance and contract work for another year.
| Telecard Communications International | February 1997 to June 1998 |
| 229 S.W. 31st Street | Supervisors: David Hold, Ken Kuzmenko |
| Fort Lauderdale, Florida 33315 |
I wrote callback and debit card applications at this job. There were not very many developers employed here, so I also did some Microsoft SQL server maintenance and interactive website programming.
| Technology Control Services | August 1994 to January 1997 |
| 1101 Brickell Avenue, Suite 1000 | Supervisors: Marc Thomas, David Butler |
| Miami, Florida 33131 |
I moved from Wichita, Kansas to Miami to take this job. Despite having no previous experience in telephony, I completed my first callback and debit card application in less than four months. It managed calls on a Harris switch via the HIL protocol. My supervisor at that time programmed the company’s LX, LH, and MAP switches, Rick Andreesson at Harris provided lots of valuable technical help, and another employee wrote the front-end application for viewing and modifying accounts. I went on to write several other Harris switch applications, including CDRLOG, a program that writes Harris call detail records to a database, and HILMONTR, a program for monitoring the HIL messages sent between a HIL app and a Harris switch. I also built and deployed the company’s very first Netware server and was essentially the MIS department for the first two years I worked there. I evaluated new technology as it became available, purchased peripherals like network cards, memory, and hard disks, and upgraded all the PCs to Windows 95. As the company grew, I trained two MIS assistants. They eventually took over that part of my job, leaving me free to concentrate on telecom programming.
| Newer Technology | May 1993 to February 1994 |
| 7803 East Osie, Suite 105 | Supervisor: Darryl Hinshaw |
| Wichita, Kansas 67207 |
I was hired at Newer to work on a DSP (Digital Signal Processor) programming project: an add-on for the Windows version of Adobe Photoshop. While there, I also inherited the maintenance of the in-house network and PCs. Newer was heavily Mac-oriented, so I had my first chance to install and use Netware for Macintosh, and I learned a little about 68000 assembler and programming in the Mac environment.