Resume
Home What's New Photo Album Favorites Resume

 

Ron van Hoof
9 Moraine Rd
Edison, NJ 08820, USA
rvhoof@optonline.net

Availability:

Currently unavailable for project work, working full-time on NASA projects.


OBJECTIVE

Position as a Software Engineer developing object oriented Java based systems

WORK EXPERIENCE

11/98 - present

Software Engineer IV, QSS Group, Inc., NASA Ames Research Center, Moffet Field, CA, USA

Mobile Agents Project (7/02 – present)

Mobile Agents is a project to develop an open agent-based architecture to support exploration missions. It includes the development of a distributed wireless surface exploration support system supporting a crew and remote science teams for the planning and execution of extra-vehicular activities (EVA’s). The system supports EVA plan management and tracking, automated recording of science data, robot commanding, health monitoring, navigational support and system monitoring using a voice controlled interface.

As the development lead of the Brahms sub team consisting of four people responsible for planning and managing the development of the Brahms agents and Brahms interfaces to systems external to Brahms.

As the software architect responsible for the design of the mobile agents architecture, managing the design of the Brahms agents, the interaction of these agents with one another and of these agents with the various support and control systems such as GPS sensors, health sensors, robots, system hardware, etc. Started the design of a service oriented architecture using J2EE where the Brahms software agents use the J2EE services to ensure robust persistence of telemetry, science data and state and to allow us to develop a wide variety of user interfaces for different user communities to retrieve and analyze the captured data. 

As a software engineer responsible for the requirements analysis and definition for the mobile agents project. Responsible for maintaining the requirements specification throughout the project and responsible for tracking the implementation of the requirements throughout the development cycle. Also responsible for signing off on the requirements after the implementation, testing and integration of various mobile agents functions.

As a software engineer responsible for the development of Brahms agents as part of the mobile agents system that include plan tracking agents, navigation assistants, medical assistants, science data assistants, and system assistants, and that include Brahms interfaces that include interfaces between Brahms agents and GPS sensors, bio sensors for monitoring heart rate and blood oxygen levels, EVA robots to control movement and camera’s, a speech recognizer (Nuance) and speech synthesizer (SAPI5, FreeTTS). The agents were developed using the Brahms language. The interfaces were developed using Java (J2SE 5.0), depending on the interface type using Corba (JacORB), Java Messaging Service (JBoss), TCP/IP sockets, and Java Native Interface to communicate with Windows COM objects and the kernel API.

Successfully field tested mobile agents for 3 years (’03, ’04, ’05) at the Mars Desert Research Station in Hanksville, UT with 2 geologists, 2 EVA Robotic Assistants and a remote science team, at Meteor Crater, AZ (’05) with 2 astronauts in pressurized space suits and a Scout rover and at Ames’ Marscape (’05) with one ‘astronaut’ and a K9 and Gromit rover.

Brahms Project (11/98 – present)

Brahms is a multi-agent intelligent agent and simulation environment used for modeling, simulating and analyzing work practice. Brahms is a data driven (forward chaining) discrete event simulation environment with extensions for the real-time execution of intelligent agents. This project is a continuation of work performed at Bell Atlantic, now Verizon. This work is continued at NASA Ames Research Center first as a contractor for Caelum Research Corporation (11/98 – 7/00), now as a contractor for QSS Group, Inc (7/00 – present)

As the development lead of the Brahms project responsible for planning and managing the development of the Brahms agent environment. Responsible for the development of development guidelines and coding standards. Responsible for supporting the developers in understanding Brahms and the development of the Brahms components.

As the system architect responsible for designing the short and long term system architecture for the Brahms agent environment to include the specification of the various Brahms components and their interaction in stand-alone systems and distributed architectures.

As a software engineer responsible for maintaining and expanding the Brahms language and Brahms compiler to support new agent capabilities. Details of the current language specification can be found at http://www.agentisolutions.com. The Brahms compiler is implemented using byacc and Java J2SE 5.0. The compiler generates XML to represent the Brahms compiled code. Specified the Document Type Definition for the Brahms code and implemented the XML generator using Java J2SE 5.0. The generated XML is used as the ‘byte code’ input for the Brahms virtual machine.

As a software engineer responsible for the requirements analysis, object oriented design and implementation of the Brahms Virtual Machine. The Brahms Virtual Machine loads in Brahms models from XML and starts the simulation of the Brahms agents. The Brahms VM generates a reasoning state network similar to a RETE network but with extensions and enhancements for Brahms. The reasoning state network maintains the state of all the Brahms frames (activity rules) and conditions that can be matched by agent’s beliefs and/or world facts. The Brahms VM includes a discrete event manager to synchronize time and distribute events to the agents in case of a simulation. Added support to the Brahms VM for real-time execution of Brahms agents as software agents and added an open API to allow virtual machine services to be loaded, to allow for agent activities to be developed using Java and to allow for an interface for external agents to interact with Brahms agents. Added support for an agent directory service and to allow agents hosted in different virtual machines to communicate with eachother in a distributed environment without requiring the agent developer to change any Brahms code. The Brahms VM is implemented in Java using J2SE 5.0 and Sun’s XML parser.

As a software engineer responsible for porting the Brahms Agent Viewer graphical user interface application from Visual Basic to Java using Swing and migrating the underlying database from MS Access to MySQL 4.x developing the database interfaces using JDBC 2.x and SQL managing database creation and deletion, parsing of the history file generated by the Brahms virtual machine to the database using inserts and querying the database for displaying data using prepared statements.

As a software engineer responsible for developing a dockable window framework for the Brahms integrated development environment (IDE) using JDK 1.3 based on Swing components that allow users to organize their desktop windows in a way most productive to them. The dockable window framework emulates the behaviors found in Microsoft’s Visual Studio applications.

As a software engineer responsible for the development of the Brahms model builder prototype allowing model builders to create and browse Brahms models. The model builder is implemented using Java jdk 1.1.8 and Swing 1.1.1.

As a software engineer responsible for the requirements analysis, object oriented design and implementation of the Brahms virtual reality environment prototype that visualizes the activities performed by the agents in a Brahms simulation run in a three dimensional view. The virtual reality environment prototype is implemented using Java jdk 1.2, Swing 1.1.1 and Java 3D using VRML as the format in which the scene and scene elements are defined.

As a software engineer responsible for the requirements analysis, object oriented design and implementation of the Brahms Enterprise JavaBeans server prototype with support for stateless session beans but no transaction management implemented using Java jdk 1.1.8 and RMI. The server is to be used to host Brahms server side components written as EJBs. The EJB Server is based on the EJB specification V1.0. The EJB Server also includes a database service allowing for connectivity to multiple databases using connection pools. The database service uses JDBC to connect to databases.

As a software engineer responsible for the requirements analysis, object oriented design and implementation of the Brahms Messaging Service used to distribute events generated by Brahms virtual machines to Brahms components registered for those events. The Brahms Messaging Service complies to the Sun Java Messaging Service specification V1.0 and supports the publish/subscribe messaging component. The Brahms Messaging Service is integrated with the Brahms EJB Server and is a multi-threaded application implemented using Java jdk 1.1.8, RMI and JNDI.

6/95 - 11/98

Member of Technical Staff, Bell Atlantic IS, White Plains, NY, USA

Trouble Entry System Solution (TESS) Project (1/98 – 11/98)
TESS is a trouble entry client/server system used for trouble entry, tracking and reporting of telephony problems reported by large business customers. TESS has a four tier architecture with a Java based client, Java EJB based second tier using BEA Weblogic, a Bell Atlantic proprietary gateway to legacy systems on the third tier and the legacy trouble entry systems on the fourth tier

As a software engineer developed a proposal for the TESS project to replace the non Y2K compliant trouble entry system used for trouble entry, tracking and reporting for large business customers. Designed and implemented a prototype as a proof of concept for a web enabled trouble entry solution for use by Bell Atlantic’s customer service representatives. The prototype is implemented in Java using Swing as the user interface class library. For this application developed a Windows 98 look and feel, substituting the available Swing look and feels.

As a development lead responsible for the planning and managing of the development of the TESS client with a project team consisting of three developers, a technical writer and a subject matter expert. Also responsible for reporting and tracking issues and requirements with the customer.

As a software engineer together with the client team responsible for the requirements analysis for the entire TESS system as part of a contractual agreement with the customer, and the object oriented design, implementation and unit testing of the TESS client. The design is created using the unified modeling language (UML). The implementation is in Java using jdk 1.1.6 and Swing 1.0.2.

Project Compendium Project (12/97 – 3/98)
Project Compendium is a conversational modeling tool allowing for capturing discussions, notes, requirements, designs, issues and more between a team using a graphical representation linking questions, ideas and information. Project Compendium provides interfaces to MS Word and MS Excel for transparent display of discussion results and information in popular formats.

As a software engineer responsible for the design and implementation of an interface between Questmap (an existing conversational modeling tool) and a MS Access database with a graphical visualization interface on top of the application to verify imported data. The application is designed using UML and implemented using Java with Microsoft’s AFC and the JDBC-ODBC bridge. Started the design and implementation of a three tier client-server converational modeling tool with a web enabled interface using Swing and using RMI between the client and server. The work is continued by other developers due to the higher priority of the TESS project.

Customer Service Manager (CSM) Project (12/97)
The Customer Service Manager System allows for measuring and displaying of the performance of frame relay networks.

As a software engineer responsible for the design and implementation of a web enabled prototype to view statistical data, in the form of bar charts, about the performance of frame relay networks. The client is implemented using Java and a dbAnywhere middleware server is used as the interface to the database containing the captured performance data.

Brahms Project (6/95 – 12/97)
Brahms is a multi-agent intelligent agent and simulation environment used for modeling, simulating and analyzing work practice.

As a software engineer responsible for the design of the Brahms language (in BNF) for modeling activity based work processes and developing agent based applications. For this language designed and implemented an object oriented compiler. The design of the compiler was realized using the unified modeling language. The implementation was realized using Yacc and Java. The user interface was developed in Java using Microsoft’s AFC class library.

As a software engineer responsible for the design and implementation of extensions to the Brahms simulation engine for simulating work and social processes. The simulated work process models are defined using the Brahms language. UML is used for the design. The simulation engine is developed in G2 using it’s third generation language from Gensym.

3/95 to 6/95

Junior Knowledge Engineer, Bolesian Systems Europe B.V., Helmond, The Netherlands

As a knowledge engineer responsible for building interfaces between MS-Access, MS Word, and MS Excel for automatically generating quotations in five languages based on the result of a knowledge based configuration editor for the configuration of pumps. The interfaces are developed in Visual Basic for Applications.

12/94-3/95

Co-operator automation, Housing society Etten-Leur, Etten-Leur, the Netherlands

Periscope Project (12/94 – 3/95)
Periscope is a system allowing the housing society to manage information about houses owned and maintained by the housing society.

As a software engineer responsible for the design and implementation of a quality control system for the houses of the housing society providing reports about the state of the houses. The information systems used are the Informix RDBMS and Periscope. The implementation required writing SQL to retrieve the information for presentation in reports.

7/94-10/94

Knowledge Engineer, Work Systems Design Group, Bell Atlantic Science & Technology, White Plains, NY

Casedom Project (7/94 – 10/94)
Casedom is a computer aided software engineering tool allowing for modeling domain knowledge and generating a rule based system from the modeled domain knowledge.

As a knowledge engineer responsible for designing and building a CASE tool with automatic code generation for domain modeling. Domain modeling concerns data modeling and knowledge modeling for conventional as well as knowledge-based systems based on CommonKADS. For the requirements a language specification was created, for the design the technique OMT (Rumbaugh) was used and the implementation was realized in SNAP.

PATENTS

US Patent 6,216,098

 

W. J. Clancey, D.M. Torok, M. Sierhuis, R.J.J. van Hoof, and P. Sachs, "Simulating Work Behavior" in United States Patent Office. USA: Institute for Research on Learning and Bell Atlantic Network Services, Inc., April 2001.

EDUCATION

12/94

 

M.S., Knowledge Engineering, Center for Knowledge Technology, Utrecht, the Netherlands and University of Middlesex, London, England
7/93 B.S., Computer Science, Hogeschool West-Brabant, Etten-Leur, the Netherlands

COMPUTER SKILLS

Methodologies

CommonKADS, SDM (System Development Methodology developed by Cap Volmac), Yourdon Structured Analysis and Design

Techniques

Object Oriented Analysis and Design using UML (Use Case Analysis, OMT, STD, DFD, ERD)

Tools

Microsoft Visual Studio 6.0, Microsoft Frontpage, Microsoft Office, Microsoft Project, Select Enterprise, Symantec Visual Café, Borland JBuilder 2005, Eclipse 3.x, Gensym G2, CVS

Languages

AionDS, Assembler, C, C++, Demos, Eiffel, G2, HTML, Java, JavaScript, Lex&Yacc, Modula, Perl, Prolog, SNAP, SQL, TURBO Pascal, Visual Basic, XML, DTD

Java APIs

JDK 1.0.2-1.5.x, AWT, Swing, JDBC, JNDI, JNI, RMI, CORBA, J2EE, EJB 3,x Sockets, Threads, JMS, Java 3D, Javadoc, MS SAPI 5.x, FreeTTS, Nuance Speech System, GPS (NMEA)

Application Servers JBoss 4.x

Databases

Informix RDBMS, Oracle RDBMS 6.0 (Forms, Reportwriter, Embedded SQL), Unify RDBMS/ACCELL, MySQL 4.x, MS-Access

Operating Systems

Sun Solaris 2.x, MS-DOS/Windows 3.1/95/98/NT4/2000/XP, Linux RedHat/Fedora Core, Mac OS X