• This is a portfolio of software products I've designed and created as personal or business projects. For projects and work done for employers, please refer instead to my resume.


2011 - present

ChapterLab is a next-generation word processing tool with innovative features targeted at non-fiction authors, technical writers, academics, and other authors of long and complex documents.

The application offers conceptual modelling, coherence checking, project planning, to-do list management, bibliographic references management, and rich word processing features in a tightly integrated environment.

Mac OS X and Windows editions are now available in the Early Adopter Beta phase. Download the app and check out the product demo and tutorial videos at www.chapterlab.com.

Technologies: Java, Eclipse RCP, HTML/CSS, PHP + MySQL + PayPal integration for order processing, NSIS

Java with Intentions

2011 - 2012

Design Intention Driven Programming is a novel software development approach that I proposed and developed as part of my MSc thesis. This tool-supported methodology aims to reduce long-term maintenance costs in large-scale software projects. It features the recording of design intentions and rationale via object-oriented documentation constructs embedded directly in software source code, and provides mechanisms for enforcing adherence to documentation policies. The scheme is particularly suitable for documenting instances of design patterns.

As a proof-of-concept of the approach, I designed an extension to the grammar of Java 5, called Java with Intentions, and implemented a prototype of a language pre-processor.

Technologies: Java, ANTLR v3


2006 - 2008

ReadyBASIC is a web-based BASIC interpreter, intended for teaching programming to beginners. It supports both traditional BASIC programs with line numbers, as well as structured programs without line numbers.

Note: ReadyBASIC is implemented a Java applet and, unfortunately, it is increasingly difficult to find a browser that will let you run Java applets due to potential security exploits.


2001 - 2005

Roarcore is a .MOD music player (and in 2001, to the best of my knowledge, the very first .MOD player written in Java without using system-dependent libraries, arguably making it the first platform-independent .MOD player). It employs digital synthesis techniques to play realistic music from very compact song files using sampled instrument data. It can run as a desktop application or embedded in a webpage.

Note: The web-embeddable version of Roarcore will no longer run in recent browsers that block Java applets, but you should still be able to run the desktop versions using either the Java Web Start launcher or by downloading the Windows executable.

Language Navigator

2001 - 2002

Proof-of-concept for a database-driven, wiki-like foreign language dictionary and language-learning website.

Technologies: PHP, HTML, MySQL, Apache.

Hunt the Wumpus 2001


Two-player networked version of the Hunt the Wumpus game from the TI-99/4A microcomputer. Unpublished but demo-ready.

Technologies: Java, javax.net, Swing

Galiano 3D

2000 - 2001

Java-based 3D polygon graphics engine built using Java and Swing. Features include double-buffered animation, polygon filling, and Z-buffering. Unpublished.

Comprenica Vocabulary Trainer

2000 - 2001

Java desktop flashcard application for foreign language learning using spaced repetition for optimal memorization. Unpublished.

Vocellis/Digital 3


.MOD music player and C/C++ digital music libraries for MS-DOS, with background audio (multitasking) capabilities. Unpublished.

Technologies: Turbo C++, 80x86 Assembler

Meteor Strike


Simple arcade game in MS-DOS with background AdLib music. Unpublished but complete.

Technologies: Turbo C++, inline 80x86 assembler



Yamaha-OPL2 FM (frequency modulation) music library for C. Includes a background music-playing capability using a form of interrupt-driven multitasking under MS-DOS. Supports the AdLib and SoundBlaster sound cards.

Technologies: Turbo C++, inline 80x86 assembler



Font library for C, and font editor, supporting bitmapped, color-indexed, proportional fonts. Includes a fully-functional font and sprite editor with a hand-coded GUI.

Bravado VGA Graphics Library


Mode-X VGA graphics library, written as C and 80x86 assembler code linkable with Turbo C++ programs. This was used in my subsequent MS-DOS game and graphics projects and formed the basis for the Atrevida Game Programming Tutorials.

Navigate the Asteroid Belt


Simple arcade game.

Technologies: QuickBASIC 4.5


1993 - 1994

Paint program.

Technologies: QuickBASIC 4.5