I have over 25 years experience as a professional software developer/designer/architect. I've worked on large scale distributed systems as well as tiny devices powered by embedded microcontrollers.
I am fluent in many programming languages (Lua, Erlang, Haskell, C, C++, Perl, Tcl, Python, Forth, awk, Java, shell scripting), many flavors of Unix (Linux, FreeBSD, Solaris), networking/Web technologies (Amazon AWS, RabbitMQ, ZeroMQ, low level TCP/IP, UDP, Erlang OTP), design paradigms (OO, Functional, Concurrency Oriented Programming), and microcontrollers (8051,ARM,MSP430).
I am very comfortable with public speaking and have presented at conferences as well as taught programming/technology to children and adults.
I am an enthusiastic learner and habitual explainer.
I am developing tools in Haskell, Erlang, Lua, C, Perl, Awk, etc (and whatever else that makes sense) to do secure communication software. My ongoing challenge involves both size and time constraints of tools. In dealing with time constraints I have become very familiar with tailoring the linux boot process to produce very slim and fast linux systems.
Some of my work lives in the Amazon Cloud (AWS).
I am also designing microcontroller based gadgets for a variety of security uses.
I worked on all types of embedded device side software solutions for the Iridium Satellite network. I was involved with a number of products and projects involving microcontrollers, encryption, USB, Bluetooth and motion sensor devices. See Multi-mode Tracker, Motion Sensor for Waking Satellite Transceivers, Hand Held Tracker for Iridium Satellite System and Hand Held Transceiver for Iridium Satellite System.
I also designed and implemented protocols for satellite handset authentication under Solaris and Linux.
Lead software engineer for a large defense contract called IBS (Integrated Broadcast System). IBS is a soft realtime message processing system with high availability and performance requirements. I am responsible for the design and architecture of the core system (which is implemented by approximately 20 software engineers). The system is coded mainly in C++. I was also the designer and implementor of the L3/Titan OWL (One Way Link) network appliance.
My general day to day work involves figuring out how to get the next generation of the system faster (via concurrency, distributed objects, performance tuning, etc) and firefighting software problems.
In early 2004, I briefly left L3/Titan (after completing a spiral delivery on IBS) to do development work on a realtime web analytics product for a small start-up. At the time, IBS had no new significant design work on the horizon and I wanted to spend some time honing my C++ skills within a realtime environment.
After a few months, IBS was granted a budget to ramp up R&D on their next generation system. As I had no critical tasking at Visual Sciences, I decided to return to L3/Titan.
Re-route was a small start-up firm specializing in internet email messaging.
Chief engineer of Re-route's email forwarding system. This system allows moving from one ISP to another to have mail automatically retrieved from the old account and forwarded to the new account. The backend was developed using C++, Tcl, Berkeley DB, and PostgresSQL. The system handles over 10,000 emails per day.
Re-route partners included MSN and AOL. Deployed an email forwarding system for Verizon Wireless to handle 215,000 of their customers transitioning over to MSN/Hotmail. The system handled over 120,000 emails per day. It was coded in C++, Tcl and Perl under Linux.
I was brought in to lead the client interface development effort for network management software (NMS) used to configure and maintain iDirect's flagship product (a broadband satellite modem). My primary charter was to improve the overall quality of the client desktop software for commercial deployment. This involved extensive GUI reworking (in C++/MFC and Tcl/Tk) and doing the database (MySQL) to user component mapping.
I was also involved with mentoring other developers through the porting of the server side C++ software from NT to a Linux environment.
I was the software engineering manager for the Business Systems Group (BSG) of BAE Systems. In this role I managed a large development effort: the United States Post Office's Mailing Online project. We developed the complete solution (from front end web services to back end print site interfacing) in Tcl (with a small amount of Visual Basic used to control document conversion). This system was backed using Oracle.
I was also involved with BSG's process improvement and designing/selecting of CM tools.
Sendmail was my re-entry into the realm of product development. Here, I was a software developer on a small team producing SMMS (the Sendmail Mobile Messaging Server). This was a critical new product for Sendmail's line of enterprise email solutions. They utilized my experience in Unix, scripting and large software design to help reorganize and extend the current product.
I was responsible for all of Digital Creations' projects in the realm of XML. Digital Creations is the producer of the Zope application server platform. Zope is an Open Source product written in Python.
In this role, my job was to shepherd the XML projects and define the future direction of Zope's XML support. I was also a co-designer of an XML presentation template mechanism that figures prominently in Zope's future XHTML scripting capabilities. This involved working with Digital Creations's Python Labs (the inventors and core maintainers of Python).
Alas, the 54 mile (each way) commute took it's toll...
In this role I oversaw the technological direction taken by the organization. I was the developer, teacher and facilitator of the company-wide software development process. I also lead the R&D division of BLaCKSMITH.
In February 2000, I initiated the wireless internet focus for the company. This was officially kicked off, in April 2000, when I gave a presentation regarding location dependent wireless technology at the 3G Mobile Communications Global Summit in Japan.
As part of the wireless initiative, I have led the R&D team in developing a WAP portal site and a WML based consulting product in Java.
In September 2000, I composed and presented a seminar for local area executives titled Unwiring the Enterprise. This seminar was jointly sponsored by BLaCKSMITH and Aether Systems.
I served as the Chief Java technologist at BLaCKSMITH. I was responsible for evaluating new Java technologies (e.g. Jini, JavaSpaces, etc), overseeing the hiring of new Java developers, advising projects and helping build a strong in- house Java expertise. I was a member of the BLaCKSMITH training staff where I taught courses in Object Oriented Technology and Java Development. I was also author of BLaCKSMITH's Object Oriented Analysis and Design course (a 4 day intensive hands-on course utilizing UML).
I was also the lead developer for BLaCKSMITH's ad-hoc database query application Querysmith. Querysmith was developed in 1997. My task was to refactor, improve and extend the application to become a general purpose commercial product. Querysmith is written in Java (1.1). I added XML capabilities to the product and provided an extension mechanism through JPython.
I have acted as the Chief Software Architect for the NBUS project. NBUS is an enterprise wide budgeting system being developed in Java. This system was architected to provide support for over 251 concurrent users. The centerpiece of the architecture is the dynamically distributed object foundation that sits upon an object oriented database which is synchronized with a legacy RDBMS. Gemstone/J was used as the application server. The design was influenced by various technologies including Jini, InfoBus, JavaSpaces and was implemented using EJB.
From January 1997 to December 1997, I worked for a subsidiary of BTG called Community Networks. There I was the lead software designer and architect of Pulse Pressworks (a community based Web site creation and publishing software suite). Pressworks was targeted for the Cable-based Internet market. Pulse Pressworks was developed using Java 1.1, Tcl/Tk, and Netscape's Internet Foundation Classes (IFC). The server side software was completely written in Java. The client side applications consist of a Web Page builder (written in Java using IFC) and a Site Publisher (written in Java with a Tcl/Tk user interface). My primary responsibilities included the overall architecture of the product, maintaining its conceptual integrity and coding the user interfaces. A prototype of Pressworks made its debut at the Cable 97 trade show and was lauded for it's user interface.
From February 1995 to December 1996, I served as an Object Orientation consultant and technical lead for the Applied Systems Division at BTG. I was brought aboard to help move the division into the world of object oriented software development. This required mentoring new object oriented design efforts, teaching design techniques and defining a C++ framework to support migration from legacy systems (written in C) to a fully object oriented environment. I mentored over a half dozen tasks and developed two documentation systems (AFT and LitC) to support the migration to object oriented development. During the fall and summer of 1996, I spent time evaluating and applying Java (1.02) as a user interface technology framework for a cross platform MPEG video player.
I worked in the Storage and Retrieval Division, where I was brought aboard to help design a new commercial storage management product. In preparation, I built a software release generator in Tcl and worked on a dynamic remote procedure call framework in C++.
At BTG I designed and led the implementation of a distributed graphical mapping display environment (the Cartographer) for their StoryTeller mission system. This mapping environment was designed from scratch to be object oriented, and was implemented in C and incrTcl (an Object Oriented extension to Tcl). In order to support the core development, I designed an object based programming technique for C. The technique was later adopted as a project-wide standard. The Cartographer was designed to be a highly interactive visualization tool for the Storyteller system.
I was the primary designer and coder of the Domain*View application, which served as the user's front end to the commercial network management product OS/EYE*NODE. This involved quite a bit of user interface design and Motif coding. In order to make it easier to modify the product, object based programming techniques were used.
My work here involved protocol design (a proprietary protocol for data transfer over noisy serial lines) for an U.S. Army project, and user interface design for one of the Defense Technical Information Center's online catalogs.
On this job I worked with another developer to port Tandy Corporation's Scripsit wordprocessor from a XENIX platform to System V.3 systems. I also developed a text based windowing system to support the product's online thesaurus.
I worked as a systems programmer at the UDC Computer Center. Here I developed system management tools and utilities of a DEC 2060 TOPS-20 system and DEC VAXen under VMS.
This document was generated using AFT v5.098