1966-1968 General ElectricStructural Methods EngineerDeveloped Finite Element programs for thermostructural analysis of re-entry vehicles. Programmed in Fortran on IBM 7094 and GE 600 systems.
1968-1970 General ElectricMath AnalystDeveloped command and control programs for military reconnaissance satellites. Programmed in Jovial and assembler on a CDC 3800 system.
1970-1973 Eldorado ElectrodataSoftware Development ManagerDeveloped and managed a complete suite of software for small business computer systems. Among the products developed were tape and disk operating systems, asynchronous communication systems, word processors, sort/merge tools, application languages and compilers. In short, everything needed to support the sale of small business systems. Programmed in assembler on proprietary 8-bit minicomputers.
1973-1977 Intel CorporationLead Software Development EngineerWas second engineer hired in new Microprocessor department. Developed the first program for the 8080 microprocessor, an early BIOS/debugger. Designed and developed a complete range of development tools: disk operating systems, editors, compilers, assemblers, linkers, and in-circuit emulation tools for 8080 and 8086 systems. Developed a real-time kernel for the 8080. Programmed in PL/M and assembler.
1977-1982 Dharma SystemsIndependent ConsultantConsulted with companies in the process of adopting microprocessor technologies. Provided development tools and software development skills.
1982-1989 Convergent TechnologiesManager, Applied ServicesRan a department that performed custom development services for the companies’ line of x86-based distributed business systems. During this period, I learned a great deal about distributed systems.
1989-1995 CallosumIndependent ConsultantProvided software development services to client companies. Clients included Bull Corporation, Microsoft, and Xerox. Programmed in C, C++, and Smalltalk.
1995 – 2006 IBM CorporationSenior IT Architect1995 -1996 DSOM ArchitectApplied DSOM (Distributed System Object Model) products to a currency position trading system for a major bank. Implemented DSOM server and OpenDoc clients to provide near-real time currency positions to traders. Judicious use of caching reduced position calculation time from 7 minutes to 2 seconds.
Designed a publish-subscribe network for a major railroad. Acted as architect and team leader for the prototype implementation. Results of the project informed and influenced development of the Java Messaging Service and Message-driven Enterprise Java Beans later.
1997-2000 Consulting Architect, Software Group Technical MarketingWorked on the introduction of the Component Broker application server, which evolved into the WebSphere Application Server. Sold the first CB opportunity in EMEA, at Swiss Bank Corp. Managed the EMEA beta program, with teams deployed at Volvo, GAD, France Telecom, and Swiss Bank Corp. I learned a lot about CORBA and other distributed technologies during this intense period.
2001-2003 Senior Architect, Worldwide WebSphere Technical SalesFocused on Application Integration with WebSphere, using MQ and JMS. Conducted architectural design sessions with major corporations, such as 3M, Sabre, American Express, and American Airlines. Led a weekly discussion group on J2EE architectural patterns. With the advent of Web Services, this evolved into a Services-Oriented Architecture discussion group. I have given SOA presentations in North and South America, Europe, Asia, and wherever else needed. I have been an invited speaker on many occasions.
2004-2006 Senior Architect, Worldwide WebSphere CommerceI have applied my experience with application integration and SOA principles to help WebSphere Commerce evolve to better fit the SOA model. Version 5.6.1, in beta in 2005, has a generic service interface, which should reduce integration costs substantially and enable Commerce to participate in BPEL-style process choreography.
2006-present Ruby-on-Rails consultingI have been combining my love of Ruby and Rails with my extensive background in Enterprise Architecture to help clients build out web applications that are reliable, scalable, secure, and integrate well into existing systems.