My first experience with computer programming was at Delaware Technical and Community College in 1977/78. At the time the technology was mainframes, punch cards, COBOL and Fortran. After the first year, I had lost interest and discontinued.

Fast forward about ten years, I had worked and studied my way up to a head chef at a nice restaurant. During this time though I still studied and did take a course in Basic programming. Also, I was very interested in the new personal computers. I was at school for food service management but took a programming course out of interest. One day the professor mentioned that I seemed to have a natural affinity to programming and about twenty minutes later I had a sudden enlightenment that I wanted to be a computer programmer. As I already was a chef and in my mid-20s and besides had already tried data processing, I was not encouraged by the deen but with my persistence I was able to switch to the data processing program in mid-semester. At first I had to catch up but by the second semester I was excelling and working as a tutor.

Sometime in my second year I started working part-time as a programmer at a small software company Software Services of Delaware. I was also working in a restaurant as I had to support myself. They liked me and asked me to work more hours but I told them that honestly, I made better money cooking and could not afford to work so many hours for what they were paying. The next day they offered me a full-time position starting if I would continue college on nights and weekends. I started my first full-time programming position with Software Services of Delaware and studied at night.

When I graduated with a bachelors of science in computer information science, I had also had five years of experience with Software Services. I had asked to join the company as a partner but having been turned down, I decided to move on.

During the past five years I had done a lot of structured top down programming, assembler and C, graphics libraries and the earliest event driven programming with Microsoft Windows and the C compiler.

In my next position at Rollins Truck Leasing, I started doing object oriented programming and event driven programming with Microsoft C++ and Microsoft Foundation Classes. I also did a large amount of interfacing with devices, serial communications, programming embedded controllers, handhelds and making them all communicate. That interest encouraged me to attend college to pursue electrical engineering. I did very well for a year but did not continue down that path.

I stayed with Rollins Truck Leasing for five years and then decided to do contracts and get exposed to more environments. After a short time doing SQL Windows for a credit card company, I was offered a contract at JP Morgan because they needed with a Microsoft MFC and C++ to work on the front end of a new system and to mentor others who were not experienced with C++ and MFC. This contract opened up my world to Unified Modeling Language and distributed programming using remote procedure calls wrapped in an IBM product using interface definition language (IDL) which were the precursors to my later interest and career move to positions using Component Object Model (COM) and Distributed Component Object Model (DCOM).

After a position for two years doing a lot of COM/DCOM and MFC and also mentoring and leading a small team, I was offered a position with First USA which became Bank One as I had worked with many from there at JP Morgan and RTC. They hired me over the phone for a technical lead position.

During my time with Bank One, I was doing C++/MFC but they had a Java Apache web project that was behind schedule and failing which I asked to take. I had been studying and taking courses in Java and was excited about the virtual machine. I was an early proponent of Java because it was so easy to port between operating systems which was very difficult with architecture dependent C compilers. They were wary of using Java but I was an early proponent before the big Enterprise Java Beans (EJB) that became the future language for the big back end Unix systems.

Also I was a big fan of Simple Object Access Protocol (SOAP) over HTTP using Extensible Markup Language (XML) because it was so much simpler than the binary component object model. I saw that it was the future of service oriented architecture (SOA) and from there directed my career in this direction and became an expert in Windows Communication Foundation (WCF) and Web Services Description Language (WSDL).

Of course, years later an even simpler protocol over HTTP would be Representational State Transfer (REST) using JavaScript Object Notation (JSON) rather than XML, would push much of the more complex SOAP/XML aside.

With Java and the virtual machine becoming popular and SOAP making SOA much easier, Microsoft earlier put out a Visual J++ but there were legal issues. To most everyone’s surprise, Microsoft complete changed direction of Visual C++/MFC to .Net and ASP.Net. I knew that Microsoft saw the future and though I argued with coworkers and management that this was the future, just like they fought Java, they did not see any advantage to the .Net architecture with the Common Language Runtime (CLR). I left Bank One to pursue the future of .Net.

I chanced in to a DoD contract that needed someone badly to catch a project up that was three months behind. The project was for a system to move all effects coming back from overseas through many processes and destinations. Also, everything was photographed. This system was my real introduction to Business Process Management (BPM) and workflows. Later in my SAIC career was a technical lead on a project for Federal Air Marshals (FAMS) to create a workflow and portal system to schedule air marshals and manage events. This was a very big BPM system that involved several government agencies and escalations of events.