Principal Member of the Technical Staff, 1990 January - 1998 October
Citigroup
Advanced Development Group
12731 W. Jefferson Blvd.
Los Angeles, CA
90066
Citigroup's Advanced Development Group (ADG) develops systems that deliver Citibank financial products and services (Citibanking) to its customers and staff. ADG products include automated teller machines, home banking, and branch systems. ADG delivers these products to Citibank and its customers throughout the world.
Participated in the GSA Chip Card Pilot. Designed and developed a facility in C++ for Java Card applet installation and personalization. The applet download facility (ADF) complied with the Open Platform specifications established for Java Card by Visa International.
Developed two small demonstration applets (e-purse and e-loyalty) in Java for Bull's Odyssey Java Card. Designed and developed a Java native interface (JNI) in C++ for a Bull smart card reader. Designed and developed a user interface in Java to demonstrate the Java Card applets.
Assessed the Java Card 2.0 and Visa Open Platform specifications for capabilities and limitations over against strategic plans for the use of smart card technologies. Provided feedback to JavaSoft and Visa regarding these specifications.
Developed two small demonstration applets in Java for the Schlumberger Cyberflex® Pre-Release Java Card.
Participated in the development of strategic plans for electronic commerce, especially the use of smart cards in the context of electronic wallets and the use of Secure Electronic Transaction (SET) protocols.
Advised and mentored a team developing an on-line internet-based bill presentation system. The bill presentation system merges consumer bill content (including merchant enclosures) with merchant bill templates and presents the results through a web server. Merchant bill templates and consumer bill content are encoded using HyperText Markup Language (HTML) and Open Financial Exchange (OFX). The system was prototyped using GemStone Smalltalk and GemBuilder for the Web (GBWeb).
Analyzed and constructed a domain model for multi-modal biometric identification services, including enrollment and verification. The domain model provides the basis for integrating all kinds of biometric identification data, including (but not limited to) fingerprints, voiceprints, iris scans, facial scans. Built the domain model and supporting narrative using ShapeWare Visio and SoftQuad HoTMetaL Pro.
Participated on several teams that defined the next generation architecture for Citibank's financial service delivery systems based on the Windows NT operating system. The new NT-based architecture provides the foundation for all future Citibank delivery systems, including automated teller machines, home banking systems, branch teller staff systems, and internet-based banking systems. The architecture defines a framework of components that collaborate to deliver customer financial services, staff services and system management services to remote clients. Participated on the teams that defined components for the following areas of the architecture: financial peripheral device management, system management, software instrumentation and testing, customer information, security services, and application framework.
Participated on the team that developed the initial NT delivery system prototype for home banking. Developed guidelines for the definition of component interfaces and the implementation of components as ActiveX controls using the Microsoft Active Template Library (ATL) and Component Object Model (COM). Participated in the design of most of the components and interfaces that constitute the NTDS application framework and infrastructure. Developed examples using Microsoft Visual C++ and Visual Basic.
Designed and developed a library of C++ classes that encode the requests and decode the responses defined in ISO 8825 (ASN.1) and ISO 7816 (SmartCard). The ISO 8825 and ISO 7816 codecs were used as part of the software infrastructure for the Citibank SmartCard pilots.
Led the introduction and adoption of the HP Fusion process for object-oriented software development projects, including formal training in the Fusion method. Developed and taught several tutorials in the Fusion method.
Designed and developed a reusable C++ object framework for the financial device handlers within the financial device management subsystem of the common product line architecture. The new financial device management subsystem supports dynamic device configuration at startup (pluggable device handlers). Designed the classes using OMTool. Documented the framework design using ShapeWare Visio. Implemented the classes using Microsoft Visual C++ under Windows NT
Led and mentored a team of 10 developers in the object-oriented design and development of several financial device handlers, including card reader, cash dispenser, depositor, statement printer, and tamper switch monitor. These device handlers were constructed as dynamic link libraries (DLLs) using Microsoft Visual C++ under Windows NT.
Developed and published guidelines for object-oriented software engineering, especially using object- oriented analysis (OOA), object modeling with OMTool (OMT), responsibility-driven design (RDD), object-oriented programming (OOP) with C++, and object-oriented testing.
Participated on the team that defined the company standards of practice and metrics to achieve level 3 of the Software Engineering Institute (SEI) Capability Maturity Model (CMM), especially regarding analysis and design processes, but also traceability, project management, coding standards, and tools.
Led the team that developed an object model for the Relationship Management System (RMS) of the One Step Relationship Opening (OSRO) facility for the Global Relationship Banking (GRB) project using OMTool. Developed business objects for the OSRO prototype using IBM C Set ++ and System Object Model (SOMobjects) toolkit.
Analyzed and developed object models for two proprietary legacy service delivery systems using OMTool: Home Services Delivery System (HSDS) and the Modular Application Support (AppSupport) system.
Led the team that built an object model and designed C++ classes for a proprietary application regression test tool using OMTool. Assisted development of these classes using Gnu C++ and Gnu source-level debugger (xxgdb) under SunOS. Mentored two colleagues in object-oriented analysis (OOA), object modeling technique (OMT), responsibility-driven design (RDD), and object-oriented programming (OOP).
Designed and developed custom bank-oriented parts using Digitalk's Smalltalk/V and PARTS Workbench for IBM OS/2. Designed and developed parts assemblies to demonstrate the feasability of building custom applications for automated teller machines using reusable software components.
Participated in the design and development of MailView for the Macintosh using Digitalk's Smalltalk/V. MailView is a front end for CitiMail, the Citicorp global electronic mail service. Designed and developed classes that implement MacBinary and the Kermit file transfer protocol, and integrated them into MailView.
Designed and developed a CloningManager for Smalltalk/V Mac. The CloningManager identifies those classes and methods used by a Smalltalk/V application, and provides the image Cloner with lists of classes, methods, and globals that can be removed from the image during the cloning process.
Designed and developed printer support for the Windows 3.0 version of the Application Generation System (AGS/PC) using Microsoft C and the Windows SDK.
Participated in the definition of research and development objectives with regard to Object Technologies, including the TTI Object Platform (TOP) and its shared repository of software artifacts and assets (TOPShare).
Participated in the survey of media technologies and the definition of research and development objectives with regard to digital media.
Assessed and compared digital media architectures, including Apple's QuickTime, Microsoft's Multimedia Extensions for Windows (MDK), and the developing ISO HyTime and MHEG standards.
Provided digital video technology assessments for Intel's digital video interactive (DVI) and Fluent Machine's Fluency.
Developed an abstract model for portable and pluggable media objects, including media resources, devices, and presentation and editing services.
Provided Smalltalk-80 virtual machine (VM) support for microchannel (MCA) and industry standard (ISA) platforms. Augmented the Smalltalk-80 VM and virtual image (VI) to provide media support for HyperVu, a TTI proprietary hypermedia application prototyping environment for Smalltalk-80. Helped port HyperVu from Smalltalk-80 v2.5 to v4.0 (from MS-DOS to MS-Windows).
Designed and developed dynamically linked external primitive library support for the Smalltalk-80 virtual machine and virtual image. Developed support primitives using MetaWare High C 386.
Codeveloped a virtual object storage system as primitive extensions to Smalltalk-80 v2.5 for MS-DOS and Smalltalk-80 v4.0 for MS-Windows. Developed these primitives using MetaWare High C 386.
Developed Smalltalk-80 virtual machine primitives to support 8 bit color on the MS-DOS platform, including color palette management, color bit block transfers, and cursor bit block transfers. Developed these primitives using MetaWare High C 386 and Microsoft C.
Designed and developed a time and space efficient run-length encoding scheme for compressing and decompressing Images (FormBitmaps).
Designed and developed video drivers for MS-DOS to support 8 bit color for VGA and SuperVGA resolutions using MetaWare High C 386 and PharLap 386 Assembler. Supported video cards included Genoa Systems, Western Digital - Paradise, Tseng Labs, and Headland - Video 7.