Experienced Software Developer with diverse industry and technical experience. Wrote world class, award winning accounting and manufacturing software for the retail market and mission critical enterprise software for stock trading, mineral rights and publishing industries. Developed mainframe, mini-computer, server, desktop and web applications as well as firmware and device drivers for the security, data storage and medical industries. Has worked successfully as an employee and as an independent consultant with large and small teams, personally leading projects of up to 7 or 8 developers. Maintained communication and relationships with previous clients and employers to continue support, enhancement documentation and training as needed.
Great Communication Skills Consulting Experience Design/Architecture Agile Development Test Driven Development Automated Testing Business Applications Accounting Applications Windows SQL Server Unix and Linux Support/Debugging Embedded Systems Device Drivers Portability
Skills Experience Total Years Last Used ------ ---------- ----------- --------- C# .NET Expert 6 Present ASP .NET Expert 3 Present SQL Server Expert 12 Present Agile and Test Driven Development Expert 7 Present Business Software Expert 20 Present ORM - Entity Framework etc. Expert 8 Present HTML, CSS, XML, XAML Competent 10 Present Visual Basic 6 Competent 5 Present Windows Expert 15 Present Unix & Scripting Competent 20 2000 Embedded Software Expert 10 2000 Device Drivers Competent 2 1997 C & C++ Expert 15 2000 COBOL Expert 7 1990
Consulting and Design: Worked as an independent consultant for nearly 30 years. Gathered requirements, designed and sold projects.
Software Development: Developed, deployed, maintained and supported applications. Took over maintenance, support and enhancement of existing applications.
Project Lead: Lead business projects with up to 7 developers.
Research and Study: Developed embedded systems and device drivers on unfamiliar hardware from manuals alone. Joined existing projects, learning existing software from study of documentation and code.
December 2008 to Current Agelio Networks Denver, CO Consultant/Developer
I personally took over maintenance, support and enhancement of an existing SaS (Software as a Service) C# .Net web application for mineral rights owners to manage and analyze payments from oil companies. Upgraded components, made major changes to the existing application's user interface, web services, database and processing. Added a check stub file upload feature to allow customers to directly load their revenue data into the database. Added the capability to interface with well public record data through external SOAP web services from a background Windows Service. Added an interface to locate wells by latitude and longitude and display them on a Google map. Provided customer support as needed. Source code control was originally done with Subversion, changing to Git after a couple of years. September 2000 to Current Geos Global Synergy Boulder, CO Consultant/Developer
Initially rewrote an existing legacy system (DIBOL with flat files) to Visual Basic 6 with SQL Server, adding many new features and capabilities. This was essentially a ground-up design and development project as the legacy system was very limited in scope. The new application allowed the business (a private stock investment firm managing hundreds of millions of dollars) to expand and actually change their business model to start providing back office services to new traders all over the globe rather than just managing trades "in house". After several years of development, I started migrating the application to C# .Net, while continuing to use SQL Server on the back end. The application keeps stock market positions and helps manage risk, as well as assisting the back office to schedule the clearance and transfer of trades. It interfaces with banks to automatically verify trades and resolve discrepancies, generates reports, uploading them to Sharepoint, sends automated emails to the back office personnel, traders and brokers, and maintains historical data on thousands of trades. The C# .Net application uses Syncfusion and DevExpress components to transfer data to and from spreadsheets, it contains several sub-applications which display the data on flexible, customizable grids that allow the users to sort and group the data in various ways. Source code control was done using Microsoft SourceSafe at first, which was then replaced by Subversion and eventually Git. This was primarily a one-man project, but I brought on additional developers from time to time as needed. June 1984 to Current KnowWare, Inc. Boulder, CO Consultant/Developer
As an independent consultant, I have worked on various smaller projects over the years including games in BASIC for Cosmi in Pasadena, CA in 1984/1985, publishing management software for Anaheim Publishing in California in 1986, cash register variance analysis software in TurboPascal for JC Penny Denver in 1986, CD-ROM publishing software in C on a DEC VAX machine for Reference Technology in Boulder in 1986/1987, a stock market analysis program in TurboPascal that compared prices on two separate real-time systems to find inefficiencies for CFAM in Boulder, a printer device driver for Reference Technology in Boulder in 1987, a printer graphics processing and keyboard/LCD embedded software for Paradygm in Louisville in 1991, Accounting software for mobile home management for CREICO in Denver in 1994, device driver software and UI components for a Network Analyzer device for Agilent in Colorado Springs in 2000 and a web site for Paravance in Boulder in 2000. I did the architecture, design and project plan for the conversion of a CRM from VB6/Access to C# .Net / SQL in 2006. Also worked on various other small C#, C++ and C device driver and user applications. June 1991 to December 1999 Storage Technology Louisville, CO Consultant/Developer
I joined the "Iceberg" project when it was ostensibly "near completion", even though it was evident from the moment I arrived that there was significant work yet to be done. I learned the existing project by studying their extensive, but poorly written, documentation and C++ the code itself. I was assigned to the "Optical Link" team, which was responsible for the firmware that manages communication between the front end cache and the back end, RAID 5 storage devices. The firmware ran on a large multi-processor system with shared memory. The device itself was fully fault-tolerant and redundant so that any two parts could fail at any time without causing the system to lose data or suffer too much loss of performance. The code which had been written was not properly designed. I redesigned it completely and worked with a team of 5 or 6 others to rewrite it. There was also significant interaction with the other teams to work out interface specifications and problems.The product was released a couple of years later, but the project continued for several years as automated testing was continued and new features were added. Because of the hardware environment, the code was very complex and required memory locking and multi-threading. The development was done on Unix workstations with CVS used for source code control. August 1994 to October 1996 TVX, Inc. Broomfield, CO Consultant/Developer
The company was developing a security system with all of the standard entry/exit delay, tamper, zone and configuration options that normally exist in such a system, with the addition of CCD camera units integrated with the passive infrared detectors. When the system detected a break-in, the camera was to start taking pictures of the crime scene and sending them as proprietary packets across a network to the main unit, which would dial the local security company or police station and start uploading the pictures and other information. I was in charge of writing all of the firmware for the main unit. I was provided the schematics for the board itself, a wire-wrapped prototype, an ICE (In-Circuit Emulator), an oscilloscope and a stack of manuals for the processor (v55), UARTS, EEPROM chips, timers, Non-volatile memory, etc. as well as specifications for the networking and packets. I designed and developed the multi-threaded kernel and the rest of the firmware for the main module and continued to maintain, support and enhance it as the product was released and upgraded. The final product was capable of downloading images from the camera at the same time as it was dialing out and uploading the images to the security company and continuing to monitor the system for new events. It was a successful product, resulting in the purchase of the company by a large security firm a couple of years later. I came up with several innovative solutions to the problems of this project, including automated testing (which was not yet popular) and a Morse Code error reporting system that allowed me to receive fault information over the phone (which was very practical and even "leading edge" at the time). When the device went into production, I wrote a module that allowed the device to be easily floor-tested at the factory. January 1979 to October 1985 Mini Computer Business Applications Los Angeles, CA Programmer/Architect
This was one of the first companies to develop business applications in COBOL for the new Mini-Computer market when computers were just becoming affordable for small businesses. I was originally hired to port their existing accounting applications from DEC machines to the new Texas Instruments Mini-Computer. I worked with a team of 4 to 8 programmers on Accounts Receivable, Accounts Payable, Order Entry, Inventory Management and eventually Payroll. The software was later ported to Wang and various Unix based machines, then Radio Shack and eventually to IBM PC's when they arrived on the market. I worked as a project leader on a few of the projects, managing up to 8 programmers. I was originally an employee for the company and afterwards became an independent consultant working both in-house to port the applications to other machines, and also working directly with customers to modify and enhance the application to their specific needs.
Education and Training
Independent Study Boulder, CO Software Development
I have read books and documentation, attended user group meetings, study groups, workshops, seminars and webinars on the following subjects: ASP.NET, C#, .NET, XAML, XML, HTML, CSS, SQL Server, Software Security, Agile Software Development, Test Driven Development, Automated Testing, Refactoring, Microsoft Enterprise Library, Object Relational Mappers (IdeaBlade DevForce, NetTiers, Alachisoft and others), Embedded Programming, Linux, Unix, C, C++, Object Oriented Programming, Accounting, COBOL, Structured Programming. Hands On Electronics Boulder, CO Digital Electronics and Robotics
Basic Stamp, Mindstorms, TTL chips, stepper motors & various other analog and digital components. ITT Los Angeles, CA Electronics
Analog and digital electronics. University of Colorado Boulder, CO (no degree) Mechanical Engineering
Calculus, Fortran. Henry M. Gunn High School Palo Alto, CA