An experienced system architect/developer, Mr. MacDonald has been producing mission-critical software for more than 13 years. He has particular expertise in object-oriented design and development with 12 years experience building production applications with C++, as well as successful implementations using Java and Objective-C. Mr. MacDonald has been an architect of complex distributed applications, using UML tools to design and communicate the architecture. He is familiar with communication API’s at all levels of abstraction, from sockets to CORBA and COM/DCOM. Mr. MacDonald also has extensive experience with large SQL databases, imaging systems, software configuration management, and GUI application development.
Windows, UNIX (Linux, Solaris, HP-UX, SCO, AIX), MS-DOS
SQL Server, Oracle, MySQL, Informix, Versant, Sybase, Ingres, Unify
Graphical User Interfaces:
Windows, AWT, Swing, Tk, X11/Motif
COM, CORBA, SOAP, DOM, SAX, Sockets, Winsock, MFC, ATL, STL, OpenGL, RPC, TLI, C-ISAM, C-Tree
Nasdaq-Online (Mar 2001-Present)
Mr. MacDonald has been a consultant to Nasdaq on their Nasdaq-Online web site, which aggregates financial data from many different suppliers into a convenient form for executives of NASDAQ-issuing corporations. Components of the web site were incorporated in NASDAQ’s Market Intelligence Desk (MID) issuer-service product.
· Developed C++ COM components to provide common interface with data vendors (Hyperfeed, ILX, Nasdaq proprietary)
· Designed the architecture of the Peer Comparison functionality of MID and developed C++components to implement it
· Developed Java applets to give users highly interactive access to the customizable parameters of the XML-defined Peer Comparison data pages
B.Media (November 1997 – March 2001)
Mr. MacDonald was responsible for creating and documenting the conceptual object model of this enterprise digital content management system as a consultant to Banta Corporation, the developer and marketer of B.Media. B.Media used Java, CORBA, and OODBMS technology.
· Created (with Rational Rose) initial UML object model to guide development efforts of 11-member team.
· Designed the initial set of IDL interfaces
· Created IDL development tools
· Designed and implemented security architecture, transaction architecture and many components, including a Java implementation of a Macintosh file system server.
Intelidata Technologies Corp. (June 1997-October 1997)
Helped develop the first commercially available server for the OFX electronic commerce standard based on the Microsoft Financial Server (MFS) product, using C++ to develop COM components.
Sallie Mae (January 1997-June 1997)
As a consultant to Sallie Mae, Mr. MacDonald designed and implemented a multi-platform software build tracking system to meet auditing requirements. Build Tool allowed automated builds and build tracking in several different development environments on both UNIX and Windows platforms, supporting over 25 developers. Implemented in Tcl/Tk with C++ components.
Price Waterhouse LLP (June 1994-December 1996)
Mr. MacDonald consulted on data communication and architecture issues for the Price Waterhouse implementation team for ImDoc, a multi-tier imaging system for Sallie Mae.
· Designed C++ encapsulation for FloWare workflow API.
· Co-designed Solaris C++ application framework used throughout the system.
· Designed and implemented several Solaris applications in C++ including: multi-threaded optical-platter jukebox control program, inter-server work-folder transfer system, and various workflow applications based on FloWare workflow software.
· Developed low-level portion of TLI-based messaging system used by both client and server applications.
· Developed Motif-GUI administration tools with Tcl/Tk.
American Automobile Association (1990-1994)
Automated Routing Facility
Mr. MacDonald was the lead developer in the implementation of the Automated Routing Facility software for the American Automobile Association. The software uses a database of geographic information to expedite the production of AAA's TripTiks, and manages all the activity in a TripTik production facility. ARF has progressed through several revisions, and now drives a map printing system. AAA has re-sold this software to several of its affiliated clubs.
· Designed the object architecture
· Designed Informix database
· Led six-person implementation team.
Mr. MacDonald created Winsock and sockets-based messaging sub-system for this client-server tow truck dispatch system.
· Developed interface between HP-UX server and X.25-based mobile data terminal network.
Mr. MacDonald was the lead developer for this customer-service transaction processing system developed in JAM 4GL and C on HP-UX. Set coding standards, developed JAM and C function library, sockets-based messaging sub-system, interface for HP 3000-based legacy system. Also served as DBA for 40 million-record Informix database. Administered source code and configuration management.
International TeleManagement (1991)
Mr. MacDonald, helped move a multi-platform real-time network management system from a prototype through a successful IBM acceptance test. The system included Objective-C, C and Ingres Embedded SQL.
Mr. MacDonald designed and implemented a custom office automation and database system using C and Informix C-ISAM on an Altos Xenix system.
Education and Training
Computer Science, Princeton University, 1986