Senior Software Engineer 40+ years of experience in test-driven, iterative development, packaging, release, and maintenance Designer of elegant API designs supporting compact, efficient applications with minimal effort. Fitting square pegs into round holes so naturally, it could have been designed that way on purpose. Education and Experience Graduated 1981 from George Mason University with a B.S. in Mathematics. Worked at Business Management Systems, specializing in Import and Export operations and accounting, from 1978 to 2013. Worked at Spanish House Ministries, maintaining and enhancing Adempiere enterprise accounting, EDI exchange with business partners, and system administration, from 2013 to present. Keywords CentOS, Java, RPM, Python, C, C++, PostgreSQL, HTML, Servlets, IPv6, IPv4, NAT, iptables, Linux, Fedora, SCM, git, DRBD, LVM, RAID1, nagios, NUT, milter, YAML, ANSI X12, AS2, EDIFACT, CATAIR, CIMP, Javadoc, Doxygen, MQ, SPF, DKIM, SRS, OpenVPN, DNS, EDI, EDX, Adempiere Open Source and Industry Standards • Fedora project packaging for cjdns, openas2, acme-tiny, pymilter, and other packages. • Pymilter - an open source object oriented API that wraps the sendmail libmilter C API making it easy to write multi-threaded mail filters in python. • I served on the SPF council to complete RFC 4408, designed and initially populated the official test suite for RFC 4408 and 7208, and currently update and maintain pyspf - the reference implementation of RFC 7208. • Implemented a JCR (Java Content Repository) API subset for our local document server. • Created a validating EDI framework that handles CATAIR (US Customs), ANSI X12, EDIFACT, and similar EDI formats with a uniform API for Java, C++, and EDL. • Implemented code to parse and generate complex EDI documents for US Customs (ACE,ACS,ABI,AES), Publishing industry (Pubnet,ANSI-X12,Edifact), and shipping industry. • Isamx - an X-Open C API implemented over the low level BTAS API and a Java JNI package wrapping Isamx. • Wrote an SQL-92 engine subset (no transactions) over Isamx that geometrically optimizes basic queries. • Implemented the SOCOMM packet protocol for the US Air Force, inventing a “wait for interrupt” primitive for ultra low latency threads on the Series/1 minicomputer. Adapted code in the field to compensate for an erroneous specification (cumulative vs individual acks). • Implemented a 6502 based protocol converter and minicomputer based email for the Kingdom of Jordan handling three 50 baud current loop telex lines and one 300 baud rs232 host line on a single 8 bit PIO. Current Responsibilities (wearing many hats at a small company) • Write company standards for essential accounting practices. • Set up the company source repositories (git and bzr), organize company source into modules, set software version standards for the company, and train other programmers in configuration management. • Create packaging for software (currently RPM). Write company packaging guidelines, and train other programmers in packaging. Create unit tests. Encourage other programmers to add tests for bugs before fixing. • Write documentation for my code. Analyze and document other employees code. My favorite tools are Javadoc, Doxygen, and EpyDoc. • Write APIs for uniform and simplified applications. APIs have included database access, EDI, green screen user interface, web user interface and templates. Design databases, write applications (to see how it feels to use those APIs). Write file systems, SQL servers, and utilities. • Monitor (using nagios), update, and administer primary and offsite servers and many virtual machines, including network administration and firewall configuration. Ensure backups are made and rotated. • Coordinate hardware and software installation, upgrades, and replacement. Specify hardware and software configurations. Diagnose hardware and software problems. Accomplishments Database Server BTAS is a Unix-like file system with integrated database. It runs under Unix (and previously DOS and EDX) and includes hardware and software fault tolerance and journal-ling. There are no fields or keys at the low level, records are byte strings, and indexes dynamically use the minimum unique key. It is the standard production database used by BMS. Expert System MEDICOMP is a medical diagnostics system that takes and tracks patient histories and runs an inference engine against a large database of diseases, symptoms, test results, history, and physical findings to provide a differential diagnosis. The physician can interactively pursue further diagnosis of any of the disease candidates. Applications AIRPEX is an international shipping operations system providing things like air waybills, tracking, customs entries, EDI with customs, and automatic accounting data. Accounting I designed the General Ledger report generator for the BMS Real Time accounting system. Inter-operation EDXJava is an API that supports invoking EDX programs from Java and vice versa. Both use the same field oriented screen and keyboard support for a seamless user experience. EDXWeb presents the EDX screen and keyboard as a full featured modern web application. BTAS supports the same cursor oriented Java API for both the cursor oriented native BTAS API and SQL servers supporting update-able cursors. Email Maintain production email systems based on sendmail, dovecot, and pymilter which applies SPF, DKIM, and HELO authentication, uses SRS and signed return paths, greylisting, tracks domain reputation, and as a last resort does Bayesian content filtering.