Click here for a Microsoft Word version of my resume.
Over 20 years of information technology experience, achieved in a broad range of projects ranging from single computer solutions to client/server and multi-tier enterprise-wide solutions. Throughout career, developed expertise in object oriented software, Graphical User Interfaces (GUI), Win32, Windows CE, GDI, GDI+, COM, XML, HTML, and .NET WinForms and WebForms. Experience includes working with customers as a consultant to define requirements, create solutions, and troubleshoot difficult technical issues.
Keller Graduate School of Management 2004 MISM (Master of Information Systems Management) with concentrations in eCommerce and Client/Server systems.
University of Michigan 1986 B.S. Computer Science, minor in Mathematics
For Senior Project designed and implemented an RCA 1802 cross-assembler and emulator on the IBM PC. Another project was an astronomy program to calculate, using spherical trigonometry, the coordinates of stars.
Languages: C#, C++, JavaScript, HTML, DHTML (Dynamic HTML), C, Intel Assembly, Java, Pascal, PL/I, FORTRAN, Basic. Tools: MS Visual Studio and Visual Studio .NET, .NET Platform, .NET Compact Framework, Embedded Visual Studio, MS SDK and DDK, MFC (Microsoft Foundation Classes), COM, STL, ATL, ActiveX, DirectX, WinCVS, SourceSafe, PVCS, SQL.
Development of automated test software for the Windows CE 5.0 Smart Phone platform and applications. Used Platform Builder, Visual Studio, and TUX from the Windows CE Test Kit (WCETK) to automate testing of UI elements.
Development and maintenance for Oracle Web Conferencing. System is a client/server solution for real-time collaboration over the Internet. Features include document sharing and presentation, audio, desktop sharing, and shared desktop control. Responsibilities include design and development of client side features, troubleshooting and fixing defects. Technologies used include C++, COM, GDI, and Microsoft Office Object Model.
Microsoft engagement to develop billing pages for Windows subscription services using ASP.NET WebForms and C#. WebForms provided secure entry of customer information and included integration with Microsoft .NET Passport. Also developed new Windows XP Service Pack 2 security feature using C++ and GDI, including the shield notification icon with security alert dialogs.
Development of ASP.NET web site for displaying categorized and rated business solution data. Development and support of background server jobs that connect to Allegis's partner server to request and download business partner and solution data from their database and store the data in a local SQL Server database, where it is used by the ASP.NET web site. Web site is built using C#, DHTML, and JavaScript. Server jobs use C#, SQL Stored Procedures, WebRequest (.NET), and XML that run under SQL Server Data Transformation Services.
Developed instant messaging and application messaging applications for the Pocket PC (Windows CE) and Desktop (Windows) platforms. Also did some work on the Palm OS client using CodeWarrior. Applications communicate with the server using the Jabber XML protocol. Pocket PC client was developed using Embedded Visual Studio with the Pocket PC 2002 SDK. Also worked on a client prototype based on the .NET Compact Framework. Application messaging involves dynamically generating forms on the device based on XML received from the Jabber server. Data entered on the form is submitted back to the server.
Navitaire Engagement was to develop an airline reservation system based on the .NET platform using C#. Developed .NET Windows Service and a .NET Service Controller application which ran as an icon in the system tray. The service provided a remote object that provided database connectivity to the system. With the service controller, the database to use could be configured on the fly without bringing down the system. Developed logging system so that performance and errors can be logged to various targets (System Log, File, or Database). Developed a web service that would simulate a credit card authorization system. Developed the web service portion of the test harness used in testing and stressing the system. Alberta Workers Compensation Board Engagement was to develop an insurance claim processing system based on the .NET platform using C#. Developed the database access layer over IBM's DB2 that also included a web service layer to provide database access from remote web applications. .NET database drivers did not support BLOBs (Binary Large Objects) or CLOBs (Character Large Objects), so developed a Managed to Unmanaged code layer that directly accessed IBM's CLI API for LOB (Large Object) handling. Developed a Large File Transfer system consisting of an application class library and a web service for transferring large batch files over the Internet. A .NET application would use the class library to initiate the transfer of a file to a server running the web service. The file would be broken into chunks that were sent concurrently to the web service, where the file would be re-assembled. Microsoft Engagement was to develop an authoring tool for authoring courseware, certification exams, and other materials using C#, .NET, XML, and XSD schemas. Developed custom user interface controls for displaying items from a schema. Developed C# code to walk through an XSD schema, extract items that needed to be displayed/edited, and then dynamically build a form for viewing/editing these items. Used multi-threading techniques to greatly improve UI performance. Developed code to package authored material to various formats including MS Word document and SCORM compliant HTML/XML. eBay Engagement was to develop a prototype for an auctioning system using Microsoft technologies and using Oracle for the database. Microsoft technologies used were C++, JScript, VBScript, XML, XSLT, COM+, and MSMQ. Developed the command-mapping object, which mapped commands coming in through the ISAPI extension to business layer objects. The command mapping object loaded an XML file containing a list of nodes, each specifying the command name, the GUID or ProgID of the associated business object, and a set of device specific XSLT transformations for generating the presentation data. Designed and implemented the transformation object that cached pre-compiled XSLT transforms and performed the transforms when necessary. Designed and implemented the bidding business objects, including proxy bidding and "Buy It Now" functionality. Designed and developed the error-handling feature where errors would be converted to XML entries in the XML document. The transformation would detect these error nodes and display appropriate messages to the user. Designed and developed the email queued component that was used to notify users of bidding activity or listing (new items to sell) activity. Business objects would use the email queued component to asynchronously send the email messages. Designed and implemented the loosely coupled events for notifying cache objects when command map, SQL, or XSLT files have been updated. Used SQL Plus and Visual Basic when designing and running tests.
Engagement was to develop an airline reservation system based on the .NET platform using C#. Developed .NET Windows Service and a .NET Service Controller application which ran as an icon in the system tray. The service provided a remote object that provided database connectivity to the system. With the service controller, the database to use could be configured on the fly without bringing down the system. Developed logging system so that performance and errors can be logged to various targets (System Log, File, or Database). Developed a web service that would simulate a credit card authorization system. Developed the web service portion of the test harness used in testing and stressing the system.
Engagement was to develop an insurance claim processing system based on the .NET platform using C#. Developed the database access layer over IBM's DB2 that also included a web service layer to provide database access from remote web applications. .NET database drivers did not support BLOBs (Binary Large Objects) or CLOBs (Character Large Objects), so developed a Managed to Unmanaged code layer that directly accessed IBM's CLI API for LOB (Large Object) handling. Developed a Large File Transfer system consisting of an application class library and a web service for transferring large batch files over the Internet. A .NET application would use the class library to initiate the transfer of a file to a server running the web service. The file would be broken into chunks that were sent concurrently to the web service, where the file would be re-assembled.
Engagement was to develop an authoring tool for authoring courseware, certification exams, and other materials using C#, .NET, XML, and XSD schemas. Developed custom user interface controls for displaying items from a schema. Developed C# code to walk through an XSD schema, extract items that needed to be displayed/edited, and then dynamically build a form for viewing/editing these items. Used multi-threading techniques to greatly improve UI performance. Developed code to package authored material to various formats including MS Word document and SCORM compliant HTML/XML.
Engagement was to develop a prototype for an auctioning system using Microsoft technologies and using Oracle for the database. Microsoft technologies used were C++, JScript, VBScript, XML, XSLT, COM+, and MSMQ. Developed the command-mapping object, which mapped commands coming in through the ISAPI extension to business layer objects. The command mapping object loaded an XML file containing a list of nodes, each specifying the command name, the GUID or ProgID of the associated business object, and a set of device specific XSLT transformations for generating the presentation data. Designed and implemented the transformation object that cached pre-compiled XSLT transforms and performed the transforms when necessary. Designed and implemented the bidding business objects, including proxy bidding and "Buy It Now" functionality. Designed and developed the error-handling feature where errors would be converted to XML entries in the XML document. The transformation would detect these error nodes and display appropriate messages to the user. Designed and developed the email queued component that was used to notify users of bidding activity or listing (new items to sell) activity. Business objects would use the email queued component to asynchronously send the email messages. Designed and implemented the loosely coupled events for notifying cache objects when command map, SQL, or XSLT files have been updated. Used SQL Plus and Visual Basic when designing and running tests.
Developed special printer drivers for a company developing a billing system for printed documents. Printer drivers were for Windows 98, Windows NT, and Windows 2000. One of these special drivers are installed in place of the standard printer driver for a particular printer. The driver would intercept certain GDI calls from Windows to gather information about the print job and prompt the user for billing information, and then pass on the GDI calls to the standard driver for the particular printer. Also developed a Windows NT/2000 service that would listen to certain registry key changes and configure printer drivers accordingly.
Worked in the development of new wireless products under Windows CE using Visual Embedded C++, COM, and ATL. Developed ActiveX Control to wrap Windows CE web browser control so that it was accessible through an IDispatch interface, and to add other functionality, such as a font size property that would handle the OLECMDID_ZOOM command, and add a text property that represented the inner HTML of the document. Worked on email application for the wireless environment under Windows CE. Developed COM objects for communicating with POP and SMTP servers using Windows CE sockets. Developed object for coding/decoding of MIME messages.
Worked in the development of new office products using C++, COM, XML, XSL, DHTML, and JScript. Developed localization tools and online help system for the product. Worked on UI components incorporating behaviors. Many of these components were implemented as XSL templates, so that the user interface can be defined using XML. Applying the XSL templates results in a user interface implemented in DHTML. Developed custom DHTML Behaviors in C++.
Worked in WBEM (Web Based Enterprise Management) technology. Developed XML Parser in C++, and OSD and CDF access libraries in both C++ and Java. Developed a hierarchical database storage and retrieval package in Java. Development and Maintenance of SmartStart, software for the installation and configuration of network servers. Platform is Windows 95 and Windows NT using C/C++ and MFC. Solved large issue where Compaq Servers were failing to install due to a large shipment of hard drives that were encoded with a test signal from the factory. Corrected issue in software in order to save the drives and systems by modifying SmartStart to initially zero out sectors in the MBR (Master Boot Record) so that the installation software did not erroneously detect existing data on the drive.
Responsibilities included developing COM (Component Object Model) subsystems to provide services to the client application. Client application was a graphical tool for programming, configuring, and monitoring a network of automation controllers (typically on a factory floor). Experience includes C/C++, MFC, OLE Automation. Platforms: Windows NT & Windows 95.
Maintenance and development of document imaging software on a windows platform using Microsoft Visual C/C++ and MFC.
Projects include:
Worked on IBM contracts. Promoted to Senior Consultant within1 year.
Lecturer of computer science courses in FORTRAN programming and computer fundamentals.
Awards: 1st Place team in the 1986 ACM East Central Regional Scholastic Programming Competition.
Courses attended:
Advanced Windows NT taught by Jeffrey Richter. Essential OLE: COM Marshaling taught by Don Box. Course in writing Global Programs (internationalized programs).