|
Charles Honton |
|
|
Chas brings employers 25 years of cutting edge experience in enterprise computing -- placing particular importance on agile software development; using test driven development with JUnit for testing and Ant for reproducible builds. Chas produces full life-cycle documentation including standards, use cases, interaction diagrams, and javadoc. Chas has contributed extensively to the open source community. Chas has a career emphasis in secure distributed computing using SOA, J2EE, CORBA, and TCP/IP.
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Developer for the Java 2 Platform
|
Skill Domain: |
Framework Architecture, Application Design, Process Design, Team Leader (SCRUM and SDLC) |
|
Programming Languages: |
Java (11 years), C++ (10 years), SQL (15 years), JavaScript, HTML, CSS, JSF, JSP, XML, UML, Bash, Assembler, Pascal, APL, Lisp, Fortran, Algol, Basic |
|
Technical Environments: |
J2EE, Windows NT, Linux, Solaris, FreeBSD, HP/UX, AIX, OS/2, Legacy DOS, Gnome Desktop, CORBA, TCP/IP |
|
Applications/ Tools: |
Eclipse, JDeveloper, JBoss, oc4j, Maven, Enterprise Architect, Erwin Data Modeler, WebSphere Business Integrator, Oracle, DB2, SQLServer, Rational Rose, Ant, JUnit, JSwat, SourceSafe, CVS, Subversion, JDO, Apache, Tomcat, Microsoft IIS, sshd, PuTTY, Lucene, Sleepy Cat, LDAP |
March 2007 –
Present: Intuit,
Project
Beacon - Customer Central Rewrite
Data acqusition web service for personal and business financial data aggregation. Developing in a Windows environment. To be deployed in Linux / WHP.
Role: Lead Engineer
· Overall architecture driver
· Data model and complex methods driver
Tools: Eclipse, Code Collaborator, Maven, Enterprise Architect, Erwin Data Modeler, TeamTrack, Scrumworks, Perforce, JBoss, Oracle
Competitive
Advantage Firefox Extension
Web application implemented with Firefox Extension allows meticulouos end user tracking. Patent application pending.
Role: Lead Engineer
· Full use of XUL, RDF, Javascript, CSS, and HTML
· Web service backend communications via JSON
Tools: Java, JavaScript, Eclipse, Code Collaborator, Perforce, Tomcat, MoinMoin
QuickSwitch
Web application allows end users to transfer Bill Payees from their current financial institution to their new financial institution. Patent applications pending.
Role: Lead Engineer
· Designed and implemented integration with Metavante XML Bill Payer interface.
· JSP pages including JavaScript
· Ongoing deployment support
Tools: Java, JavaScript, Prototype, Eclipse, Code Collaborator, TeamTrack, Scrumworks, Perforce, Tomcat, Microsoft SQL Server, MoinMoin
Customer
Central
Data model and back end application providing personal financial data aggregation. Intuit QuickBooks Online Edition and Quicken use CustomerCentral. Developed and deployed in a Windows environment.
Role: Lead Engineer
· Data model maintainence
· Ongoing deployment support
Tools: Java, Eclipse, Code Collaborator, TeamTrack, Scrumworks, Perforce, JBoss, Microsoft SQL Server, MoinMoin
October 2004 – February
2007: Brulant,
WebCharter
Three tier web application providing quote, reservation, and fulfillment tasks for a national bus charter company. Developed in Windows and deployed in a Linux environment.
Role: Senior Consultant
· Designed jsf layout
· Designed back-end architecture, integrates application with eFax, email, arcGIS, Paymentech, Vtrak, JD Edwards, and PeopleSoft
· Monitored Data Model for implementation team
· Ongoing deployment support
Tools: Java/J2EE, Oracle JDeveloper, Oracle Database 10g, Oracle oc4j Application Server
WebSphere
Business Integrator
Installed, configured, and deployed the IBM WBI suite for international manufacturer in a Solaris environment. The suite included: Partner Gateway, MQ, and InterChange server.
Role: Senior Consultant
· Mentored / Tutored team members
· Configured development, test, and production environments
· Ongoing deployment support
Tools: WebSphere Partner Gateway, WebSphere MQ, WebSphere Interchange Server
Email
Gateway
Developed email gateway for national lobbying organization in a Linux JBoss environment. Nightly processing of customer contact database pushes changes to SOA email contact service.
Role: Senior Consultant
· Mentored / Tutored team members
· Installed and configured development and test environments
Tools: Eclipse, Junit, JBoss
VSFTP
- http://vsftpd.beasts.org
VSFTP is “Probably the most secure and fastest FTP server for UNIX-like systems”.
Role: v2.0.5 Contributor
· Created patch to allow Microsoft office suite to connect to vsftp servers. Provides accurate response to FEAT request.
Tools: C, make, diff
Calculated
Fields and Summarizations
Form & Table application extensions create non-database calculation and summarization fields.
Role: Architect & Implementer
· Worked closely with customer to determine requirements
· Determined implementation integration points
· Integrated Rhino into field display
Tools: Java, Rhino JavaScript, JSwat, Ant, JUnit, Eclipse, Subversion
Forms
and Tables
GKP Desktop applet allows users to create ad-hoc reports of GKP model and other datasource schemas. Reports can be in either a form or table format. Report editor uses schema metadata to present field options to the end user. Reports are then translated into OQL datastore queries.
Role: Team Member
· Architected temporary answer table for sorts and filters
· Mentored team members
· Implemented embedded table fields
Tools: Java, Ant, JSwat, SourceSafe
October 2001 -
September 2004: Acero,
Java
Desktop Integration Components - http://jdic.dev.java.net
The JDIC open source project makes Java applications first-class citizens of current desktop platforms without sacrificing platform independence by providing access to facilities provided by the native desktop such as the mailer, the browser, and registered document viewing applications.
Role: Contributor
· Icon Service Incubator Project Owner
· Extensive contributions to Service / Pluggable Provider Architecture.
· Implemented Windows and Gnome icon providers.
· Contributed Ant scripts for platform independent builds.
Tools: Java, Ant, C++, cvs, diff, patch
GKP
Desktop
Web Start application provides JDK 1.4 based framework for Swing applets to access the GKP model and server. SSH is used to securely tunnel client / server interactions through public Internet. User accessible applets and other resources are downloaded from the GKPFS. The file browser component provides a view of the user's home directory and supports drag&drop of files between the GKPFS and the native desktop. Opening a GKPFS file downloads the file to the local workstation and launches the associated native desktop application.
Role: Architect & Team Leader
· Created jndi descriptors for Web Start client application deployment
· Integrated orb socks plug-in to direct IIOP traffic through a PuTTY client / sshd server tunnel
· Designed and developed service / provider plug-in architecture
· Designed automatic application resource download from centralized file service
· Integrated Operating System Desktop
Tools: Java, Ant, Webstart, sshd, PuTTY, JDIC, Secant Extreme Server, SourceSafe
OpenSSH
- http://www.openssh.com
An open source version of the SSH protocol. OpenSSH encrypts all traffic to eliminate network-level attacks and provides host authentication and secure tunneling capabilities.
Role: Contributor
· Created patch to allow authenticated users, without /etc/passwd entry, to use port forwarding
Tools: C, make, diff
Java
Data Objects
An implementation of the JDO specification layered on the Secant Persistent Object Service. Complete object to relational database mapping solution includes transparent object navigation and ad-hoc query language.
Role: Consultant, Team Member
· Designed Manager/Managed Object interactions
· Directed implementation efforts
Tools: Java, Ant, Secant Persistent Object Service, SourceSafe
PuTTY
- http://www.chiark.greenend.org.uk/~sgtatham/putty
PuTTY is an open source implementation of SSH for Win32 and Unix platforms.
Role: Contributor
· Provided patch for SSH client to support SOCKS port forwarding.
Tools: C, make, diff
Genomics
Knowledge Platform Filesystem
GKPFS is a secured registry and file system used by the GKP and GKP Desktop. Permission lists allow or deny access per user or group. Supports user 'home' directories and conventional locations for resources such as applications, icons, and archives.
Role: Team Member
· Designed automatic application resource downloading.
· Implemented directory locking
Tools: Java, Ant, Secant Extreme Server, SourceSafe
Text
Search Service
Text search provides text index of GKP model objects using Lucene indexer and search engine. Incremental and batch updates of index. GKP model metadata in conjunction with deployment descriptors drive indexing and searching.
Role: Architect & Developer
· Designed incremental and batch updating of index
· Integrated indexer with metadata knowledge of GKP model
Tools: Java, Ant, Lucene, Secant Extreme Server, SourceSafe
Job
Controller
Provides workflow scheduler with monitoring. Checkpoints allow complex jobs to be interrupted and restarted. Jobs can be performed on local workstation or remote job farm.
Role: Team Lead & Developer
· Managed day to day activities and mentored a six member, two location team
· Designed execution service architecture
Tools: Java, Ant, C++, Secant Extreme Server, SourceSafe
OpenORB
- http://openorb.sourceforge.net
OpenORB is a Java implementation of the Object Management Group CORBA 2.4.2 specification and associated OMG Services.
Role: Contributor
· Implemented loading of platform specific native libraries for RMI over IIOP
Tools: Java, Ant, C, Checkstyle, diff
Genomics
Knowledge Platform
The GKP is a semantic integration knowledge model of science research objects. Rational Rose UML model is compiled into JDO business objects using ODLC emitters. Business objects use OQL for querying datastores.
Role: Team Member
· Created deployment descriptors for Secant Extreme Server
· Implemented build scripts
· Created unit tests for GKP model
Tools: Java, JDO, Rational Rose, Ant, Secant Extreme Server, SourceSafe
April 1994 -
September 2001: Secant Technologies,
Apache
mod_cntr - http://www.dan.co.jp/webcounter
Open source Apache web server module for page counters.
Role: Contributor
· Contributed patch for BSD / SleepyCat database locking in web page counter
Tools: C, make, diff
JSP
Web Server
Secant Extreme Server’s JSP 1.2 / Servlet 2.0 container includes a JSP compiler and hot deployment of applications. Pluggable front-end web server can be IIS or Apache, or uses in-process Web Server.
Role: Architect & Team Leader
· Lead three-man implementation team.
· Integrated IIS and Apache web servers.
Tools: Java, Ant, cctask, C++, C, Secant Extreme Server, SourceSafe
Simple
Service Discovery Protocol
SSDP uses multicast IP to discover TCP services. This protocol is fully described in Internet Draft draft-honton-sdp-02.txt. The Internet Assigned Numbers Authority (IANA) has assigned IP multicast address 224.0.1.67 for use by SSDP.
Role: Author
· IANA liaison
EJB
Server
An EJB 1.1 certified container environment for use with Secant Extreme Server. Supports session and entity beans. Entity beans can use either BMP or CMP. Supports standard transaction and security policies. ODLC emitters produce EJB ties, beans and deployment metadata.
Role: Team Member
· Integrated security with CORBA Security Server
· Integrated transactions with DSC
· Implemented Java / C++ bridges
· Implemented ODLC emitters for EJBs
Tools: Java, Ant, cctask, C++, Secant Extreme Server, SourceSafe
Extreme
Bundling of ODLC, AbsORB, DSC, POS and CORBA Services for a complete C++ and Java application server. Uses Baseset to achieve platform independence.
Role: Team Leader
· Lead four man team
· Integrated security with CORBA Security Server
· Integrated transactions with DSC
· Implemented Java / C++ bridges
· Implemented ODLC emitters for served objects
Tools: Java, C++, Ant, cctask, SourceSafe
CORBA
Security Server
Supplies user credentials and resource required rights from pluggable authenticator; either LDAP or POS datastore. User credentials include attributes such as roles and rights. ORB client interceptors automatically transfer security credentials with each remote CORBA method invocation. ORB server interceptors enforce operation access control.
Role: Architect & Team Leader
· Led three man team
· Architected ORB interactions
· Designed and Implemented credential / rights schema
· Implemented ORB client and server interceptors
Tools: C++, POS, LDAP, SourceSafe
Distributed
Service Coordinator
The DSC provides service launching, monitoring, and fail over mechanisms for CORBA served objects. Uses IP multicasting for intra-cluster communications. Clients use well-known address or SSDP to discover a DSC instance. Internet Assigned Numbers Authority (IANA) has assigned TCP port 3390 for use by this service.
Role: Team Member
· Architected IP multicasting
· Implemented process monitoring and launching
· IANA liaison
Tools: C++, POS, Ant, SourceSafe
ODL
Compiler
ODLC is a three-phase compiler, which parses Object Description Language, enforces property constraints, and invokes emitters. Property constraints are expressed in configuration file. Additional constraints and model semantics are hard coded. Each emitter produces different output files: ORB bindings for Java and C++, POS metadata, database schema, EJB and C++ ties.
Role: Architect & Implementer
· Authored ODL, an extension of CORBA IDL
· Implemented Lex/Yacc compiler front-end
· Architected plug-in emitter framework
· Implemented multiple emitters
Tools: C++, Sandstone Visual Parse++, SourceSafe
AbsORB
A CORBA C++ ORB supporting both static and dynamic object invocation. Uses IIOP 1.0 transport. Supports rebinding of served objects through DSC. ODLC emitters produce client proxy and served object bindings.
Role: Architect & Implementer
· Implemented core services
· Implemented ODLC client stub and server tie emitters
Tools: C++, SourceSafe
Persistent
Object Service
POS stores persistent objects in a relational database. ODLC emitters produce metadata for C++ and Java objects. Pluggable datastore driver translates metadata into database specific SQL statements. Object Query Language allows dynamic restoration of C++ or Java objects.
Role: Team Member
· Architected pluggable datastore framework
· Implemented ODLC metadata and business object emitters
Tools: C++, Oracle, DB2, Sybase/Microsoft SQL Server, and SQL Anywhere, SourceSafe
Secure
Internet Daemon
Shareware Internet service launch daemon for OS/2 and Windows NT. Incoming requests are allowed or denied based upon source IP address or DNS reverse lookup name.
Role: Author
Tools: C++
Post
Office Protocol Server
Shareware POP3 server for OS/2 and Windows NT.
Role: Author
Tools: C++
Baseset
Platform leveling C++ classes include files, threads, mutexes, semaphores, process control, and IPC. Operating systems include Windows, Linux, Solaris, FreeBSD, AIX, OS/2, and HP-UX.
Role: Lead Developer
Tools: Gnu gcc, Microsoft Visual C++, Borland C++, IBM Visual C++, IBM xlc, Metaware C++, SourceSafe
Ported Borland Object Windows Library from Windows to OS/2 Presentation Manager.
Role: Team Leader
Tools: Borland C++
April 1993 -
February 1994: IOTech,
Daqbook
200
Data acquisition unit for laptop computers. Enhanced
Role: Hardware Engineer
Tools: Actel FPGA designer suite, Protel circuit designer
October 1986 -
April 1993: Scientific Solutions,
Solon, OH - Lead Project Engineer
ISO
9000
Engineering member of Management Team responsible for direction of all new product development and ongoing product support. Quality control team was responsible for ISO 9000 certification.
Role: Engineering liaison
NIACPA
Multimedia Integrated Circuit
ASIC for multimedia computer peripheral. Supported
SCSI, digital CD,
Role: Hardware Engineer
· Led two man software team creating multimedia device drivers for Windows and OS/2
Tools:
LabMaster
AD
Data acquisition peripheral card for PC compatibles. Surface-mount analog circuitry provides sixteen channels of 330 kHz, 12-bit analog input, dual 500 kHz analog output, DMA channels for both analog input and analog output, expandable digital I/O and five counter / timers. Software routines include high speed streaming to/from disk, pre/post trigger data collection, GUI scope emulation, waveform generator, and hardware confidence tests. TSRs support Asyst and Labtech. Script control of all board functions.
Role: Hardware & Software Engineer
Tools:
Route488
TSR written in assembler provides BIOS-like support of IEEE-488 interface cards to numerous high-level languages. Reverse engineered and implemented replacement for industry standard GPIB.COM
Role: Software Engineer
Tools: Microsoft Assembler, Borland Turbo C++
MC-DAS
1612/1616
Data acquisition peripheral cards for in IBM PS/2 computers. Sixteen channel 16/12-bit analog input, single 12-bit analog output, digital I/O, and five counter / timers.
Role: Hardware & Software Engineer
Tools:
July 1986 -
September 1986: Telxon,
Protocol
Switch
Multi-line converter used RS-232/485 with SDLC, HDLC, Bisync and other IBM terminal protocols to link hand-held terminals with mainframes. Multi-tasking executive implemented in assembler.
Role: Software Engineer
Tools: Microsoft Assembler, Wizard C++
November 1983 -
June 1986: Tecmar, Solon, OH -
Software Engineer
Phonegate
2400
2400bps Hayes compatible modem. Firmware processing included asynchronous character conversion, phone set monitoring, call progress detection, command line interpretation and data set connection.
Role: Software Engineer
Tools: Z8 assembler, Coherent
LabPac
Real-time multi-process executive for laboratory data acquisition and control. TSR handles simultaneous analog input, analog output, digital input, digital output, counting, and timing tasks.
Role: Software Engineer
Tools: Microsoft Assembler, Microsoft C, Borland Turbo Pascal
eLAN
Printer Server
eLAN print utilities spool direct file images or format and spool text. Output to local printers be redirected to network printer or local printer can be shared.
Role: Software Engineer
Tools: Mark Williams C
|
March 2007 – Present |
Intuit, Highland Hills, OH Staff Engineer |
|
October 2004 – February 2007 |
Brulant, Beachwood, OH Senior Consultant |
|
October 2001 – September 2004 |
Acero, Cleveland, OH Senior Architect |
|
April 1994 – September 2001 |
Secant Technologies, Beachwood, OH Architect |
|
April 1993 – February 1994 |
IOTech, Bedford Heights, OH Analog Design Engineer |
|
October 1986 – April 1993 |
Scientific Solutions, Solon, OH Lead Project Engineer |
|
July 1986 – September 1986 |
Telxon, Fairlawn, OH Lead Software Engineer |
|
November 1983 – June 1986 |
Tecmar, Solon, OH Software Engineer |
|
September 1979 – May 1983 |
B.S. Computer Engineering |