David Dribin Resume Contents: Contact Information | Skills | Work Experience Education | Projects Contact Information Email: Web: http://www.dribin.org/dave/ Address: Available upon request. Phone: Available upon request. __________________________________________________________________ Skills Expert Skills: * Languages: Objective-C, Java, C++, C, Ruby, XML. * Mac OS X: AppKit, Core Data, Garbage Collection, Foundation. * Software Engineering: Development life cycles, design patterns, unit testing, refactoring. * Systems Programming and Device Drivers: POSIX (Linux, Darwin), TCP/UDP Sockets, multi-threaded programming, distributed programming. * Java: Servlets, JDBC, Ant, JUnit. * Unix Administration: Red Hat Linux, Apache, Postfix. Familiar Skills: * Languages: Perl, PHP, SQL, Assembly (PowerPC, x86, 680x0, PIC). * Mac OS X: Core Audio, Core Video, I/O Kit, Cocoa Touch. * Web: HTML, CSS, Javascript, CGI. * Systems Programming and Device Drivers: Proprietary Motorola RTOS, LynxOS, VxWorks, POSIX.1a and POSIX.1b real-time extensions, Solaris, SunOS, DOS. * Java: JSP, JNDI, JNI, Struts, Resin, Tomcat, EJB, JMS, Orion, JRun, jBoss. * Software Engineering: SEI CMM, UML, Extreme Programming. * Telecommunications: ATM, E1, T1, GSM, LAPD. * Technologies: PCI, Compact PCI, PCMCIA, ATA, ATAPI, SGML, XML, wxWindows, SWIG, Allegro game programming library. * Database: SQLite, PostgreSQL, MySQL, Oracle. * Technologies: Motorola 860/8260 communications processor, CORBA and RPC, Palm OS, Microchip PIC and Atmel AVR microcontrollers. * Unix Administration: Dovecot IMAP, Courier-IMAP, BIND, OpenLDAP. * Security protocols and models. __________________________________________________________________ Work Experience Bit Maki Software, Inc. (January 2008 - Current) President and Co-founder Founded indie Mac development company. The company's first product, Textcast, was released in December 2008. Textcast is Leopard-only and uses the Mac OS X text-to-speech engine, Core Data, PubSub, and Scripting Bridge. Bit Maki, Inc. (July 2006 - Current) Sole Owner and President Provide consulting services for a wide range of technologies, primarily focusing on Apple Mac OS X development using Cocoa and I/O Kit. Consulting - Fortune 1,000 Software Development Company (June 2008 - December 2008) Assisted development of a new 10.5-only Cocoa application. Application used Core Data, garbage collection, and NSOperation. Wrote custom UI controls and helped profile Core Data issues. Consulting - Mac and PC Utility Development Company (April 2006 - 2008) Ported Cocoa application and kernel extension to a Universal Binary for the transition to Intel and ported to Leopard. Implemented a few new features and fixed various bugs. The port to Intel required fixing endian issues, and the port to Leopard required working around deprecated and unsupported APIs. Consulting - A Web 2.0 Startup (October 2006 - June 2007) Wrote a Cocoa application from scratch to interface with their web site using a REST API for a better user experience than using the web site directly. Used Core Data and libcurl extensively. Consulting - National Association of Realtors (July 2006 - February 2007) Continued to work for CRT on the Variman RETS server and participate in the RETS standard community. Consulting - Game Development Company (December 2006 - April 2007) Helped prototype two games, one for a handheld platform and one for the PC. Written using Python and the Torque Game Engine. __________________________________________________________________ Freelance Writer Columnist for MacTech (July 2006 - Current) Author of The Road to Code, a monthly column in MacTech magazine focusing on the basics of Cocoa programming for Mac OS X. Book Reviewer Reviewed numerous books including Xcode 3 Unleashed, Ant in Action, and Java Persistence with Hibernate. __________________________________________________________________ Independent Consultant (June 2001 - July 2006) Sole Proprietor Provided senior level programming experience on a broad range of technologies from enterprise Java and C++ to embedded systems and device drivers. Also provided Linux and Unix systems administration skills as necessary. Consulting - National Association of Realtors (September 2001 - July 2006) Provided technical guidance for research projects investigating technology to help Realtors and their vendors for the Center for Realtor Technology (CRT). * RETS: Participated as a technical member in NAR's Real Estate Transaction Standard (RETS). Implemented CRT's open source RETS server (Variman in Java) and RETS clients (librets in C++ and Cart in Java). * Prototyped a hardware authentication device using Java iButtons and a PIC 16F877 microcontroller. * Prototyped a simple web services application to show the strengths and weaknesses of web services using Apache Axis. * Jamm: Set up a mail server using Postfix, OpenLDAP and Courier-IMAP. The administration interface to the LDAP directory was written in JSP using the Struts framework and released as Open Source. * RCCG: Demonstrated the ability for individual Realtors to setup their own web sites using property data from their MLS. The demonstration site was written in JSP with a PostgreSQL back end. Consulting - Red Mercury (December 2002 - January 2003) Added features to AcidImage product. (http://www.red-mercury.com/). AcidImage is written for Palm OS in C++. Consulting - Landmark Graphics (June 2001) Gave a one day seminar on the Ant build tool for Java. The seminar explained how Ant worked and how to write build files. __________________________________________________________________ The Net Squad (April 2000 - May 2001) Principal and Senior Consultant. Internal Development (October 2000 - May 2001) Architected, designed, and implemented a contact management system utilizing EJB, JSP, servlets, and JDBC connected to an Oracle database. The EJB system employed container manager persistence (CMP) with custom finder methods. The system was deployed on the Orion application server and prototyped on jBoss. The JSP interface was designed using custom JSP tags to allow for quick addition of new types of interfaces such as those for mobile devices under the Resin application server. Part-time systems administrator for the more than 10 Linux systems. Job functions included Apache and application server administration for the production and test environments, Oracle installation, Bind administration, and Linux iptables firewall administration. Consulting - Arthur Andersen (December 2000 - April 2001) Worked on a legacy Java servlet based risk management web application. Job functions included refactoring of current object design to provide more extensibility, fixing numerous performance and scalability issues, implementing new customer features, and fixing defects. The platform was JRun and Oracle on Windows NT/2000. Consulting - SportsAtHome (April 2000 - October 2000) Designed and implemented a content management system in Java using servlets connecting via JDBC to an Oracle back end and a web front end. Designed the communications protocol for a client-server based game and implemented the server side game logic using a JMS implementation and state machine API, which he solely developed. All of the Java development was precluded by a solid design phase using Together/J as a tool for UML class and sequence diagram modeling. Implemented a complete CVS version control system server, and a number of client installations in a heterogeneous development environment. Wrote a white paper on the use of JSP and its advantages. __________________________________________________________________ Motorola GSM BSS Software Development (1995 - April 2000, Summer 1994, Summer 1993) Senior Software Engineer at Motorola (http://www.motorola.com/). UMTS Project Designed a C++ subsystem to integrated an off the shelf ATM protocol stack into the UMTS system. The subsystem would be integrated onto a Motorola 860-based E1 network interface card in a Compact PCI environment. Overseas Training Assignment Participated in a 6 month overseas assignment to Motorola's Swindon site in the United Kingdom. Helped bring developers up-to-speed on the current architecture of the proprietary RTOS. Also lead a project to bring a PCMCIA ATA card to the proprietary hardware. GPRS Project Helped design the port of the proprietary RTOS API to VxWorks so that legacy applications could be ported to the new architecture. Ported a vendor's LAPD device driver to the hardware used by Motorola. He also designed and implemented an interface process in C++ that provides a legacy interface to the COTS LAPD device driver. COTS RTOS Prototype Worked on a 6 person prototype team to prove that using Commercial Off The Shelf (COTS) hardware and software components for future generations of the BSS architecture was possible and viable. The system was designed around the Compact PCI bus architecture, hardware based on the Motorola PowerPC 750 and 860 CPUs, the LynxOS RTOS, and a commercial LAPD protocol stack. Helped port the proprietary RTOS API to LynxOS, wrote a LynxOS device driver for the E1 network interface card running LAPD, and wrote a process that interfaces the device driver to the legacy applications. The prototype was a huge success and influenced Motorola projects both inside and outside GSM. Code Coverage Investigated various code coverage tools and helped incorporate code coverage into the development testing phases of Motorola GSM's software development life cycle. Filed for a patent regarding implementing code coverage in an embedded system. he co-authored a paper regarding code coverage for the Motorola Software Engineering Symposium that won first place for a Best Practice in 1998. Also participated in a Total Customer Satisfaction team regarding code coverage that made it the the Cellular Infrastructure Group finals. SEI CMM Actively assisted the GSM software development quality team to read Software Engineering Institute's Capability Maturity Model (SEI CMM) Level 5. Worked on a team to help integrate ideas of the Technology Change Management key process are of the CMM. he also participated in the assessment by attending the interview for the development are. The assessment went spectacular and the GSM BSS organization was assessed at Level 5, thus leap-frogging Level 4 completely. GSM is one of only a handful of SEI CMM Level 5 organizations world wide. Kernel Level Debugger Designed and implemented a kernel level debugger for the proprietary RTOS to allow debugging of the kernel, services, and device drivers directly on the target hardware. Previously, debugging of the OS meant adding print statements or using a cumbersome In-Circuit Emulator or Logical Analyzer. This project required intimate knowledge of the 680x0 family of CPUs, especially in the ares of exception handling and the memory management unit (MMU). He also had to find creative methods to debug a debugger and got very familiar with ICEs. RTOS Simulator Continuously participated in the proprietary RTOS simulator project. Ported the simulator from a 68030 based SunOS 4.1.3 environment to a SPARC based environment. Rewrote the kernel of the simulator from 68030 assembly language to C using SunOS 4.1.3 lightweight process (thread) library. Investigated and prototyped a redesigned simulator targeted for the POSIX.1a and POSIX.1b compliant Solaris 2.6 environment. This project was taken over by 3 developers and based heavily on the GPRS and COTS prototyping projects. Sanity Testing Team A member of the development sanity testing team for 9 months. This team performed basic tests on every internal release of the software. Helped transform the team from an overworked group of 3 or 4 people to a well-managed group of 16 people using rotations to avoid over work and burn out. This 16-person structure was still in use at the time of my departure. __________________________________________________________________ National Center for Supercomputing Applications (1993 - 1994) Worked at NCSA (http://www.ncsa.uiuc.edu/) as an undergraduate intern during NCSA's Mosaic hey-days. Wrote a Perl script to parse NCSA HTTPD access log files and create graphs based on the information. Helped setup Champaign County's World Wide Web server and marked up documents using Hypertext Markup Language (HTML). Also wrote introductory documents explaining how to use Unix and basic features of the Internet such as Telnet, FTP, mailing lists, GOPHER, and Mosaic. __________________________________________________________________ Education University of Illinois, Champaign Urbana (UIUC) BS in Computer Engineering, 1995 Final semester spent at the University of New South Wales, in Sydney, Australia as an exchange student. __________________________________________________________________ Projects Participate in on a number of Open Source projects. For a complete list see http://www.dribin.org/dave/software/. MAME OS X Actively maintain the Mac OS X port of MAME. Technologies include Core Audio, Core Video, OpenGL and Core Data. __________________________________________________________________ David Dribin -- Wed Feb 11 12:51:55 -0600 2009