I build end-to-end professional software systems that are written in Python.
As well as writing the Python, building the system means: [a] gathering requirements and analyzing the options, [b] presenting the business case for the alternatives, and [c] writing the code and any required documentation. I also deploy the software, speak to the users, and assist them with understanding how to use it.
Line of Business
|University of Richmond, Richmond, VA||2013-present||Computer Scientist: Higher education. Computer Science, Software Development||Linux, Python 3, Oracle 12, Banner, OnBase, Amazon AWS|
In 2013 I designed, evangelized, wrote and integrated the replacement system for University of Richmond's authentication infrastructure. As of EOY 2014, over 4,000,000 authentication requests had been served with zero failures or compromises of the system. UR's systems include Banner, OnBase, Raiser's Edge, and over 300 servers for 4200 students, 600 faculty, and 300 non-teaching professional staff.
In 2014 I began the automation of the FERPA and HIPAA data feeds for our 30+ external vendors. The new ETL system allows ad hoc and scheduled operation, and provides internal stakeholders and our vendors with immediate reports of trouble and confirmation of success through email, Nagios, and phone. Each transfer is fully audited and audit-able, and the results are stored in a database for statistical analyses by the MicroStrategy data warehouse.
In 2016, University of Richmond began to use this system to interchange data between internal systems as well as the external vendors.
The system, known as Canøe, is written entirely in Python 3.6. Deliveries are made securely to BOX, S3, ShareFile by Citrix, and Hyland's OnBase software as well as remote file systems and Oracle databases. Completed in early 2017, Canøe performs 9,000 operations per week and assures correct transfer for over 200 integrations.
In 2018, I began to standardize the system using conventional compiler technology to handle a pure job description language that expresses the work to be done.
|Digital Gaslight, Inc., Richmond, VA||2002/12||Owner/CEO:
Fee-for-service software design, development, documentation and deployment.
Of special interest:
|Virginia Commonwealth University, Richmond, VA||2000, 2003/4||
||C++, Java, Linux/UNIX|
|Capital One Bank, Richmond, VA||1998/2001||Manager, Program Office for eCommerce: Vendor selection and evaluation, project management of international contracts.||Vendor relations and outsourced (India) software development.|
|KLA-Tencor, Milpitas, CA||1997/8||Principal Engineer: developed patented visual pattern recognition algorithms (and the software to support them) for detecting defects in silicon during manufacture.||C, C++, UNIX and Windows NT|
|Thuridion, Santa Cruz, CA||1995/7||Engineering Manager: Proposals, new business, employee hiring.||Third party software development in C and C++ for Windows|
|Hewlett-Packard Labs, Palo Alto, CA||1992/5||Software Engineer: Simulator design, Product research.||C, C++, UNIX and Windows NT; simulators for LaserJet printers.|
|Boeing Military Aircraft, Seattle, WA||1985/92||Software Engineer Techonlogy feasibility studies for projects over 5 million USD, Language migration, Simulators.||DEC, HP, CDC, Cray using FORTRAN, C, and C++|
|University of Sydney, Board of External Advisors for Information Technology Program, 2005.|
|Triton-Elics, Inc. S.A. Watsonville, CA and Paris, France, Board of Directors 1996/7, elected to represent the interests of the plurality shareholder during the merger between Triton USA and Elics of France.|
|User authentication system and method, US 7,725,712 issued 25 May 2010. [[Note: This patent is for an algorithm that improves the usefulness of one-time-pad cryptography in authentication systems. OTP encryption for authentication is weakened because OTP cryptography relies on both the pad's lack of reuse, and the lack of a repeated message. This algorithm injects noise into the encryption process to mitigate this weakness. ]]|
|"When Data Integrations Fail -- A Case Study of Causes and Repairs," MABUG 2017, Virginia Tech, Blacksburg, VA|
|"Corral: Bringing non-Oracle applications into the fold," Southeast Oracle User Conference, Charlotte, USA, Feb 2010.|
|"Doing Active Harm, Patterns of Process, Chaos, and Anti-process in IT," University of Sydney, March 2005. PDF|
|"Patterns of Creativity in Software Development, Music and Film," OOPSLA, Seattle, USA, November 2002.|
|Keynote address for Software Methods and Tools, 2000 "Methodologies versus Madness, Project Management in the 21st Century", Sydney Australia, 2000.|
|"Finding the Hidden Assumptions: Analyzing Psychologically Based Requirements for Software Engineering," Australasian Conference on Requirements Engineering Sydney, Australia, September 1999.|
|"Of Windows, Widgets, and Wings, The Search for Cross Platform UI Devices," First International Conference on Visual Information Systems, Melbourne, Australia, 1996.|
|"Human Factors in the Design of the LaserJet 4," CHI 93, Canberra, Australia, 1993.|
|Cover Story "Doing It: A Safe Software Reuse Project in C++," C++ Report, January 1995, cover, and pp. 22-26. Scanned image.|
|PyRVA Richmond, Virginia||2016 -- present||Organizer (August 2016 - April 2019), Member (May 2019 - present)||Python|
|Try-me Art Space, Richmond, VA||2009-present||Technology advisor: Photography of the museum, and maintenance of the art database shared between Try-me, Émilie Charmy and Oscar Bach collections.|
|Cat's Cradle of Greater Richmond, Ashland, VA||2010-present||Technology advisor.|
|Diogenes Club, London, UK||1899-present||Member in Good Standing: Unus Inter Pares (One Among Equals)||Coffee, Tea, Alcohol, & Silence|