David F. Elliott
Sunnyvale, CA 94086
317-361-6901 (Mobile)
dfe@tgwbd.org

Summary and Objective

Self-motivated, responsible computer programmer seeks opportunity to use computer skills to provide service and solutions for customers. Interested in a wide variety of computer-related fields ranging from writing bare-metal assembly to managing business intelligence data. Real-world work experience consolidating disparate sources of accounting/corporate data and delivering business-critical systems. Over twenty years experience with the x86 PC platform. Proficient with all mainstream operating systems including Microsoft Windows, Linux, and Mac OS X. Strong skills with IP-based and IPv6-based networking including design and implementation of wide-area distributed intranets involving firewalls, VPNs, and other technologies. Fifteen years C/C++ coding and debugging experience. Excellent communication and customer-service skills. Over ten years web-coding and web-server administration experience. Familiar with several web environments including ASP.NET, PHP, Java, and others. Over ten years Linux experience, six years OS X experience, and working knowledge of other UNIX-like environments including Solaris, OpenBSD, FreeBSD and IRIX.

Work Experience

Apple, Inc.
January 2010 to present

Driver Holdings, LLC
July 2008 to December 2009

At Driver Holdings I work as a software developer and general IT support person. I brought my years of IT experience to the table and in a short time familiarized myself with Driver's many business practices.

Independent Consultant
April 2007 to present

As an independent consultant I've had an opportunity to apply my varied skill set to meet my customer's needs. A notable project is working for VMware to support Mac OS X as a VMware guest. Due to my hobbyist work on the Darwin/x86 bootloader I was uniquely qualified for the task of writing a bootloader capable of booting unmodified OS X DVDs. Working closely with the lead developer of VMware Fusion I identified the needs of VMware and designed and implemented a bootloading system. VMware Fusion 2.0 Beta 2 and later versions include this support.

Another notable project is the advancement of my work on wxCocoa on behalf of Software 2000 Ltd. The wxCocoa project is particularly important as it is the only port of wxWidgets supporting the new 64-bit GUI libraries in Mac OS X Leopard. In addition to implementing several new features myself I was able to provide insight and guidance to Software 2000's in-house developers.

Computer Analyst, Science and Technology Corporation, Hampton, VA.
November 2001 to April 2007

At STC I worked on many projects of varied disciplines.

Web-based applications

  • Designed and implemented a web-based task order management system (ETOMS) for the EFS contract (NASA LaRC).
    • Uses WebObjects Direct to Web (D2W) technology
    • Request/response/order workflow
    • Labor utilization tracking
    • Travel/Other cost tracking
    • Electronic Customer Surveys
    • Custom reporting as needed by customer and/or project manager
    • Deployed on Apple Xserve G5
  • Extended ETOMS for the DDST contract (Dugway Proving Ground)
    • Work Breakdown Structure
    • Reverse engineering of and integration with:
      • Deltek Time and Expense (Microsoft SQL)
      • GCS Premier (COBOL)
    • Live job cost/funding reports
    • Subcontractor invoice generation
    • More fine-grained access control to allow for delegation of responsibilities.
    • Wrote scriptable C# program to dump data from an ODBC source to PostgreSQL.
  • Designed and implemented a web-based quality management system (ISO-9001)
    • LDAP-backed (incl. eDirectory and Active Directory) login process
    • Hierarchical store with hard links and symbolic links.
  • Assisted with creation of new commercial software development division

Commercial desktop applications and libraries

  • Developed PhotoFlair 2.x, an image manipulation program featuring TruView's patented multi-scale Retinex algorithm
    • Curves, levels, and variations image enhancements
    • Multi-level undo/redo
    • Worked around differences in implementation in various versions/flavors of Microsoft Windows
    • Ported to Mac OS X
  • Developed PhotoFlair for Photoshop
    • Rewrote Retinex algorithm in C++ suitable for in-process use.
    • Improved wxWidgets for use as a plugin to a non-wxWidgets application.
  • Developed PhotoFlair for Adobe Premier
    • Ported Photoshop plugin code to Premier API
  • Developed PhotoFlair library for use with custom projects
    • Created standard C-callable interface to the C++ implementation of the Retinex algorithm
    • Wrote documentation for the interface

In-house systems engineering and support

  • Improved corporate IT infrastructure
    • Migrated Active Directory and IIS to an updated server.
    • Configured Apple Xserve G5 as an Open Directory master at a remote site
    • Replaced MS Proxy Server with Linux-based (RedHat, now Fedora) NAT firewall
    • Added Fedora Linux bridging firewall to create a screened subnet configuration
    • Wrote all iptables firewall rules
    • Configured Cisco 2600-series routers at multiple sites
    • Reconfigured Motorola Vanguard from site-to-site configuration to internet-connected configuration.
    • Implemented OpenSWAN IPsec VPN between HQ and 2 other remote sites
    • Assisted in Novell Groupwise upgrades (5.5 EP to 6 to 6.5)
    • Assisted in Novell Netware upgrades (4.11 to 6.5 and 5.0 to 6.5)
    • Extended NDS schema for new services
    • Rewired/punched patch panels
  • Diagnosed Internet connectivity problems (bad routing tables at our ISP)
  • Assisted with several other IT and MIS projects
  • Deployed new desktops
  • Supported desktop users running all shipped versions of Windows (XP,2000,Me,98,95).
  • Rescued voicemail system (Meridian) from an imminent hard drive crash.

Tech support, West Corporation, Hampton, VA
July 2001 to November 2001

Worked at an inbound call center for MSN internet service. Required skills and responsibilities included:

  • Quickly assessing the customer's complaints and problems
  • Assuring customers that their problem would be fixed in a timely fashion.
  • Remembering common problems and solutions.
  • Referring customers to other support sources (such as OEM) when necessary.

CEO, The Computer Builder, Inc., Valparaiso, IN.
October 2000 to June 2001

In October 2000 I founded The Computer Builder, Inc. as its CEO. The Computer Builder was a for-profit corporation of Indiana which provided computer services including PC upgrades and repair, networking, and Internet services.

My responsibilities included:

  • Managing the business
  • Administering Internet servers
  • Creating web content
  • Providing on-site and off-site computer diagnostics and repair.
  • Designing, installing, and configuring on-site networks
  • Developing Internet services.

AT&T@Home Installer, CableTel, Valparaiso, IN.
August 2000 to October 2000

As an installer for CableTel (an AT&T@Home subcontractor) my responsibilities included:

  • Ensuring the subscriber PC does not have hardware or software problems before doing the installation.
  • Installing ethernet cards into subscriber PCs
  • Updating system software to Internet Explorer 5
  • Troubleshooting and correcting Microsoft Windows network configurations.
  • Diagnosing basic connectivity problems such as correct wiring, proper software configuration, correct provisioning, and sufficient signal strength.

In addition to these responsibilities I also diagnosed several @Home network problems such as street addresses being listed on the wrong tap, taps being listed on the wrong node, and improper routing of IP packets.

Computer Technician, Best Buy, Merrillville, IN.
June 1999 to January 2000

While working as a computer technician at Best Buy I helped retool the service department to provide better service to customers and generate more revenue which led to a profitable service department. Shortly after being hired I took on the responsibility of filing completed paperwork and entering customer information into a set of Excel files used as a very basic searchable database.

My responsibilities included:

  • Diagnosing and repairing PCs in-house
  • Consulting with customers at the help desk
  • Diagnosing PCs under warranty and checking-in/shipping them to the regional service center

Communications Skills

I am an effective speaker and writer at any technical level. As a performing musician I have learned how to read and captivate an audience. As a sailboat racer I have learned how to communicate quickly and effectively as part of a team. Working on others' computers has taught me how to effectively explain problems and sell appropriate services. I have consistently received excellent comments from customers and colleagues for both technical and non-technical abilities.

Technical Skills

Twenty years of computer experience has exposed me to many types of hardware and software. The following is a list of software and hardware that I have used and of which I have a good understanding. I am constantly learning new skills and I am willing to train myself and/or be trained on other systems.

Programming

Languages

  • C, C++, Objective-C, Objective-C++
  • Java
  • SQL
  • Python
  • x86 Assembly
  • C#, VB.NET
  • PERL
  • PHP
  • Javascript
  • HTML
  • Pascal

Environments

  • GNU (on Linux, OS X, Windows, and others)
  • Xcode
  • Visual Studio
  • Watcom (OS/2, Windows, DOS)

Toolkits/Libraries

  • wxWidgets (wxWindows)
  • WebObjects
  • ASP.NET

Computer Hardware

  • Apple Macintosh
  • PC compatible: IBM, Compaq, HP, Dell, Gateway, custom
  • Various UNIX: SGI, Sun, etc.
  • Network wiring/planning

Operating Systems

  • Mac OS X (10.1 through 10.6)
  • Windows NT4,2000,XP, Vista
  • Novell Netware 4.11,5.0,5.1,6.5 OES
  • Linux: Red Hat, Slackware, Debian
  • Windows 3.0,3.1,95,98,ME
  • DOS
  • Sun Solaris
  • OpenBSD, FreeBSD
  • SGI IRIX
  • OS/2
  • BeOS

Computer Software

  • Microsoft Office 95,97,2000,XP,2003
  • WordPerfect 5.1-9 (WordPerfect Office 2000) DOS, Windows, and Linux
  • Apache Webserver
  • PostgreSQL, Microsoft SQL, MySQL databases
  • Microsoft Access
  • CGI
  • Samba file and print server
  • WINE

Formal Education

  • Undergraduate studies at Purdue University Calumet in Computer Information Systems (June 1999-December 2000)
  • Undergraduate studies at Ball State University in Computer Science (August 1998-May 1999)

Certifications

CompTia A+

  • Scored above 90th percentile in all categories

Hobbyist Projects

Darwin/x86. As a long time OS X user I've always been interested in the open source foundation. With the release of Intel-based Macs the x86 port of Darwin has become a first-class port of Darwin, although primary for use on Macs. My goal is to revive support for generic computers. Most of my work on this project involves maintaining the x86 bootloader and writing a handful of kernel extensions to make non-Mac hardware work with Darwin.

Primary developer of wxCocoa, a port of the wxWidgets GUI tookit to the Mac OS X Cocoa toolkit. An interesting challenge was working out a standard method of allowing Objective-C messages to be handled by C++ classes. To my knowledge, no one else has accomplished this including OpenOffice.org and Mozilla. The closest would be Mozilla's Camino which is workable but not quite as defined.

Developer of the WINE Project, a Windows application compatibility layer and porting toolkit. In addition to many small fixes, I worked on the ASPI layer to allow Windows programs controlling SCSI and ATAPI devices such as scanners and CD-Rs to work in Linux.

Creator of The Kernel RPM Project on sourceforge.net. This project aimed to make it easy to compile and package a Linux kernel with a number of patches applied. Many of the ideas made their way into the Fedora kernel packaging system.

Other Information

After completing my A+ Certification I became a CompTia member. The most recent copy of my resume is available at http://www.tgwbd.org/resume.html