Senior Software Engineer
Passionate, responsible, committed engineer with organized, efficient on-time delivery. More than two decades of experience designing, implementing and maintaining systems. This has included applications, databases and operating systems using many programming languages, databases, three-tiered architectures, message queues and more. My work has been in many industries as an employee and consultant. Computers are all about details and patterns.
Technical Skills
-
Detail
-
Languages: C, UNIX/Linux shell scripting, JavaScript, PHP, SQL, CSS3 and HTML5
-
Operating systems: Linux, HP-UX, Sun Solaris, Windows, MS-DOS and IBM AS/400
-
Databases: Informix Dynamic Server (IDS), Informix C-ISAM, PostgreSQL, MySQL, Oracle and IBM AS/400
-
Networking: TCP/IP, RPC, HTTP(S), SSH, SFTP, SCP and more
-
Application programs: MS Outlook, MS Office, LibreOffice, GIMP, Adobe Photoshop and Newtek Lightwave
-
Data formats: JSON, XML, separated values, fixed width and more
-
General: Troubleshooting, programming, configuration and administration
Career Highlights
-
Detail
-
Developed an import interface including business rules from an IIS web server to a Linux Informix C-ISAM database
-
Developed an export interface from a Linux Informix C-ISAM database into XML/XSD format to an IIS web server
-
Created and developed a web application to write ad hoc queries of all auto insurance data
-
Ported a large auto insurance application (written in C) from DEC Ultrix to Red Hat and later to Ubuntu
-
Wrote challenging new logic for auto insurance application to accomodate many new states
-
Formed my own company for contract work
-
Cleaned up a struggling MES application/database
-
Created a real-time Informix Dynamic Server (IDS) database session viewing and logging tool (written in C)
-
Created a real-time Informix Dynamic Server (IDS) database locks viewing tool (written in C)
-
Created a program to list how long cron jobs were taking to run (written in C)
-
Recognized jobs with above tools to bring timeouts down from sometimes hundreds a day to almost zero a day
-
Developed application to move recipes between EQCs, entities and archive
-
Implemented 50+ application and database servers
-
Created a tool to rewrite Periphonics ISAM and HSAM tables using a Korn shell script
-
Developed a real-time tool for watching phone ports accessing host screens
Personal Projects
Web server/pages
-
Detail
-
panes.us a custom wiki
-
HTML5 (localStorage, media, etc), CSS3, JavaScript, AJAX, NoSQL (PostgreSQL) and PHP
-
Windows look with drag and drop
-
Dynamically edit content, colors, backgrounds, windows style and more
-
Custom widgets
-
lunch.picksare.us a site for randomly picking a place to eat
-
Enter a personal restaurant list
-
Select which restaurants to be randomly picked
-
Store, display and share restaurant picks
-
tuxtummy.kemiko.us a site for placing text in an image file
-
Places the text on Tux the Linux mascot
-
Uses PHP's GD library
-
Contains Easter Eggs
-
cmr.kemiko.us a change management request webpage
-
NoSQL (PostgreSQL), JavaScript, PHP, HTML5 and CSS3
-
lampware.us an info and contracting site
-
Site preserved in history with different domain (original was lampware.com)
-
Was a great site for contracting, documentation, invoices, etc.
Professional Experience
Senior/Staff Database Administrator:
2016 to 2020
Jireh Semiconductor:
Hillsboro, Oregon
System Architecture:
EMC Array, HP-UX (ksh), VMWare, Linux (bash), Windows, Informix Dynamic Server (IDS), MySQL, PostgreSQL, Apache, IIS, PHP, WorkStream, TIBCO Rendezvous, RabbitMQ, C, Git, Atlassian and more
Summary:
Main role was DBA, but also included system, application and report development/maintenance
-
Detail
-
Cleaned and tuned WorkStream (MES) Informix Dynamic Server (IDS) database
-
Wrote Parser for system log with C to alert system errors much faster
-
Did trouble-shooting on database performance
-
Wrote many scripts/programs
-
Rotated system logs
-
"at" job logging
-
Application monitoring
-
Database metrics logging
-
"itop" a real-time tool for monitoring and logging Informix Dynamic Server (IDS) sessions
-
"ilocks" a real-time tool for monitoring Informix Dynamic Server (IDS) locks
-
C program to calculate cron job elapsed times to monitor and optimize long jobs
-
System maintenance script
-
Zeroed out remote processes without restarts to prevent timeouts
-
Expanded logical logs
-
Added chunks for needed growth
-
Updated statistics plan
-
Updated engine configurations
-
Locked down database access
-
Rebuilt indexes with a large number of extents
-
Built and implemented an Informix Dynamic Server (IDS) 12.10 Enterprise Replication reporting server running on RHEL 7.3
-
Built and implemented an Informix Dynamic Server (IDS) 9.40 development server running on HP-UX
-
Web application development and maintenance
-
Developed application to move recipes between EQCs, entities and archive
-
Continually updated passdown application code and data
-
Developed bill of lading application
-
Developed bottle change application
-
Continually modified many other custom intranet applications
-
Used JSON and tabular data
-
Web report development and maintenance
-
Dispatch queue
-
Hold/Merge/Rework
-
And more
-
Created and updated documentation
-
Implemented network database backups for all MySQL and PostgreSQL instances
-
Implemented an Ubuntu 17.04 with Apache2 web server
-
Installed and configure OS and packages
-
Wrote custom alerts for disk, load, swap and more
-
Continually port Windows IIS applications to this server
-
Used to template other new web servers
-
Continually did troubleshooting on Workstream (MES) application to optimize and enhance
-
Agile/Scrum development using Atlassian's Confluence and Jira software
-
Two week sprints
-
15 minute daily meeting
-
Demonstrated work to group
-
Recovered systems and applications from Ryuk ransomware attack
-
Trained and managed new employees
-
Porting Informix Dynamic Server (IDS) 9.40 the (MES) database to Informix Dynamic Server (IDS) 12.10 with HDR secondary
-
Learning Docker to replace EQC drivers
Senior Software Engineer:
2007 to 2015
lampware, inc contracted to MCM Corporation:
Beaverton, Oregon / Scottsdale, Arizona
System Architecture:
Red Hat / Ubuntu, C, Informix C-ISAM, Apache, MySQL, PHP, MS Windows / SQL Server
Summary:
Single programmer, DBA and system adminitrator for auto insurance application and intranet. Rolls included design, coding, troubleshooting, source control, building executables, rolling changes, updating different environments, porting applications, interfaces, database administration, documentation and training.
-
Detail
-
Self managed as a contractor
-
Made system wide change to expand the number of class codes by 100%
-
Finished coding what the other programmers left unfinished
-
Updated the system's source build
-
Constantly troubleshot system, database and coding issues
-
Coded all changes for the main application server and rolled them to production
-
Finished coding Florida Hurricane Catastrophe Fund changes including adding to rate set
-
Made major rating engine update to Florida
-
Ported day-end procedures from DOS to Windows
-
Updated my "Book of Business" MySQL / PHP query tool to include more tables
-
Added North Dakota, South Dakota and Minnesota to the system
-
Wrote ad hoc reports for the analysts and vice president
-
Aided in office's physical move
-
Wrote shell scripts to make life easier
-
Formatted source code before checking into source control
-
Checked source versions in executables before rolling to prodution
-
Refreshed data to development and test from production
-
Archived old records from database files approaching the system limit
-
Cleaned up old files filling up the hard drive on production
-
Continually fixed printing issues
-
Added surcharge detail to rate set
-
Trained Linux administrator on source control
-
Checked in source that had never been checked in or had not been checked in for years
-
Continually fixed cron on production, development and test (Red Hat 7.0 issue)
-
Continually updated the VIN server databases
-
Added Massachusetts to the system
-
Programmed many new rating algorithms
-
Programmed Collision Waiver Deductible
-
Programmed SDIP Merit Rating Value to CAR (Commonwealth Automobile Reinsurers)
-
Programmed anti-theft discount to accommodate Massachusetts
-
Setup carrier files and tables
-
Wrote the interface files for Eagle Eye business anaylsis in XML file format with XSD validation
-
Wrote the interface files for EARS and Risk Alert reporting in their proprietary file format
-
Continually updated system documentation
-
Expanded build tools to link in multiple defined libraries
-
Expanded screen limitations for several system tools
-
Expanded the database edit tools to cover many more years of transactions
-
Coded XML transaction logging (insert, update, delete not select) for all database edit tools
-
Ported system to Ubuntu from Red Hat for hardware and software reasons
-
Expanded my "Book of Business" MySQL / PHP query tool to have all transactions out of C-ISAM database
-
Added Texas to the system
-
Programmed many new rating algorithms
-
Programmed policy and billing fee
-
Programmed MVR points and logic
-
Many more large changes
-
Fulfilled over 500 tickets
ETL Support:
2006 to 2007
Caritor / Keane contracted to Honeywell:
Tempe, Arizona
System Architecture:
SAP, IBM AIX, Oracle 9i, Business Objects Data Integrator 11.5, Autosys Job Management
Summary:
Supported a very large domestic and international data warehouse.
-
Detail
-
Supported production and development ETL environments 12 hours at a time by fixing all errors in the load
-
Developed many Korn shell scripts to help automate failovers, change AutoSys status, shift crontab schedules, etc
-
Made bug fixes
MySQL DBA:
2006
Incentive Logic:
Scottsdale, Arizona
System Architecture:
Debian / Ubuntu Linux, Apache, MySQL with replication, Perl, VMware, Nagios, Foundry
Summary:
DBA for a startup company doing employee reward programs.
-
Detail
-
Managed 20+ MySQL servers
-
Populated MSSQL data warehouse with all the data from the production MySQL database
-
Implemented a backup and restore solution
-
Updated database grants to be more secure and in line with a new VPN solution
-
Updated database connection files to have no errors
-
Optimized queries
-
Designed the database solution for their new Java / JBoss / MySQL solution with disaster recovery
-
Fulfilled developer's requests for database access
-
Continually populated data to QA environment
-
Fulfilled trouble tickets for various items
MySQL DBA:
2005 to 2006
Go Daddy Software Inc:
Scottsdale, Arizona
System Architecture:
Red Hat Linux, Apache, MySQL with replication, PHP, Java, NetApp, VMware, Nagios
Summary:
DBA supporting very large Internet database clusters of many different applications.
-
Detail
-
Managed 350+ MySQL servers and 550+ MySQL instances with one other DBA
-
Deployed 100+ new MySQL servers (40 of these servers where Windows MySQL)
-
Maintained an uptime of 99.999% across all servers
-
Supported many different applications including DNS, Web Based Email, Hosting, Quick Shopping Cart, Traffic Facts, PKI, etc
-
Wrote queries and scripts
-
Upgraded and optimized different environments
-
Wrote documentation and server management intranet tool
-
Continued to add documentation to system
-
On call 24 / 7 with cell phone and wireless laptop
-
Restored backups
-
Fixed bugs in provisioning code for shared hosting (C++)
-
Installed and tested MySQL clustering solution
-
Configured Apache and PHP for different applications
-
Used jackrabbit (a Go Daddy program) and PuTTYCS to update multiple servers at a time
-
Moved backups to a filer and modified backup scripts to store backups on a filer
Senior System Analyst:
2004 to 2005
MCM Corporation:
Scottsdale, Arizona
System Architecture:
Red Hat Linux, C, Informix C-ISAM, Apache, MySQL, PHP, bash, MS Windows / SQL Server
Summary:
Continued roll of programmer, DBA and system administrator for auto insurance application.
-
Detail
-
Continued to make coding changes to the main application server
-
Installed and configured a test intranet server
-
Wrote a program to log Apache's logs into MySQL and wrote a web tool to query these logs
-
Installed and configured Adobe Central Pro server for document / image server
-
Updated my "Book of Business" MySQL / PHP query tool to include agents, bills and payments table
-
Added SCSI tape backup to the intranet server
-
Added endorsements images from the Internet server to image archiving intranet tool
-
Updated the Internet interface to accommodate many new changes
-
Programmed Roadway Protect Coverage only policies
-
Programmed low cost policies
Software Engineer:
2000 to 2004
ASA Solutions contracted to MCM Corporation:
Scottsdale, Arizona
System Architecture:
Red Hat Linux, C, Informix C-ISAM, Apache, MySQL, PHP, bash, MS Windows / SQL Server
Summary:
Programmer, DBA and system administrator for auto insurance application.
-
Detail
-
Self managed as a contractor
-
Started on system by coding bug fixes and enhancements in C and shell scripting
-
Ported C application from DEC Ultrix to Red Hat Linux
-
Installed and configured my own Red Hat Linux workstation
-
Installed an additional hard drive in the test server
-
Installed and configured Intel server for a development box
-
Wrote scripts to initially and continually copy production data to this server from production
-
Installed and configured Intel server with MS Windows 2000 / MS SQL Database to serve book of business to IVR
-
Wrote and executed monthly fix on broker commission statements and fixed the real-time commission calculations
-
New development on main application system
-
Wrote import Internet interface from MS IIS web server to Linux C C-ISAM main application server
-
This interface processes all new business transactions
-
Created comma separated file for accounting to run through check writing program
-
Wrote hold status and printing code for the these transactions to be finalized by underwriters
-
Wrote many summary reports for these transactions
-
Reports are automatically emailed to selected people by carrier (easily configured)
-
Wrote export Internet interface from Linux C C-ISAM main application server to MS IIS web server and LAMP intranet server
-
Created XML files for policy, bill, payment and agent data
-
Selected only the last term
-
Defined and created lookup tables
-
Wrote new mailing registers and reports
-
Wrote monitoring shell script to email the administrator when the system is having various problems
-
Automated insurance program selection at renewal time
-
Programmed vehicle model year rating
-
Installed and configured an Intel server with Red Hat Linux and MySQL databases to serve vehicle information
-
Setup development, test and production databases on this server
-
Configured the server to start the development, test and production databases at bootup
-
Programmed C code in main application to access this server
-
Wrote script to access each database from main application environment
-
Installed and configured cd writer for backing up the server
-
Wrote the backup scripts for cd writer
-
Continually load new vehicle infomation updates
-
Installed and configured an Intel server with LAMP (Linux, Apache, MySQL and PHP) software to serve intranet pages
-
Main menu to point at all the intranet server's functional areas
-
Company phone directory
-
System modules (functionality) documentation pages
-
New modules (functionality) change page
-
Dynamic task / ticket tracking page
-
Serves new Internet business application images which can be searched and sorted by many key fields
-
Displays screen print files from the Linux main application server and can join them together
-
Form for creating, storing and printing letters of experience
-
System input values pages
-
Other documentation pages
-
Added "Book of Business" MySQL / PHP query tool for policy data including drivers, vehicles, etc
-
Exported data out of C-ISAM files into MySQL database
-
Has ad hoc, canned and archive query tools
-
Saves settings between tabs during current session
-
Can join agent, insured, billing and payment information
-
Upgraded to Red Hat ES 2.1 SMP kernel to accommodate the Adobe Central Pro server
-
Fixed problem with images coming from Internet server
-
Zip code and territory lookup
-
Municipality code lookup
-
Intranet usage (webalizer)
-
Database administration (phpMyAdmin)
-
Give access to a week of accounting's comma separated value files
-
Archive accounting cash batch journal with tool to retrieve them
-
Performed many coding changes on the main application system
-
Automated driver surcharge detail points calculation
-
Cleaned up low level screen input and added functionality
-
Changed low level rating library to be able to divided
-
Changed reinstatement declarations and rescission notices to print postcards
-
Changed print order of insured and broker mailings
-
Changed the system to accept an IBM Infoprint 70 (the IBM is not PCL6 compliant)
-
Changed the system to do an equity cancel instead of just a nonpay cancel
-
Modified edit tools to include drivers and vehicles
-
Made many system administration changes
-
Routing table changes
-
Setup of a new development server
-
awk script changes
-
Increased maximum open files allowed
-
Setup a disaster recovery server
-
Performed administrator's duties when on leave
-
Added new users
-
Recreated and reprinted notices
-
Fixed user workstations
Software Engineer:
2000
ENSCICON Consulting contracted to Pegasus Inc:
Phoenix, Arizona
System Architecture:
Three tiered architecture with C and Informix (router / translation, application and database)
Summary:
Ported C application of a large hotel reservation system.
-
Detail
-
Worked on a very large UNIX hotel reservation application on Pyramid OS and Sun Solaris
-
Organized and programmed porting the reservation application from a Pyramid OS to Sun Solaris
-
Used three clients daily (DosAI, WinAI and NetRez web browser application)
-
Also used bash and ksh shell scripts to interface with the reservation system
-
Continued working on the system by coding bug fixes and enhancements in the reservation system
-
Made performance tuning and maintenance changes of Informix SQL databases
Call Center Developer:
1999 to 2000
Catholic Healthcare West:
Phoenix, Arizona
System Architecture:
Nortel PBX, Genesys, Periphonics IVR and OSCAR, Oracle 8
Summary:
Single developer and trouble shooter of voice response system for a large hospital chain.
-
Detail
-
Managed the signoff of the initial Periphonics vendor application code
-
Coordinated code changes needed for the addition of new hospitals
-
Wrote many troubleshooting and maintenance Korn shell scripts for the Periphonics application
-
Coordinated testing for call center changes
-
On call 24 / 7
-
Documented system functionality
-
Administered Oracle database tables
Domestic/International Periphonics IVR Application Developer:
1998 to 1999
Maxim Group Consulting contracted to American Express:
Phoenix, Arizona
System Architecture:
Periphonics PeriPro / VRAM, Solaris 2.5, IBM mainframe hosts, Sybase database
Summary:
Developer on large voice response system.
-
Detail
-
Voice Response application development with VRAM and Periphonics PeriProducer
-
Sun Microsystems Solaris and Common Desktop Environment (CDE)
-
Source code control administration using SCCS and BriefCase (a package of network scripts written around RCS)
-
Wrote and edited C and Korn shell scripts
-
Documented Periphonics system modules
-
Rotated on call a week at a time to provide technical support for production servers
-
Upgraded hard drives on Periphonics IVR credit authorization servers
-
Developed and supported all Mexico, Central America, South America and Caribbean IVRs with one other developer
-
Wrote back-end Korn shell scripts to configure environment and database files with JAVA front-end
College Experience
-
Detail
-
Tutor for Introduction to Computer Science:
1998
Arizona State University, Learning Resource:
Tempe, Arizona
System Architecture:
Novell and Windows network
-
Detail
-
Tutored fifteen students in C++
-
Provided technical assistance to students in the computer lab
-
Network Control Agent:
1997
Hospitality Franchise Systems, Inc:
Phoenix, Arizona
System Architecture:
UNIX host system and UNIX workstations
-
Detail
-
Preformed troubleshooting on modem driven network
-
Trained hotel clerks on workstations
-
Updated host computer systems
-
Incredible Universe, Tandy Corporation:
Tempe, Arizona / Wilsonville, Oregon
System Architecture:
IBM AS/400, 4690 POS, mainframe apps, Novell, Kronos, DOS terminals, Telxon, Teklogix
Computer Room Technician:
1995 to 1997
-
Detail
-
Wrote and executed AS/400 database queries
-
Performed troubleshooting on hardware and software problems with network workstations
-
Processed backups, software updates, and inventories
-
Communicated with other stores via data and voice communications
Return to Vendor Person in Charge:
1994 to 1995
-
Detail
-
Supervised five people
-
Called and faxed vendors for RMAs
-
Processed paper and field work
-
Lowered inventory to a record low
-
Processed inventories
Warehouse Lead:
1993 to 1994
-
Detail
-
Ran various machinery including forklifts and delivery trucks
-
Used computer systems for all data transactions
-
Put away and picked merchandise
-
Processed inventories
Education / Training
Arizona State University:
Tempe, Arizona
Bachelor of Science:
Computer Information Systems
-
Detail
-
Graduated August 1998 with an overall GPA of 3.50 for cum laude
-
Financed 100% of education expenses by working full-time and scholarships
CompuMaster:
Las Vegas, Nevada
Two Day Training:
Linux Course
-
Detail
-
Covered building kernels, configuring Linux and many main packages
Honors / Activities
-
Detail
-
"Hero of the Universe" three times in two years - Incredible Universe
-
Dean's Honor List - Arizona State University
-
Member of Delta Sigma Pi, a business fraternity, since Fall of 1997 - Arizona State University
-
Coached high school pole vault (2013 season) - Sherwood High School
-
Travelled the Northwest, Midwest, Southwest, Southeast, Washington DC, New York City, Hawaii, Caribbean & Europe
-
Smoke cheeses and brewing kombucha
-
Take antique tractors to and participate in shows around Oregon and Washington