Cochrane Consulting


Network Appliance (7/06 to 12/06)

Design and Implementation of PKI Infrastructure

Principal architect and chief implementor of Microsoft Windows 2003 Server Public Key Infrastructure. This PKI is used in support of NetApp's internal security initiative to secure local file storage (EFS). In addition, all types of X.509 certificates are issued through the certificate authority to be used in authentication and authorization.
Visa USA (1/03 to 12/05)
Design and Implementation of Web Based QA Support Infrastructure

Principal architect and chief developer of a web based testing support infrastructure to facilitate testing Visa Resolve OnLine. This is a Web based client server information processing system using Tomcat 5.0, jsp, java and SQL Server NT. All code is written in java and jsp.
SurePay (6/00 to 12/01)
Responsible for the design and development of Java based XML processing servlets and class libraries in support of an E-commerce transaction platform. The system is composed of multiple servlet engines running on Solaris interfacing with an Oracle backend. All code is written in Java (3/00 to 6/00)
Responsible for the design and development of Java servlets in support of an Enterprise Java Bean infrastructure for directed advertising through point of sale devices. The system is composed of multiple Weblogic servers running on Solaris interfacing with an Oracle backend. All code is written in Java (8/99 to 3/00)
Responsible for the design and development of stock feed infrastructure for the offering. This entails interfacing with third party stock feed data sources and creating daemon processes that run on multiple operating systems. This system is comprised of multiple daemons running on Solaris and NT, and is designed to ensure high availability and maximum throughput.  All code is written in C++.
Internet Shopping Network (5/99 to 8/99)
Responsible for isolating and enhancing performance for Kiva applications that support the First Auction web site. This involved source code analysis and run-time analysis of several hundred thousand lines of C++ code.
Sega of America (11/98 to 4/99)
Research and Development Group

Responsible for the development of network gaming library for the next generation Sega gaming console, Dreamcast. In support of this effort, sample software programs are in the process of development for 3rd party game developers. All code is written in C/C++/Assembly language.

Charles Schwab & Company (1/98 to 11/98)
Electronic Brokerage Technology Architecture Group

Performed directed technology research by creating reusable core business Java objects; Demonstrated business applicability by prototyping a trading site using the Java Webserver and servlets. The Java classes communicate to legacy systems (CICS/MVS) to perform retrieval and posting of trading information. This technology is multi platform being implemented on both the Sun Java Webserver under Solaris and IBM Servlet Express plugin (on Netscape Enterprise Server) on AIX.
Developed a guaranteed level of service proof of concept login system for the trading website. This involved the scoping, design and prototype of login server that maintained a queue for user logins and informs the user as to their location in the login queue. This is designed to be used under heavy backend system load to inform the user as to their login status. This is implemented on the Sun Java Webserver using Java servlets and applets. In support of this I developed several utility packages in Java to simplify configuration and extension.
Viant (9/96 to 1/98)
Bank of America Global Capital Markets Group Extranet

Lead server side Java/C++ developer for a large extranet project developed for the Bank of America. This project involved developing Kiva AppLogic modules which are server side Java classes that are used to implement the business logic of the project which is a web based document management and retrieval system. I also developed a server side upload daemon to load documents into the database. For this, I designed approximately 20 new C++ classes using Rogue Wave and the IUS SDK C++ libraries. The Java/C++ code interfaces with an Informix Universal database and performs database updates, retrievals and searches. Documents are fully indexed for content search through a Verity Search engine and this is integrated with the server side Java code through the use of native methods on Solaris. All code is written in Java and C++.  
Project director and technical lead of the SVIP Knowledge Information Framework. This is an information system that is tailored to a clients needs based on application requirements. Applications are developed to handle data from information repositories that are accessed through "adapters". The client front end is either a custom C++/Java application or an HTML browser. Oversaw design and development of the entire system. Responsible for resource allocation, project plans, timelines and scheduling. In support of this project, I designed and developed a Java Network Library and associated server daemon to handle custom library requests. Native Java methods were invoked on a client that were translated over a sockets layer to be handled by the server components which returned results back to the client. All code is written in C and Java and runs on WIN32 and Solaris.
Visa International (8/95 to 9/96)
Design and Implementation of Web Based Information Processing System Principal architect and Project Lead of Visa OnLine, a Web based client server information processing system using Netscape Navigator, Netscape Communications Server, Netscape News Server, Netscape Mail Server and PERL.  Designed and supervised development of the entire system for a proof of concept system through to pilot. The client interface is Netscape 2.0. Netscape Communications Server also serves as the Web server.  Access control and network isolation is provided by V-One SmartGate technology.  HTML pages are dynamically created using PERL and the client side user interface is constructed using cgi-bin. This project was implemented utilizing Sun Netra Servers, a BSDI based Pentium box, and Windows NT servers.
McCaw Cellular Communications (2/95 - 3/95)
Integration of VRU Software into Internal CRP Pipeline

Integrated third party software into the internal Call Record Processing pipeline. I was in charge of integrating Voice Response Unit and Credit Card Services software into an existing C++ framework. This required converting the VRU/CCS software from K&R C to C++. The host platform is an HP/9000 server running HPUX.

Microsoft (5/94 - 2/95)
Porting of Microsoft Internal Mail System from Xenix to Windows NT

Designed and developed the routing portion of the mail server to run on NT. This is a complete re-write of the routing portion (traditionally called execmail) of mail for NT to support existing Xenix functionality with mail clients and Xenix hosts. Developed command line version of mail to run on NT in support of existing Xenix administrative scripts. Implemented command line NT service control management utility, remote NT host reboot utility, and logging libraries in support of the project. This will replace the existing mail system at Microsoft and is a worldwide solution affecting approximately 15,000 customers. This project was implemented on NT using WIN32 and C.
Microsoft (3/94 - 5/94)
Enhanced Internal Scheduling Application Added enhancements and fixed bugs for an internally developed course scheduling application used to schedule courses and seminars at conferences. This project was implemented on NT using MFC, WIN32 and C++.
Microsoft (10/93 - 3/94)
Internal Warehouse RF Client/Server Inventory Control System
Designed and developed a warehouse RF client/server inventory control system. Met with clients, discussed their needs, formulated specifications, implemented and demonstrated the system. This system enables a user to scan CODE 39 type bar-codes on product packages and update an Excel spreadsheet with the appropriate information. Multi user capability was implemented to allow multiple users to scan large quantities of product to update a single spread sheet or multiple spreadsheets simultaneously. The hand-held scanner communicated via RF to a base station connected to a PC containing the Excel spreadsheet. Third party software handled communication between the base station and Excel. I wrote the scanner software to interpret scanned codes since the scanner unit contained a 386 running DOS 5.0. I also wrote macros in the spreadsheet to interpret the commands from the scanner. This project was implemented using C and EXCEL 5.0 VBA.

Microsoft (9/93 - 10/93)
Disk Serialization Applications for Disk Duplication Designed and developed a site specific serialization application to run on Trace duplication machines. This application maintains a site specific database of serial numbers based on product codes. The application operates within the existing duplication framework and correctly assigns the next valid serial number to a duplicated disk. The application maintains a database with site specific information on the local duplication machine. This is has been running at several duplication sites around the world since 10/93 and affects all Microsoft disks. This project was implemented on Trace's SYSV version of
UNIX using C.
Also designed and developed a global client/server serialization application to be used by internal and external duplication facilities for disk duplication. This application maintains a central database that duplication sites around the world communicate with to obtain serial number information. The server portion contains all of the necessary information for the remote sites. I created the necessary stored procedures that the client applications use to update the database. The client front end uses the database information to create a duplication technology specific serialization file that is used by the duplication machine to serialize the disks. This is currently (12/94) in the process of rolling out world wide. The client front end was created using Visual Basic and VBSQL for the interface and db transactions and C for the DLL that is used by the client application to create the serialization file. The backend was implemented using SQLServerNT running on an NTAS server.
US West/Telesciences (7/93 - 9/93)
Implementation of Metered Billing and Fraud Detection in Cellular System

Implemented a metered billing and fraud detection system as part of a value added application for the US West NewVector Group. This project was implemented under DYNIX/Ptx on a Sequent MP host and was written in C.
Eastman Kodak (4/92 - 4/93)
Development of Image Restoration Algorithms for PhotoCD Products

Placed in charge of a small team to design and develop image restoration techniques for digital images. Our task was to develop and implement algorithms to remove the effects of dust and to remove the red-eye phenomena from images and to incorporate these into existing PhotoCD products. I coordinated the development of the algorithms with the research staff and designed and implemented the dust removal portion of the implementation, a platform independent C/C++ callable library. I created schedules, managed the activities of 2 software engineers and 2 technicians and oversaw the overall development of the library for this project. In support of this project I used an X Window based image processing library that I developed from scratch. This project was implemented, using a common code base, under SunOS 4.1.3 using C and on the Apple Macintosh in the Think C environment.
Eastman Kodak (2/91 to 4/93)
Development of X Window Based Image Processing Library
Designed and developed a image processing library used by imaging scientists to facilitate the development of imaging algorithms. The library provides a framework from which all manner of image processing operations are performed from reading and writing images to performing filtering operations. I generated all user documentation and example software for this library. The library was written in C and is a C/C++ callable library running under SunOS 4.1.3.
Eastman Kodak (6/90 - 2/91)
Development of Embedded Control System for Print Scanner to Create PhotoCDs
Designed and developed the software control system for a variable magnification print scanner system. This system required interfacing an area array scanner with a common photographic lens and allowing an operator to control the focus and field of view of the image. An Intel i80C196 controller was used to control the focus control and field of view stepper motors, the user interface buttons and the color filter lenses. As co-inventor of this system I was awarded the patent, Print Scanner With Soft Key Variable Magnification in 1993. This system was implemented on the Intel 80196 Cross development system, hosted on a PC, and implemented using C and 80196 assembly language.