Tom Armistead
1102 Havencrest Court
Garland, Texas 75040

(972)530-9022 Home(972)495-1465 Office
tom@Armisteads.comhttp://tom.armisteads.com/

Wisdom
LanguagesC, C++, Java, Powershell, Python, JavaScript, XML, HTML, Pascal (Borland/ISO), BASIC, PL/SQL, SQL, VMS/DCL, Bash, Korn Shell (ksh), Tcl, Perl, Awk, Sed, Lex, Yacc, Assembly (Z80/80x86/6502/68000).
DatabasesSQL Server, MySQL, SQLite, Oracle, DB2, Sybase, Informix, Postgres (PostgreSQL), mSql, Ingres, RAIMA Data Manager (dbVista), RAIMA Object Manager
Operating SystemsLinux, Solaris, Unix, Xenix, Sun OS (Berkley), MS-Windows (3.x-10), VMS, PC/DOS, CP/M
EnvironmentsJ2EE API (EJB, JMS, JNDI, JSP, Servlets), SOAP (Apache Axis2 and Axis2/C), WebSphere, JBoss, Tomcat, WebLogic, Jetty, Java SWING, Symantec VisualCafe, Netbeans/Forte4J, OO, Threads, X Windows/Motif/Tk, MS-Windows SDK, JAM
NetworksTCP/IP, Berkeley Sockets, RPC (ONC an DCE), Client/Server
Hardwarex86 (PC's), ARM, AT&T, NCR, SUN/SPARC, RS/6000, PowerPC, DEC/VAX
MiscellaneousCygwin (MS-Windows), WWW (Web/internet, CGI), HL7, SWIFT, CVS, RCS, PVCS, Linux/Unix System Admin, qmail, Courier IMAP, SystemImager, Linux HA


Work Experience

Feb 19 to Current, AAFES; Dallas, Texas; Consultant Working on Retail and Gas Point of Sale (POS) systems for The Exchange (AAFES / Army and Air Force Exchagne Service).
Same basic role(s) as previous assignment, development, support, industry required upgrades, ...

Jan 16 to Feb 19, L.L.Bean; Freeport, Maine; Consultant
Worked with retail point of sale group, on management of PINpad firmware, middleware software upgrades and management, including upgrades and certifications needed to support Contactless and EMV credit card interfaces.
New Powershell based tools for administration and management of Retail Point Of Sale PINpad interface services, and production rollout of changes.
New and existing, SOAP and RESTful web service multi-threaded backend interfaces to payment authorization systems (including credit card, PayPal and brand specific point managment, encryption services and various systems queries).
Back end collection and reporting for sales tax interfaces.
Development using the following;
Java, Powershell, KSH/Bash, Python, Perl, WebSphere, MS Windows, Linux, JSON, XML, DB2, SQL Server, Oracle, Vertex, ...

Feb 06 to Mar 16, AAFES; Dallas, Texas; Consultant
Worked on C/C++ Retail and Gas Point of Sale (POS) system for the Army and Air Force Exchange Service (AAFES, The Exchange), all application and associated systems infrastructure. Duties include architecture, development, deployment, maintenance, production support, developer training, helpdesk level 1 and 2 training, using all of the following;
Linux, C, C++, MySQL, SQLite, Java, Cygwin (MS-Windows), XML, Apache Axis2/C, Unix, Shell(s), DOS, MS-Windows, XWindows/Motif, Perl, Oracle PL/SQL, Pro*C,...
Ported large (3+ million lines of code) legacy client/server Retail and Gas Point of Sale system written in C/C++, from single threaded DOS, Unix and MS-Windows/NT, to highly threaded Linux (OpenSUSE / SLES) and created the initial infrastructure for production deployment and handled technical side of deployment and production support of initial beta and pilot rollouts.
Ported same applications for mobile point of sale use, to Ubuntu Linux on ARM based tablets and MS-Windows 8/Cygwin on Intel based tablets, for proof of concept presentations.
Architected, developed and delivered Linux middle-ware solution for High Availability server pairs, initial server and client installation and configuration, using modified versions of Linux HA, SystemImager and PING open source packages. Automated delivery of client images via PXE network boot.
Architect / lead developer on EMV (chipped credit cards) implementation for retail point of sale systems. Worked on Oracle applications for moving/merging large sets of data data between facilities (Java and Perl) along with other general Linux administration projects.

Jul 01 to Jul 03, Vistyx Corp.; Dallas, Texas; Consultant
Development on retail application. My initial/main role was installation and configuration of Tomcat (JSP and java servlet engine) and JBoss (J2EE application server) on top of an Oracle database. Also to create initial EJB and JSP/servlet code base. Provided ongoing support for this environment (on as needed basis).
Work was done on RedHat Linux, Java, Oracle, Tomcat, Jakarta Cocoon (XSL) and JBoss.

Oct 99 to Dec 05, eToys Direct/KBToys.com; Denver, Colorado, Consultant
Web server stabilization/performance tuning. Coding, testing and maintenance. Server side java for high volume database connection pooling, credit card processing, inventory management, partner integration, ...
Existing architecture review. New architecture review, design and implementation.
Oracle, PL/SQL, XML, Java, EJB, Servlet, JSP, JDBC, JBoss, WebLogic, SOAP, Tomcat, Jetty, ISO 8583, C, TCL, HTML, scripting. Heavy JDBC, sockets and multi threading in Java. Solaris/Linux system administration.

Jan 99 to Nov 99, Bank of America/Decision Consultants, Inc.; Dallas, Texas Consultant
Same company, different role. Ongoing complete design and rewrite of existing system using 100% Java and the Java Enterprise API (EJB, JMS, Servlets, JNDI, JSP, ?). N-Tier system, using Symantec Visual Cafe (Java SWING) applications and applets to create a web browser based user interface. BEA WebLogic application server to support a middle tier, using Enterprise Java Beans (EJB) for server side components, Java Messaging Service (JMS) for asynchronous communication with client applications, Java Servlets for incoming server connectivity via web browsers (client applications) and Oracle 8 as the underlying RDBMS.
Heavily involved in company certification of Java Enterprise API as an accepted programming environment which consisted of end-to-end prototype applications and extensive performance testing and measurements. Ongoing, minimal, support role of existing system (C, C++, AIX, X-Windows/Motif).

Jul 98 to Jan 99, NationsBank/Bank Of America/Decision Consultants, Inc.; Dallas, Texas Consultant
Design, coding and testing on conversion of software application from 2-tier system using AIX, C, C++, X/Motif and Sybase to a 3-tier system using Solaris, AIX, Java, CORBA, C, C++, ONC RPC, Threads and Sybase. Beginning work on Java development using JDBC for Sybase connectivity and Distinct Java ONC RPC as a pure Java replacement of the current 2nd and 3rd tier portions of the new system (approx. 6 months of development). Beginning Enterprise Java Bean (EJB) development to be used to replace CORBA tier. I did very little of the CORBA development, mainly debugging and administration. Worked on Y2K (2 to 3 months) certification of existing AIX, C, C++ and X/Motif application (testing, code changes and debugging).
Other work involved Unix system administration under Solaris, installation, administration and maintenance of CVS (source code and object revision control), Apache web server and various other compiler and debugging tools (i.e. GNU C,C++, ?), creation of web based tools for system monitoring (HTML and CGI).

Feb 98 to Jul 98, Healthdyne Information Enterprises; Dallas, Texas, Consultant
Unix, C, C++, Tcl/Tk, Perl, mSql, mySql, design and coding of various message-parsing portions of a communications protocol conversion product (interface engine). Worked on flat record (COBOL data files) and S.W.I.F.T. formatted messages. Work was done under AIX, Solaris, HP/UX, Digital Unix and Linux using C, C++, Tcl/Tk and Perl.

Mar 97 to Feb 98, GTE Telephone Operations (Decision Consultants, Inc); Irving, Texas, Consultant
Informix/AIX related design, coding on telephone switch diagnostic software. Creating web environments for manipulation of Informix databases using HTML, Java, JavaScript and C/C++. Building data converters and back end procedures for in-house system data to load Informix databases. Work also involves multi-thread and socket programming for client/server tasks. Also providing assistance with AIX sys admin. and assisting coworkers with general Unix programming for debugging, sockets, threads and HTML/WWW. Linux admin and installs for personal workstations.
Work was done under AIX on IBM hardware using Informix 7.1, Esql, C, C++, Java, and JavaScript.

Apr 96 to Mar 97, PageMart, Inc.; Dallas, Texas, Consultant
Oracle/Unix related design, coding and rework on current cycle billing procedures. Work involved performance tuning on current application (converting from PL/SQL to C/ESQL), bug fixing and adding features. Redesigning of current applications and training employees on use and programming of the system. Spent about 3 months bringing new contractors up to speed on current system after I left. Oracle Financials environment, creating input data for accounts receivable.
Also provided assistance with Unix sys admin and overall Unix/Oracle system performance issues.
Work was done under Solaris 2.4 on SPARC hardware using Oracle 7.1.6, PRO*C 2.0, C, Perl and Awk?

Mar 94 to Apr 96, Ameritech Health Connections; Richardson, Texas, Consultant
Application and system level design/coding/debug on clinical database product using Sybase and HL7 message protocol. Statistical tools for looking at throughput of database loader programs. Task scheduler for management of backend Unix processes. X/Motif tools to measure and present information and to provide end user/developer access to database. Lex/Yacc development for programming language development and HL7 message parsing. Built and worked on tools for handling run-time HL7 formatted data. Heavy socket programming. CVS/RCS administration. Perl scripts for formatting/presenting revision control history and usage information. Work in porting programs between Solaris, Unix, AIX and MS- Windows. Assisted in Unix system administration.
Work was done on Solaris 2.x, Unix SysVr4 and AIX using X/Motif, Sybase, Unix, C, C++, Lex, Yacc, Perl and TCL/TK.

Oct 93 to Mar 94, Canmax Retail Systems; Irving, Texas, Consultant
Oracle/Unix related rework, design and coding of payroll portion of back office store automation project. Work involved consolidating payroll information received from remote stores and performance tuning on Oracle PL/SQL apps. The consolidated data was then used to create statistic and payroll reports.
Programming was done in C, ESQL, PL/SQL, SQL*Plus, Korn shell, Awk and Perl. All work was done on a NCR 3000 computer, running AT&T Unix System V.4.

Jun 92 to Oct 93, Computer Assistance/Coopers & Lybrand. Addison, Texas; Consultant
MS-Windows related design/coding on Coopers & Lybrand Audit Support System software. Main areas were dbVista and RAIMA Object Manager application interface, tools development related to database population from external sources (i.e. Lotus Notes), data conversion, Import/Export to/from third party software and the end user Install program for the auditing software package.
Work was done on a 486 PC running MS-Windows 3.1 using Microsoft C++ 7.0 and Microsoft SDK. Awk was used in development of the database population utilities to generate C++ source code that reflected the current database schema. Korn shell and SED were also used.

Sep 89 to Jun 92, Computer Assistance, Dallas, Texas; Consultant
Unix related work in database design, hardware and software procurement, selection and installation, Unix system admin., system level coding, training, testing and Oracle database administration, development, performance testing on a retail store automation project for the Army and Air Force Exchange Service (AAFES). Developed 4GL using JAM (forms editor) that provided access to the Oracle database. A procedural interpretive language was developed, using Lex/Yacc for creating program logic. Was involved in training for design and development using this language.
All work was done on a 486 PC running Interactive Unix SysVr3.2 and IBM RS/6000 running AIX 3.1, using C++, C, Oracle, SQL, Dynamic/Embedded SQL (PRO*C) and Oracle OCI, JAM and an in-house 4GL.

Apr 89 to Sep 89, Contact Software Int'l, Irving, Texas; Consultant
Software design and development on PC base contact management software product named ACT!. The user interface, menuing, database application. Work included a pull-down menu system and the writing of a word processor and working with junior level employees on PC architecture and program design and debugging.
Development was done in C++ and 80x86 assembly under PC/DOS on PC compatible computers.

Oct 87 to Mar 89, ElectroCom Automation, Arlington, Texas; Consultant
Software design, development and rework on message switching product line. Police department applications for radio based mobile data terminal control, switching, parsing, formatting and validation. 2780 bisync and async communications protocol drivers. Radio communications management for controlling redelivery and decaying of data to the mobile data terminals. Heavy interprocess communications. Creation of redundancy software. Training and assisting employees on use and continued development and installation of software. Unix and Xenix system admin, hardware/software installation and configuration. Development was done in C using Unix SysV on AT&T 3b2 computers, SCO Xenix and Microport Unix on PC/AT computers, with Z80 assembly for third-party sync/async conversion hardware used in bisync communication.

Apr 87 to Oct 87, Datamatic Inc., Richardson, Texas; Software Engineer
Software design, development and rework on PC based data switches, used for data communications with handheld terminals. Data was manipulated (edit/delete/add/reformat) for printing and sending to other computers or re-sending back to the handheld terminals. Development on software for communications to the handheld terminals.
Development was done in Turbo Pascal and 80x86 assembly under MS-DOS on PC compatible hardware.

Sep 85 to Apr 87, Amdahl Communications, Richardson, Texas; System Design Engineer
Software design, development and maintenance for X.25 switching network configuration and management products,. Involved real time multi-process 80x86/Z80 hardware/software on operating systems designed in-house. Tools development for file transfer, source code control and release, object code control and release, product development, VAX systems administration, etc. Porting of development environment from VMS to UTS (Amdahl's mainframe System V Unix).
Development was done using Pascal, 80x86/Z80 assembly, C, VMS/DCL, DEC/CMS, DEC/MMS, Bourne shell, DEC/VMS and Unix. Hardware included in-house CP/M computers, DEC/VAX 11/780, AT&T 3b2 and Intel Micro Development Systems.

Dec 83 to Sep 85, Pinetree Computer Systems, Irving Texas; Software Engineer
Software design, development and support for handheld computers on application and operating system levels. Telephone communications software between the handheld and remote receiver computers. Formatting of data and applications download for handheld from the receiver. Development environment utilities and porting under VMS. Telecom product to do statistic and billing inquiries via telephone to infield receiver systems under VMS. Program generator under MS-DOS and VMS to build Z80 source code, compile it and download to the handheld computers as a user application. VT-102 terminal emulator under PC/DOS using 80x86 assembly. EPROM programmer controller application under VMS. Development was done in Z80/80x86 assembly, C, VMS/DCL, MS-BASIC and MACRO-11 assembly.

Miscellaneous

Oct 99 to Present
I run a small Linux based web hosting business from my house at http://www.nohost.net, providing DNS, web site and email services. This involves general Linux (RedHat and SuSE) system administration on a network of 7 systems), including administration and maintenance of the following; DNS (bind 9), DHCP, qmail, courier IMAP server, Squirrelmail web email client, Apache web server, Tomcat servlet/jsp engine, MySQL and PostgreSQL database servers, Amanda backup server, Linux based router/firewall.

Tom's page counter