Contributor to the Google Web Toolkit and internal tooling to support GWT development.
Found a position specializing in Java development, network management, and Unix administration.
Performed software engineering duties to create and deploy software running under the Blackboard Learning System 6.x (Enterprise). This software is delivered as "Building Block" modules. Learning Objects produces a core product suite called Campus Pack that consists of four building blocks, Teams LX (wiki software), Journal LX (blogging software), Backpack LX (personal publishing), and Search LX (full-text search). Additionally, Learning Objects performs consulting work to develop custom software solutions for its clients.
Java development: Building Blocks are Java web applications that have additional meta-data to allow integration into the Blackboard system. Additionally, they rely on Blackboard's data-persistence and -presentation middle-ware.
Blackboard Learning System: Experience with installation, maintenance, and development of Blackboard Learning System 6.x servers in stand-alone and load-balanced configurations.
Consulting: Worked with customers to design, implement, and deliver custom building blocks to solve unique problems. Provided follow-on support and additional development as necessary to fulfill contractual obligations. Worked to leverage custom code into future development plans to create new products to extend the services that Learning Objects can provide to its customers.
Developed AskThemOnline, a form-based, data-collection program designed to conduct questionnaires, surveys, and other data over the Internet. A companion program, ScriptWriter, was developed to interactively build the AskThemOnline forms. AskThemOnline also provides custom application development in addition to the form-based services.
ATO server: The AskThemOnline server is written in Java, using Servlets, hosted by an Apache+Tomcat server. It stores data in a PostgreSQL RDBMS using a JDBC conduit, and also uses JNDI to interact with the servlet container for configuration. To restrict access to certain forms, an OpenLDAP server is used to store user information allowing for centralized management of form security. The JavaMail API is used by the ATO server to send email to form owners and to provide "receipt" functions. Extensive use of JavaBeans are made to generate and process forms and form elements.
The AskThemOnline server has an Apache HTTP server to talk with users' browsers. This server will forward requests to Tomcat application servers via a JK conduit. This allows for automatic load-balancing and server fail-over. All session data is stored in a distributed manner so that the failure of an application server will not affect the user's experience.
ScriptWriter: SW is written in Java, using Swing as the UI toolkit. It is written to be as cross-platform as possible, and also supports Java WebStart environments. Created scripts are stored in an XML format, which is made relatively simple because the form items, as well as the form itself, are implemented as Java Beans.
PHP/JSP: After data is collected, custom reports and web applications are written for the customers. These are written in PHP and JSP, taking data from the ATO server's PostgreSQL database. Additionally, the AskThemOnline website is written in JSP and integrates the AskThemOnline form processing software with a content-management system to allow customer self-service.
Designed and developed a prototype, Java-based software installer to automate installation and configuration of a suite of products, and worked on expanding the prototype into the installer for the WebSphere Portal Offering software release. In the second year, development of the prior year's installer project continued, expanding it to support multiple OS/hardware platforms (Win32, AIX, Solaris, Linux/x86, and Linux/S390) and multiple software offerings with a single, integrated code base. Developed a PHP-based job management system for automating software builds and maintenance tasks, and assisted in the general maintenance of the departmental server.
Operating Systems: AIX 4, 5L, Solaris 7, 8, Suse Linux, RedHat Linux. I have experience installing and administering all of these operating systems.
Java Technologies: Swing, LDAP integration via JNDI, database server interface via JDBC. Heavy emphasis was placed on modular, object-oriented design of the installer. Also important was separating the platform-dependent "control" portions of the code from the platform- and product-specific installation and configuration code. JNI methods were used extensively on Win32, while the Unix platforms relied on shell scripting, Bourne-compatible and KSH, to interact with the system.
Databases: The installer was required to support IBM's DB2 and Oracle 8 database systems. I have experience installing these databases and interacting with them through their administrative consoles and through SQL queries. The PHP job-control system used PostgreSQL as its data-store.
Software: By the end of Summer 2002, the installer supported more than 30 pieces of software to be automatically installed and configured. My assigned products included DB2, SecureWay Directory Server, IBM HTTP Server, as well as a collection of common libraries.
Miscellaneous skills: My work at IBM taught me how to work effectively in a team environment, learning how to share tasks with other people, and to communicate effectively to keep my team members up to date on changes made and changes being considered. Also, I learned how to take requirements for the software, recommendations and comments from the team, and lessons from my own experiences, and turn these into a functional product.
Java (8 years) is my primary development language. Experience with:
Experience installing and maintaining Linux (Slackware, RedHat, Gentoo), Apple Mac OS X , AIX 4 & 5, *BSD, and Solaris 8 Unix machines. I have been using and maintaining Unix systems for 8 years, primarily Linux machines, on occasions using OpenMosix clustering environments, and IBM's Enterprise Volume Management System.
Experience with all versions of Microsoft Windows.
Databases: Oracle 8, DB2 v7.x, PostgreSQL. I can install, configure, and maintain these RDMS products. I am proficient in SQL and database design and have experience interfacing with these databases through their GUI management tools, as well as being able to use lower-level tools, such as Oracle's "sqlplus" and PostgreSQL's "psql". I am also familiar with the "on-disk" layouts of these databases for tuning and maintenance purposes. PostgreSQL is my "primary" database, which I have three years of experience with, and have developed Java and PHP applications to use PostgreSQL. I have one year of DB2 and Oracle experience, and have used Java and shell scripting to interact with them.
Application Servers: WebSphere AppServer, Apache+Tomcat. I have used both of these products as Servlet and Java Server Page (JSP) containers and am familiar with installation, configuration, and maintenance of these servers.
Virtualization systems: VMWare GSX in both server consolidation and terminal-services roles.
Learning Systems: Blackboard Learning System 6.x Enterprise + Portal (aka Community)