Technology

I've worked with a long list of technologies in my career, so I enumerate the more interesting ones here, so as to keep the clutter our of my main Resumé.

I will say two things about the technologies: First, believe the span of systems, languages and applications I've worked on has given me a good historical view - there is very little under the sun, as it turns out, and things don't always improve. Secondly: I've also tried to become the "Chef", not the "Master of the 12-inch frying pan" - that is, to be agnostic to technology, but dedicated to the overall craft of building software.

Development Technologies


Languages

Java

My primary development expertise is Java and JRuby, and the Java platform. I work with many different Java technologies, many of which are noted below. I am a member of, and frequent contributor to, a number of on-line communities of Java developers.


I have direct experience with the following Java technologies, among others:

  • J2SE
  • JME
  • JavaDoc
  • J2EE
  • CORBA
  • JMS
  • JSF
  • Java Web Services
  • JavaMail


Ruby

I have worked extensively with Ruby (and JRuby), both as supporting tools for scripting and utilities in support of a Java application development effort, and as top-level languages for entire application suites (using the Rails framework).


JavaScript

I have developed Ajax applications both directly in JavaScript and using various JavaScript libraries, such as Ext and Script-a-liciious, among others.


HTML

I am extremely familiar with HTML, including advanced features and I often hand-code HTML in additional to using page editing tools such as IBM's Websphere Studio and MS-FrontPage. I have built HTML framework systems in Java that generate forms, tables, font specifications, etc. I am familiar with the portability requirements of HTML (e.g. to work properly with all common browsers). I commonly work with HTML forms, and, as mentioned elsewhere, Ajax.


XML

I am currently designing systems that use XML as a data interchange standard for e-business and e-commerce. I was actively involved in integration of the Cocoon project into the Keel project. I am also familiar with XML integration with DBMS systems, and have participated in several projects using such systems. I have developed XSL stylesheet transformations for many different formats, including PDF (via FOP). I have developed systems using SOAP and WSDL, including advanced client side authorization/authentication and secure XML. I have also worked with RDF and OWL dialects of XML for handling Semantic data.


PowerSoft PowerBuilder

I have implemented complete financial systems in PowerBuilder (version 5.0 at the time) and have used the Powerbuilder web plug-in and the report writer InfoMaker extensively.


4GL's

Including Unify's Vision, Informix 4GL, and others.


Pilot Decision Support Suite IDQL language

OLAP database tool set, similar in many respects to Essbase, Cognos, WebFOCUS and other decision support products.


Pilot Analysis Server

Pilot Internet Publisher

Pilot Sales and Marketing Analysis Library

I have designed and implemented an extensive decision support system using Pilot as the OLAP engine, doing the relational to dimensional model mapping, building and defining data structures for the underlying database and preparing extensive reports for the end-users of the system. The system was web-based (Java, JavaScript and ActiveX). I was also responsible for the server-side Java components for extracting the data from the legacy systems.


COM/DCOM

I have written Java code using Microsoft's Visual J++ to interface using DCOM with a data warehouse and Excel spreadsheets.


ActiveX

I have integrated ActiveX controls with both Java Applets and Servlets, as well as developed JavaScript to provide frameworks for ActiveX controls used in a decision support system.


Others

I have done some small projects and utilities with C++, but find Java more suited to larger projects now that it has matured as a platform and as a language. I have also worked with other languages on older projects, including SmallTalk, Pascal, COBOL, and various other 3GL’s.


Application/Web Servers


I have installed and configured many different varieties of application and web servers, including Equinox (and OSGi container), Jetty, Apache (with Jserv and more recently Tomcat), Allaire’s Jrun, MS-IIS, Jigsaw, WebSphere, BEA WebLogic, Orion Application server (an integrated EJB/web/JSP/ servlet/JNDI/JMS server - now part of Oracle 10i) and several others.


Supporting Tools


I have worked with an extensive set of development tools, including the Eclipse IDE, IntelliJ IDEA, Oracle's JDeveloper, Sun's Netbeans, Maven, Continuum, JIRA, Atlassian's Bamboo (a continuous integration system), Apache Ant, Make, and dozens of others.


I consider the technical tools of my trade much like a master chef might consider stoves and knives: they're all a bit different, but it's possible to master any of them in a short period of time once you have the fundamentals – and the goal is to make a gourmet meal, not to get wrapped up in the features of the cooktop.



Documentation


I have authored whole systems of documentation, both paper-based and online.


I am a good technical writer and am also able to write user documentation that is readable and highly usable. I have authored on-line help and HTML documentation systems in conjunction with the projects they describe.


I am familiar with the design requirements of both user and technical documentation, including JavaDoc and UML notation documentation.


I currently use Docbook XML for authoring both documentation and actual books, and work with Wiki-based documentation on a daily basis.


I am also very familiar with the limitations of documentation, including its tendency to become less related over time to the system it's describing, and techniques and practices to minimize this problem.




Operating Systems


Unix and Linux

(Solaris, Data General, Ultrix, SCO Unix, Linux). I develop primarily on Solaris, Mac OSX and Linux at the moment, but I am familiar with Windows NT /XP/2K and 98. I would consider myself at the expert level in Linux system administration and have installed and configured the system on everything from multiple CPU servers to laptops.


IBM AS/400 (OS/400)

Sufficient familiarity with AS/400 to build simple CL programs with parameters and logic, utilize STRSQL to access AS/400 files and data dictionaries. Extensive use of IBM's Java Toolkit for AS/400 for its JDBC access to AS/400 databases and files. I have developed server-side applications for the AS/400.


Mac OSX

I have worked with the Macintosh operating systems since before they were the Macintosh (e.g. Apple Lisa), and am very proficient in the latest incarnation, Mac OSX (up to Leopard, so far).


Microsoft Windows NT/95/98

I worked with both Windows client systems and NT servers, and I am familiar with not only each system independently, but also how to integrate them to work together in a cohesive network, for example, NT to AS/400 connectivity, AS/400 to Unix linking (Samba) and printer sharing, etc. I know how to utilize these systems to their best capabilities.



Databases


Although I have experience with a large number of specific database systems as listed below, I have learned enough about SQL and database systems to know what not to do: in other words, how to make best use of the features of a particular database without creating software that is too database-specific. I am at an expert level with SQL and database design.


Oracle

I am familiar with and have used Oracle's database systems on a number of previous projects, including some PL/SQL coding of stored procedures (I generally regard stored procedures as a bad idea, for portability and maintainability reasons, but they have their advantages in some specific situations).


MySQL

I am extremely familiar with this popular open-source/commercially supported database system, and have implemented, installed, tuned and developed with MySQL on a great many projects. I am also well versed in the various tools available to work with MySQL.


Hypersonic SQL

A lightweight open source all-Java database that I have integrated as the default database for the open source framework developed at the Jcorporate site.


A high performance open-source database. I work with MySQL extensively in the maintenance and ongoing development at the Jcorporate site as it is the database of choice of the hosting company for the site.


PostgresSQL

A pre-installed database on most Linux systems, I have installed and configured Postgres on many different systems and used it extensively in both development and production.


Sybase

I have implemented, installed and worked with Sybase System 10, System 11, and Adaptive server on a number of different systems including Solaris, NT and Linux. I am extremely familiar with Sybase's SQL syntax and have written some triggers and stored procedures in Transact-SQL. I am also familiar with the SQL Anywhere product and use it on my laptop for development, testing and small-scale deployments. Regis Ltd. was a member of the Sybase developer program from 1988.


Microsoft SQL Server

Designed and implemented a line of financial management applications including Ledger, Receivables, Payables, Inventory and Fixed Assets all utilizing Microsoft SQL server. Designed and implemented a comprehensive data warehouse and decision support system involving all areas of business of a multi-national hotel/resort/casino company. Areas of business included Financial, Reservations, Operations (e.g. hotel operations), Casino, Food and Beverage.


DB2/400

I've used the database on the AS/400 extensively, mostly for data extracts from legacy systems into a data warehouse for multidimensional analysis.


Microsoft Access

I have used Access extensively as a local database and in lightweight deployments of servlet projects. Also I have done some custom forms in Access for administration (via linked external tables) of SQL Server databases. I am familiar with the JET engine and DAO objects, record sets, etc.


Pilot Multidimensional Database (OLAP)

CORBA-compliant interface to Pilot multi-dimensional database including extensions and enhancements to Pilot's own HTML capability for more advanced formatting.



Applications


Oracle Siebel and BIEE

Integrated a third-party application via the Oracle BIEE platform to extract query results from the underlying Siebel (Sales and Support modules) databases.


Microsoft Dynamics CRM

Integrated external commercial product with the MS CRM system using the provided web-service interface (including FetchXML queries and metadata service inquiries).


SQR Reporting System (now Sqribe)

Implemented and deployed in a web-enabled environment many complex financial reports written in SQR and accessing a relational database


Crystal Reports

Designed and implemented many supporting reports for accounting and decision support systems.


Powersoft's InfoMaker

Implemented reports for a full financial system (ledger, payables, receivables) in InfoMaker.


J.D. Edwards Accounting

Written extract programs to import data to a data warehouse from JDE General Ledger, Payroll and Job Cost systems. Familiarity with the general structure and detailed file layouts of the JDE data files, including the Payroll modules.


LMS Hotel System

Written Java data extracts to import business metric data from a production Hotel system into a data warehouse


LSI Casino System

As above, data extracts.


Argo UML and Popkin System Architect

UML Modeling tool and database mapping system. I have used UML extensively to design a complex data warehousing solution and related applications.


Visio Professional

I have used Visio for preparing system diagrams that are not appropriate within the UML modeling tool. (Multi-dimensional hierarchy charts, for example).


Office Productivity Software


I have a working knowledge of MS-Word, an in-depth knowledge of Excel including some macros (VBA), COM integration with Java, importing and exporting data into and out of relational databases including MS SQL Server, Sybase and AS/400 DB2.


I currently use OpenOffice (and it's derivative, NeoOffice) exclusively, and am very familiar with it, and have written advanced Macros for it.


I have also worked with applications such as Microsoft Project, Adobe's Acrobat and Dreamweaver products (including some basic Flex development), among others.



Networking


Have setup numerous networks including LAN/WAN, TCP/IP, PC/NFS as well as Microsoft Networking (including configuration of multiple NT domains).