Objectives - To find a permanent or consulting position in a dynamic organization where I can apply my multidisciplinary experience to design and implement network and open-system projects, create development environments or deploy networked systems. I am particularly interested in positions that have team leadership, business development or management opportunities.
Specialties and Abilities - I have an exceptional capacity to understand systems design issues in depth, broad experience with open systems and technology integration, and the communications skills to address technical and nontechnical audiences. Although primarily a software and operations specialist, I have the extensive hardware and networking knowledge and the experience to call myself a true systems architect.
Massachusetts Institute of Technology, Cambridge, MA.
1983, Bachelor of Science Electrical Engineering and Computer Science; including Compiler Design, Systems Design, Computer Architecture, Number Theory, Computational Theory, Economics, Linguistics, Computational Linguistics, VLSI Design, Digital Lab, Knowledge Based Systems.
Development Scalable Web Architectures, front end and back end. Design Patterns and Agile workflow design. MVC architecture (Ruby on Rails, Wiki and Wiki Federation with RESTful APIs) System Engineering Deployment architecture, methods and tools. Performance evaluations, modeling and architectural analysis. Operating Systems Linux, Solaris, HP, AIX, Mac OSX, Windows Languages Ruby, Go, C, C++, Java, Perl, Python, all shells, variety of assemblers Software Git, Subversion, ClearCase, ClearCase MultiSite, Apache, Jboss, Websphere, Tomcat, Java Web Server, Oracle, Sybase, Postgres, Mysql System/Network Architectures LAN/WAN: Switches, Routers, Hubs, NAT, Firewalls and Network management tools. Storage Solutions: RAID, NFS, SCSI, NAS and SAN. Leadership Led eight developer team. Leader and innovator cross-function teams to design strategies and processes. Led operations for critical systems. Proven ability to meet goals.
January 2018 - Present - Software Architect
Building a blockchain based alternative currency system. Learning Go and writing some exploritory code to implement signed messaged chains in go (https://github.com/GerryG/authchain). The application for this and direct use of ipfs (Interplanetary Filesystem) protocols is to create an implementation platform for alternative currencies.
August 2013 - January 2018 - Senior Software Developer, Tribune Technology
August – September 2012 Ruby on Rails Architect, Argonne National Labs
Created a new Ruby on Rails application from scratch. The Argonne team was creating a new RoR application, and wanted help getting the application created quickly using RoR model generation, and to be able to support custom UI components base on ExtJS (sencha.org) libraries and components created locally to handle things like user authentication and roles. In two months we completed a complex data architecture (over 15 tables and more associations), and I completed all the data models and prototyped the key UI interactions using Json (REST) APIs on the server side and ExtJS components and objects on the client side.
October 2010 – Present Lead Wagneer Grass Commons (sponsoring organization for Wagn http://wagn.org/)
Core developer on Wagn.org, a wiki with tagging written in Ruby on Rails. Wagn is a significant innovation in both the wiki space and as a platform for non-tabular data (objects) in a rich internet application environment. I was initially interested in a back end for experimenting with RIA applications with Adobe FLEX and similar platforms and I added XML rendering and a RESTful controller to serve XML data for the RIA app to access. With these xml extensions in place, I also started to develop a Metacurrency extension to the proof of concept phase when it became clear that Wagn would need some major refactoring to really integrate these features. I started then to do a major refactor of the view/rendering system to support the XML renderer as an option. This work became the 1.5.2 release of wagn, the largest incremental change to date, and the rest of the work to support the Metacurrency extensions is soon to be released in a series of even larger group of improvements.
From a ruby and rails beginner to lead developer in about four years. With Wagn, we are bringing object oriented models to the end user platforms. Wagn, like Drupal and others, is a platform, only Wagn is completely OO to the core, so instead of adding largely independent plugins, you extend the Wagn model (cards) with an MVC api. We have just migrated to Rails 3 and will be releasing the full MVC api and platform over the coming months.
February 2010 – November 2011 Project Lead Chicago Mercantile Exchange (client), Object Wave, Chicago (primary contractor)
Objectwave maintains and enhances a system developed for CME by a third party. As the project lead the work began with taking delivery of two trading systems from the third party. We started from bare hardware and OS and had to assemble all of the tools to build and deploy the system, a distributed system with about 30 open source and commercial software dependencies. The user interface components used Microsoft technologies with C#, .Net and ASP components, and I had a team of developers in Mexico who worked on these components. The Linux (RedHat) server components were C++, python and Sybase stored procedures (SQL), and I was the sole developer for these components. The project has cleared all major milestones and is prepared for production roll out.
August 2006 – February 2009 Senior Applications Engineer Orbitz Worldwide, Chicago, IL
Orbitz is one of the top online travel bookers with a complex, high transaction volume Java based distributed web application. Primarily responsible for all major and minor deployments of an interconnected suit of application and data services on three java container platforms. We configured and deployed first too a staging environment designed for end-to-end system testing of performance and operational readiness. Responsible for establishing criteria and evaluating releases for readiness including performance, functional and operational support. Created tools to deploy and manage new and legacy platform hosts. Worked to bring new processes to our work methods to encourage innovation. Created Open Tools Space, with wiki pages and regular times designed to be filled by the participants.
April 2005 – March 2006 Senior Systems Engineer Peak6, Chicago, IL
Peak6 is a proprietary equity option trading firm in Chicago. Created a staging/QA environment from scratch and designed all release control processes and systems. When I started to work, developers released code directly to production systems with no formal processes of verification. First releasing a complex market specialist automation system involving 8-10 service processes running on 8 (staging) to 12 (production), I managed all the staging and production builds and releases of this system and then several more major trading systems. Implemented and customized an open source issue tracking system (Trac) to track bugs and release requests, and a connected Wiki system for support and design documentation. Lead participant in a team make the internal Wiki into a key resource for the company.
July 2002 – Principal Technologist & Process Architect GeraldGleason Dot Com, Chicago, IL
Creating a consulting practice to serve emerging global wisdom driven networked enterprises with design services in technology and process arts. This emerging practice is based on the design philosophy of Christopher Alexander in architecture, widely adopted in the Pattern Language processes of object oriented software development, and now into organizational design and development. I am part of a network of pioneers who are creating and exploring pattern languages around group conversations and collaborations. I have an outline of the works I have participated in, and the path of my development on this line of work, which fully occupies me in through the gaps in my technological work.
November 2001 - July 2002 Senior Developer/Team Leader Geodesic Systems, Chicago, IL
Geodesic systems was a software technology firm with advanced C/C++ memory management technology. (Their Great Circle and High Availability products were purchased on continue in the Veritas product lines) Lead a team of 8 developers working on an advanced memory management product for C, C++ and Java language environments. We completed a final major release of the current product generation, then, planned, designed and implemented a new generation. This design took the product from being primarily a tool to improve the performance and reliability of C and C++ programs by improving performance and automatically fixing memory management problems to make it into a managed runtime environment for C, C++ and Java systems. I coordinated the design and planning of the entire project as well as implementing parts of the system. My largest piece was the communication sub-system that enabled management agents to communicate via shared memory queues with our runtime libraries to control and monitor running user processes. I also implemented an advanced build and test scheduling tool in perl to efficiently manage the running of nightly builds and smoke tests on all platforms (Windows, AIX, HPUX, and Linux, with multiple versions of several).
March 2000 - June 2001 Critical Systems Architect Perceptual Robotics, Inc., Chicago, IL
Responsible for design, implementation, management and monitoring of all production and pre-production systems. Sun/Solaris servers running JWS (Sun's JavaWebServer) and a Linux server running Oracle 8.1.5 were replaced with more Suns running Apache/Tomcat and Oracle 8.1.6. We evaluated storage options and settled on a NAS (Network Attached Storage) solution. Our evaluation and testing uncovered some latent problems with drivers or filesystems in a low cost Terabyte solution which was Linux based. A Network Appliance solution was then implemented in production. I designed and implemented a three-legged firewall using Linux and ipchains, and taught my junior colleague so that he could maintain and replicate it. Together we moved all or our systems from Evanston to our new offices in the West Loop including building out the network with Cisco routers and NetGear switches. My day to day responsibilities included managing the installation of new versions of our Java based web server software on test and production systems, building and maintaining systems administrations scripts such as rotating and gathering web server log files, installing Solaris software and support tools on new systems, configuring and building public domain tools and maintaining internal and external DNS and other network support systems.
September 1995 - March 2000 - Senior Consultant - Collective Technologies, Austin, TX, NetDox, Inc., Deerfield, IL, Board of Trade Clearing Corp., Chicago, IL
On assignment at Motorola's Schaumburg facility, I was the site manager for ClearCase/Multisite for about 10 teams of developers totalling over 800 Sun/Solaris workstations with ClearCase installed. Initially I shared this responsibility with a second engineer, and had primary responsibility for upgrading all workstations and servers to a Y2K compliant version of ClearCase.
On assignment at Warburg Dillan Reed in the Chicago Board of Trade building I performed as a short notice backup admin. I was able to quickly come up to speed in a complex environment and provide many hours as the admin on the help desk.
At NetDox, I immediately assumed primary responsibility for putting the new release in production, which was more successful that previous releases even having lost the knowledge of the first round implementors. We build a new test configuration including complex network and firewalls. An important part of the operations of this secure messaging service was the management of the cryptographic keys used to hide the text during transmission (PKI). I reviewed the documents and procedures related to key management and key recovery and updated the systems, scripts and documentation required to maintain a secure service.
At BoTCC, I made modifications to their margin calculator which is part of a C++ based object oriented system. Used Object Modelling Language diagrams to describe the changes needed to add foreign currency conversions to the margin calculator, and implemented these changes to the C++ code. My release package for this project was a good model of our new release process which included sections from design and code changes through tests of the business logic correctness and operations document changes.
At BoTCC, I started as a Sun/Solaris system administrator wuth responsibilities including NIS+, firewalls and TCP/IP networking. Selected and performed initial implementation of ClearCase for source code control. Wrote perl scripts to support ClearCase and release control process.
Jan. 1993 - Sept. 1995 Systems Database & Network Administration Consultant
As a consultant at Swiss Bank Corp. (same organization mentioned above as Warburg, Dillan, Reed while I was with Collective Technologies). I managed a group of test machines that included about six sybase servers and fifteen plus compute servers running locally developed three tier client server applications. This job involved a lot of DB work (Sybase) to maintain the systems and load production data for testing/auditing. I also set up my first web server and wrote many perl/CGI programs to support our admin work. This environment was SunOS and NextStep, with some conversions to Solaris by the end.
1988 - 1992 Network Systems Analyst & Systems Engineer
Zenith Data Systems, Buffalo Grove, IL & St Joseph, MI
UNIX specialist in a network marketing group to help sell Zenith PCs in LAN environments. Helped create a network demonstration lab with all current network technologies including UNIX, MS Lan-Manager, Banyan Vines and Novell Netware. Created client configurations to allow PCs to access multiple server types simultaneously. Configured and supported a similar network which we brought to several trade shows. Maintained a NetNews and Email server for the whole company.
I joined Zenith to prepare technology for a bid for a large government contract. Our multiprocessor platform was leading edge at the time, including a version of SCO UNIX adapted for multiprocessing by a third party. I wrote a SCSI host adapter driver for the NCR 53Cxx chipset, and managed an outsource project for both a CD/ROM filesystem and a virtual block driver for optical WORM drives. Wrote serial and parallel device drivers that could use shared interrupts and polling to support more devices than would otherwise be possible on then current hardware. I also integrated all of our custom drivers to create a custom Interactive UNIX OS release that met all bid specifications.
With my strong hardware and architecture background, I was often called into technologies planning efforts, including evaluating technologies for advanced multiprocessors with a high speed coherent bus, and a multidisciplinary team that was given the task to create a LAN business plan. All of our recommendations were adopted, including the creation of a network marketing group that I later joined.
1985 - 1988 Systems Engineering Consultant
At AT&T in Summit, NJ I joined a team that created an advanced print spooler subsystem that was release with AT&T's System V release 3.2. This system introduced many advanced features, and is still in use today. I wrote many of the utility commands that would control and submit jobs to the scheduler program. Early versions used System V IPC functions to submit jobs, although in the final release this was replaced with named pipes (FIFOs) because this allowed for remote printing.
At AT&T in Naperville, IL, I ported the UNIX kernel to a new microprocessor (CRISP, later know as the Hobbit). Worked directly with the hardware engineer to make this kernel run on first silicon. Solved our bootstrapping problem by adapting the firmware for an intelligent serial card so that it could download directly into the host machine's memory.
Earlier Experience Available on request. References available on request.