some experience with:
c#, python, perl, fortran, expect, tcl
database connectivity using: SQL Server, mySQL, informix, postgres, jdbc, odbc.
- Bachelor of Arts in Mathematics, December 1989 Texas A&M University (3.46 GPA)
- Bachelor of Science in Applied Mathematical Sciences, May 1990 Texas A&M University (3.46 GPA)
- Other - Mensa member
- Adjunct Computer Programming Instructor, LoneStar College (Aug 2010 - present)
- Independent Contractor (Jun 1999 - present)
- Employee of Zeh Graphic Systems, Inc. (Oct. 1992 - Jun 1999)
- Employee of Birkman & Associates (Feb. 1991 - Oct 1992)
- Open Source Development (hosted: VulcanWare.com)
Adjunct Computer Programming Instructor, LoneStar College (Aug 2010 - present),
Artificial Intelligence Programming in C++ - Fall 2010,
Fall 2011, Fall 2012
Advanced C++ Progamming - Spring 2011, Spring 2012,
Introduction to XNA Game programming in C# -
Introduction to Java Programming - Spring 2012
Independent Contractor (Jun 1999 - present), projects include:
- Developed web enabled server application in C++ to simulate interaction with the front panel of a frozen beverage dispensing machine. The server relies upon platform independent (unix, win32) socket and process control routines I designed and implemented for this project.
- Wrote powerful and flexible custom search engine (php) to allow customers to readily search a company web site.
- Implemented full-featured web-based pop3 email management software in php.
- Registered internet domains, set up local dns (using bind), configured apache for secure web site access and to support virtual hosting for a number of client web sites.
- Wrote data collection and remote device control software in C utilizing terminal I/O. The client machines periodically dial into the FreeBSD server (via modem) and communicate with the data collector using the binary or ascii modbus protocol.
- Created FreeBSD-based SCSI tape and library management switch using apache, php, PostGres and C. This project relies extensively on a number of interprocess communication mechanisms including sockets, shared memory, fifos and semaphores.
- Developed license management software (cross platform user interface created using Qt) to control access to to web based tape and library backup application.
- Developed C++ plugin for Netscape and Internet Explorer to enable clients to quickly and reliably upload large (100+ MB) data files to a central server.
- Developed 100% pure Java CGM reading/rendering library including CGM+ seismic support.
- Developed cross platform C++ software internationalization library based upon xml and including unicode support.
- Wrote C++ cross platform, end-user application utilizing Qt for image file viewing, manipulation and printing/plotting. This program allows the user to view CGM and raster files (jpeg, png, tiff, etc.) and submit them locally or to a remote server via a platform independent ftp class library developed to support this application. The software also utilizes xml for saving/restoring user preferences and application state.
- Developed web based framework (unix, win32) using php/pdflib for dynamic generation of custom pdf documents. The data underlying the document creation comes from an SQL Server database accessed from linux using freeTDS.
- Contributed code patches to FreeTDS project (memory leaks)
- Implemented application for automated handling of bounced emails to replace Sendmail's deprecated 'Errors-To' header. Parses and analyzes MIME messages in a multitude of formats in a fault tolerant manner.
- Created tool for direct comparison of generated PDF files for quality assurance. MultiValent was utilized to decompress the files so that false negatives (i.e. date created) could be eliminated.
- Co-authored cross-platform/cross-browser AJAX library used to create Birkman's next generation web site.
- Created php template engine to facilitate separation of content and logic (model/view/controller) and provide i18n support including Japanese, Chinese and Korean.
- Created cron-driven tool to monitor incoming/outgoing email services and to alert the sysadmin of any problems. Uses pop3 and gmail/hotmail auto forwarding
- Wrote application to automatically rescore and compare personality profile results from randomly chosen individuals for quality assurance purposes.
- Wrote 360 Survey Tool for employee review, performance analysis and feedback. Results delivered via dynamic PDF generation.
- Wrote thread safe questionnaire scoring application to allow trivial scaling by adding more instances of the application. Also created web-based control panel which uses an xml protocol to communicate with the application over a socket allowing for sophisticated application control.
- Wrote general purpose, multi threaded java application deployed to all internal machines to allow centralized monitoring of resources (i.e. disk space, email, network connectivity/performance, etc.) along with web interface for configuration and control. Also used for code deployment, uses xml-based protocol.
- Created web interface to allow enabling/disabling of all cron services. Implemented design to allow scripts to be self documenting so detailed descriptions and dependencies are displayed to the user.
- Created application to provide a one-step process for deploying code updates from CVS to a suite of load balanced web servers. This application allows for zero downtime deployment via SSL communication with the traffic director application.
- Implemented system to allow users to supply and manage custom images for personalized output. Supports all common raster formats, data stored in SQL Server as PNG.
- Created similar surveys applications for Defense Acquisition University Contracting and Purchasing.
- Set up internal web-based collaboration tools using open source wikipedia software and modified that software to interface with existing authentication mechanisms.
- Created web-based calendar application with recurring task and email notification support. PDF output support was provided.
- Wrote generic xml-driven survey engine and associated tools for delivery, management and reporting.
- Utilized apache sub domains to provide individualized web spaces in a cost effective fashion for many of the above applications.
- Provided support for wysiwyg user input via TinyMCE.
- Implemented automated tools for backup validation/monitoring and code deployment. Also created full featured web-based database administration tools.
- Ported much of the above from RedHat to Debian linux.
- Wrote multi threaded java application to simulate an arbitrary number of simultaneous users for web site performance analysis.
- Created survey application and tools for the White House Communications Agency.
- Wrote robust, generic xml-based serialization mechanism for arbitrary java object trees including circular reference detection/handling. Created XSLT transform to programmatically convert xml output to corresponding SQL statements.
- Implemented database independent job scheduler software (MySQL/SQL Server)
- Wrote full featured java library for CGM output including support for CGM+ and CGM/PIP.
- Created a software delivery and management system for a custom abilities
inventory questionnaire. Features included email authorization handling,
scoring and reporting, randomized questions and answers.
- Implemented production, custom linux traffic director using open
created a web-based user interface to allow the sysadmin to enable/disable the
servers, restart the system, display a maintenance page, etc..
- Created boolean expression evaluator (a domain specific language) to
assist in rapid prototyping of pdf-based personality profile reports.
Using this tool, a non-programmer can readily create resports with
very specific features and that fulfill complex data relationships
Employee of Zeh Graphic Systems, Inc. (Oct. 1992 - Jun 1999), projects included:
- Wrote C/MDL MicroStation application for: unix, win32, macintosh, to allow users to configure and print/plot their design files.
- Added support for CGM*PIP seismic extensions into existing (C/fortran) CGM interpreter engine (unix, win32). Also performed extensive work upon the interpreter in order to bring it into full ATA compliance.
- Responsible for porting a great number of existing 32-bit unix applications to Tru64 Unix and win32.
- Substantial contributor to the design and implementation of a generalized C language rasterizing engine (unix, win32). This program reads a generic vector-based file format and creates raster output targeted for a wide variety of printing/plotting devices. Additionally, though the target device resolution can sometimes exceed 2000 dots per inch, because the program uses a very sophisticated approach to handling large files it can readily process files that exceed 100 feet in length.
- Designed and implemented generalized vector file format translation tool in C (unix, win32). This program can be used to convert any CGM, DGN or HPGL2 file to CGM, DGN or PostScript format.
- Created commercial C programming library to allow clients to create binary CGM files including support for CGM+ and CGM*PIP (unix, win32).
- Wrote CGM scanning and editing engine in C which formed the basis of a commercial, industrial-strength CGM viewer/editor (unix, win32).
- Created Java class library wrapper around libtiff using JNI to allow Java programs to directly access/manipulate tiff files.
- Developed software security and licensing/locking libraries in C using the blowfish symmetric encryption algorithm (unix, win32).
- Lead Developer on a large Java development project. This tool allows a user to select an image file (CGM, DGN, PostScript, HPGL2, gif, tiff, jpeg, etc.), specify printing/plotting options and submit the file to a remote server for processing. The interface is Swing-based and the program makes use of JDBC to talk to a MySQL database and Sun RPC to initiate/configure the print request and transfer the file to the server machine.
- Served as mentor for entry level programmers
- Created C language programming exam and worked with other senior developers to produce interview strategy and guidelines for potential employees. Interviewed candidates and was responsible for hiring recommendations.
Employee of Birkman & Associates (Feb. 1991 - Oct 1992), projects included:
- Wrote C software on Windows to interface with a scantron machine (via the serial port) for scanning/scoring Birkman questionnaires.
- Wrote fax-processing C software application for Windows. Customers would fax their scantron forms to a central server that would convert the fax images to tiff then pass them off to the user interface which would display and score the questionnaire. The program included sophisticated functionality to allow skewed or incomplete forms to be processed with minimal human intervention.
- Developed C language PostScript output generation routines which formed the basis of a suite of applications whose purpose was to generate custom, high-quality reports from respondents' Birkman questionnaires.
- Created C language end-user Windows application for retrieving Birkman results from a central server (by modem) and allowing the user to select from and print any of approximately 25 custom-generated reports.
Open Source Development (hosted: VulcanWare.com)
- ZCopy - a comprehensive backup solution for windows. Written in C++, the distribution consists of a single executable and an ini file - supports a rich set of options and can easily be set up as a scheduled task for automated backups.
- ALE - a Java class library for rapid application dialog layout. The library achieves its flexibility via a custom scripting language (created using JavaCC) that is used to describe the geometry of the dialog components. This software has been utilized in a number of commercial development projects and is included on the CD delivered with Peter Van Der Linden's best selling book: Just Java (1.2).
- QALE - a C++ class library analogue to the java library above to facilitate dialog layout for the cross platform user interface toolkit Qt. This library also uses a custom scripting language which was created using lex and yacc (actually, flex and bison). This package has been featured in the developer's resources section on the Troll Tech (makers of Qt) homepage.
- JCrypt - Created pure Java implementation of the unix password hashing algorithm. This software has been incorporated into many encryption and security toolkits such as the NIST hosted real-time control systems library. This software is also mentioned in Sun's online java spaces book.
- TCPReflector - Wrote multithreaded Java port redirector software (primarily useful for internet protocol analysis).
- EXP - Created mathematical formula visualization package in Java that allows a user to plot, view and rotate an arbitrary multi-variable mathematical formula in real time. The user interface was built using Swing and JavaCC was used to create the formula parser.
- Developed C++ fractal generation program with cross platform user interface using the Qt toolkit. A custom fractal scripting language (created using flex and bison) is used to define the formula from which the image is generated. Hosted at www.fractorama.com.
© John F. Dumas - Updated May, 4 2008