I’ve been a fairly hard-core software person with a fair amount of hardware experience since the late 70s, working professionally since 1982. Too many environments to remember, but lots of assembly language, C, C++, Objective C, Java and Smalltalk. Most of my background has been in embedded systems, but I’ve written literally thousands of Unix programs and shell scripts over the years. I am very focused on system architecture since my firm belief is that quickly developing a poor architecture makes long term maintenance extremely expensive, whereas spending additional time up-front for an excellent architecture will allow fewer people to maintain code, add features, and quickly solve customer problems.
I have had management level positions but prefer technical opportunities. My background is heavily involved with telecom/datacom but have done many different product types.
I became involved in microcomputers after reading an article in a ham radio magazine in the summer of 1976. Within a few months a friend got me access to a PDP-11/45 minicomputer at Princeton University and I was hooked. One of my first BASIC programs is still hanging on a wall in the basement.
In 1978 my mother let me purchase a KIM-1 computer, which taught me machine language, hardware programming techniques and generally developed my love of systems level programming.
I specialize in architecture details, C programming, customer support, and visits to customer sites. I’ve given talks at ATCA trade shows, served on advisory boards for several conferences and served on the PICMG’s ATCA for Physics software working group.
A generic overview of my background, oldest stuff first...
1982-1984: Franklin Computer Corporation. Many people still remember them as the company that cloned the Apple ][+. I was a software engineer starting at age 19. There were very few software people originally, so I was involved in a lot of projects. Definitely had my hands in some of the disk utilities, firmware for the various I/O boards, some CP/M drivers, etc.
Franklin was a lot of fun, and I still keep in touch with a number of people I worked with then. The funny part is that two of the former hardware engineers from Franklin each live about a mile from me.
1984-1989: Avant-Garde Computing. Also as a software engineer, where I wrote a lot of hand optimized Z80 code to monitor datacom lines and collect performance data. Think of it as a crude version of SNMP. One of the most fun jobs was doing administration of the minicomputers we used for development. Initially I worked on a number of Perkin-Elmer 32xx machines running OS/32, then later guided our transition to HP-UX (Unix) boxes.
Avant-Garde was experimenting with object oriented languages, and I was sent to Smalltalk classes. Once it made sense, I had a great time programming with it. I tend to follow OO methodologies even when working with non-OO languages. I am always happy to compare my code in C against many C++ programs and see which is more clearly written and easier for the average engineer to maintain.
1989-1991 Human Designed Systems. Again, as a software engineer. I was originally hired to lead a small team developing a new ASCII terminal, but our X-term looked like a more popular item, so I was put onto that team. I wrote the majority of the code on the I/O processor (80186), wrote device drivers, interfaced a third party IP stack, wrote the RTOS, and added new IP protocols. The RTOS project was fun; there was no easy way to get the IP stack running without an OS, but management was dead-set against writing one, so I quietly developed one over the course of a few days. Once they found out an OS was installed, there was some concern over my “wasting” time, but it made a lot of the system much easier to develop.
1991-2000 Water Wheel Systems/Virtual On-Ramp: WWS started as a consulting business with a number of local clients, such as CSC and DGM&s. Both firms farmed me out to their customers, so I was involved in a number of projects in both the military and telecom markets. I found myself traveling to various DoD subcontractors as well as some major communications companies. I was one of three people involved in their RTOS team, and spent a lot of time bringing up the RTOS on customer platforms, writing BIOSes, and then bringing up our ISDN stack on the customer’s equipment.
Looking for inexpensive internet access, WWS went into the ISP business. I was in charge of overall management, most technical issues, and a staff of tech support people.
In 1998, I oversaw the merger of two of our ISP customers into a new company called Virtual On-Ramp where I served as General Manager until the company was sold to a larger ISP.
1998-2000 Intelligent Investor Services: IIS was started by the founder of Telesciences as a way to do some unique stock option trading. I was the VP of Software Engineering where I helped develop the architecture for all real-time processes. In 2000 we sold the primary algorithms to another company.
2000-2010 Ulticom, Inc: I was a Lead Member of Technical Staff in the Core & Embedded Development group where I was responsible for the architecture of the embedded board software. Other duties included maintenance and additions to the RTOS, serving on quality committees (TL-9000), and development of company-wide coding standards. I was also responsible for training and leadership of the other members of the group and other basic management issues. I became involved in the ATCA community and served on the Conference Advisory Boards for both the MicroTCA Summit and ATCA Summit. I’ve given presentations at industry events, and was active in looking for new potential business opportunities.
2010 - Present Mission Solutions Engineering, LLC: I’m a Software Engineer Principal Leader, working on performance analysis of software we develop for our customers. My work is defense industry related.