Skills
Systems &
Technologies |
Veteran object-oriented designer and programmer.
Versed in user interface, database, networking, synchronization, mobile computing, data interchange and
web standards, and user scripting issues.
Self-motivated with excellent communication, leadership, and team skills.
|
Systems |
MacOS (OS X & Classic), Windows, EPOC R5, PalmOS, OpenStep, Newton OS |
Languages |
C, C++, Java, Objective C, SQL,
NewtonScript, Pascal, Object Pascal, 68K Assembly, SmallTalk |
Skills |
Object-oriented design, User interface design, threading, networking, relational database, synchronization,
SyncML |
|
Relevant
Experience |
Sr. Software Engineer/Team Lead, Apple Computer, Inc.
|
Nov. 2004 -
present |
Lead Software Engineer
.Mac Notifications
(lightweight distributed messaging system)
MacOS X 10.4 (Tiger), C, Java, XML-RPC, WebDAV
Implemented client and server sides of an architecture
which provides the ability for a client
process on MacOS X 10.4 (Tiger) to securely send arbitrary
light-weight messages (notifications) through .Mac to other interested processes running on
other systems. (In effect, extending MacOS X's CFDistributedNotificationCenter model to the
internet.) This is technology behind the "publish and subscribe" features in the
.Mac SDK 2.0
announced at WWDC 2005.
The client is a CoreFoundation framework coupled with a UNIX daemon which communicate via
XML-RPC with a .Mac server.
The notification "server" is a persona of Apple's powerful and flexible .Mac WebDAV server
implementation which receives
XML-RPC, accesses the WebDAV-based message registry, and coordinates with .Mac's custom DNS server to
distribute notifications to remote observers.
|
Nov. 2003 -
Feb. 2005 |
Lead Software Engineer
SyncServices WebDAV protocol for .Mac
MacOS X 10.4 (Tiger), Objective-C, WebDAV
Designed and implemented and Objective-C framework which layers synchronization and transactional semantics over the standard WebDAV protocol.
This protocol is used by Mac OS X 10.4 (Tiger)'s .Mac System Prefs panel to securely store data on .Mac's iDisk WebDAV servers
without requiring a .Mac Synchronization Management server.
This improves the scalability of the server side while reducing overall complexity and leveraging open
standards and protocols.
|
Mar. 2002 -
Nov. 2003 |
Lead Software Engineer
iSync Synchronization Management Server for .Mac
MacOS X, Apache, Tomcat, Oracle 8i, SQL, Java, XML
Lead the small team which implemented the high performance Java-based synchronization management server which powers Apple's .Mac iSync
synchronization service (Mac-to-Mac over the Internet) with a very aggressive schedule. Designed and implemented RDBMS schema and data access framework.
Created functional specifications for the server and its XML API. Integrated the synchronization accounts/service with other web-based
services offered by .Mac subscription service.
|
Sept. 2002 -
Dec. 2002 |
Delegate/Interim Vice Chair
SyncML/OMA Data Synchronization Working Group
Participated in the group which develops and
extends the SyncML DataSync protocol via email, teleconferences, and face-to-face meetings. Actively
participated in the definition of SyncML
protocol version 1.2, proposed a solution for "filtering" data, submitted Change
Requests and corrections, converted existing specifications to OMA document format, reviewed errata
and specifications prior to their public
release.
|
Principal Engineer/Architect, fusionOne, Inc.
|
Oct. 2001 -
Mar. 2002 |
Delegate
SyncML Core Expert Group
Participated in the group which developed the SyncML protocol via email, teleconferences, and
face-to-face meetings.
Participated in the definition of SyncML
protocol version 1.1, submitted Change
Requests and corrections, reviewed errata
and specifications prior to their public
release.
|
Senior Software Engineer, fusionOne, Inc.
|
Nov. 2000 -
Mar. 2002 |
Senior Software Engineer
fusionOne SyncML Synchronzation Server
Windows NT, Oracle 8i, SQL, Java, HTTP, SyncML
Implemented key features in a SyncML synchronization server. Features included: Java servlet implementing session support and HTTP authentication, device
capabilities exchange, multiple messages,
authentication & security, and C++
SyncML utility classes.
Provided feedback (on the specification and SyncML Reference Toolkit) to the SyncML working group during the development of the SyncML
specification (version 0.8 through 1.0.)
In April 2001, this server became one of the first certified "SyncML-compliant" servers.
|
Nov. 2000 -
Jun. 2001 |
Senior Software Engineer
fusionOne SyncML Reference Client
EPOC, SyncML, HTTP
Implemented critical features for a cross-platform synchronization client
core which uses the SyncML protocol. Features included: multiple messages, logging, authentication,
and device capabilities exchange. This client
core has been ported with minimal effort to the EPOC OS, BREW,
& *NIX, as well as an embedded application licensed to prominent manufacturers of mobile phones.
In April 2001, this client became one of the first certified "SyncML-compliant"
clients (making fusionOne one of only 2
companies supplying both a SyncML client and
server at that time.)
|
Sept. 2000 -
Nov. 2000 |
Lead Software Engineer
fusionOne Filtering XML Synchronization Server
Windows NT, Oracle 8i, SQL, XML
Improved fusionOne's XML sync server
(which uses the proprietary SyncAPI) to support the ability
to manage a subset of the records in a
user's fusionOne account (in this case, for a Sprint-branded service powered by fusionOne.)
This service went live to Sprint PCS
customers in September 2001.
|
Mar. 2000 -
Sept. 2000 |
Lead Software Engineer
fusionOne IrMC Synchronization Server
Windows NT, Oracle 8i, SQL, Java, HTTP, OBEX, IrMC
Designed and implemented server (Java servlet, C++ core, SQL storage) which connects fusionOne's synchronization infrastructure to devices which support the IrMC synchronization
protocol (using OBEX transports tunneled in the HTTP protocol.)
Designed and implemented an IrMC client/test application for automated testing of an IrMC server.
|
Senior Software Engineer/Scientist, FileMaker, Inc/Claris Corporation
|
Oct. 1999 -
Mar. 2000 |
Senior Software Engineer/Scientist
FileMaker Mobile Companion for Palm
Macintosh, PalmOS
Designed, specified, and began implementation of a stripped-down PalmOS-based FileMaker companion product. Named the product, and designed the box art (!).
The product shipped in Oct. 2000 and sold
over 30,000 units in its first quarter of sales.
|
Feb. 1998 -
Oct. 1999 |
Senior Software Engineer/Scientist
FileMaker Server 5
Macintosh, MacOS X
Designed, specified, and implemented a major revision of a cross-platform multi-threaded high performance server for FileMaker solutions. Extended
the server's capacity from 100 to 250 concurrent users, improved performance (rewrote TCP networking code, threading model),
made user interface and user scripting improvements.
Ported the server to Apple's MacOS X-compatible
Carbon environment.
|
Jan. 1997 -
Jan. 1998
|
Senior Software Engineer/Scientist
WebObjects, Java, OpenStep & MacOS X Server (MacOS X Cocoa)
Examined the risks and advantages related to Apple's
plans for integrating NeXT technology (OpenStep, WebObjects)
into MacOS. Investigated incorporating Java and other Internet technologies into existing Claris applications.
Ported and re-architected FileMaker Pro Server to OpenStep/Rhapsody (now MacOS X's Cocoa environment) for both Intel and PowerPC architectures.
|
Feb. 1994 -
Oct. 1996 |
Software Designer & Lead Engineer
FileMaker Companion for Newton
Macintosh & Newton
Defined, designed, specified and implemented an application which offered connectivity and synchronization
between Newton mobile computers and desktop versions of FileMaker Pro. Went from the conceptual stage to
feature complete product.
Implemented an plug-in API which became the basis for
FileMaker Pro's successful "Instant Web Publishing" functionality. Worked closely with
Apple's developer support group, offering feedback as it developed Newton Toolkit 1.5, Newton OS 2.0, eMate 300
and MessagePad 2000.
|
June 1993 -
Sept. 1994 |
Software Development Engineer
FileMaker Pro 2.1 & 3.0
Macintosh
Added support for speech recognition & dramatically improved (2000%) performance of AppleScript queries in FileMaker Pro.
|
Nov. 1992 -
Nov. 1993 |
Software Designer & Development Engineer
Cross Platform Abstraction Library
Macintosh & Windows
Designed, specified and began implementation of a C++ based
object-oriented framework which abstracted the differences between MacOS and Windows
(eventually this became the foundation for FileMaker Pro 5.) Participated in design discussions for a next generation
networked relational database engine.
|
July 1988 -
Apr. 1993 |
Software Designer & Development Engineer
FileMaker Pro 2.0, FileMaker Pro 1.0, Personal Information Manager, &
MacProject II 2.0
Macintosh & Windows
Implemented features and improved performance on a major revision of MacProject II (project management software.)
Used object-oriented techniques to design, specify and implement major portions of a Personal Information Manager which never shipped.
Implemented features, improved performance, and developed internal tools for FileMaker Pro 1.0.
Designed, specified, implemented, tested and documented AppleScript support in FileMaker
Pro 2.0. FileMaker was an early adopter of the technology, which has created a vibrant add-on community. Re-architected much of FileMaker's data access layer to factor user interface code from core functionality.
|
|