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

  • A number of currently in-progress projects are also highlighted on my GitHub profile.


2011 - 2013

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 was a fully-featured web-based BASIC interpreter, intended for teaching programming to beginners. It supported both traditional BASIC programs with line numbers, as well as structured programs without line numbers (similar to Visual Basic).

Note: ReadyBASIC was implemented a Java applet and applets are no longer supported, so the readybasic.com website is now offline. As a future hobby project, I may try to redevelop it in some other technology.


2001 - 2005

Roarcore was 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 was implemented as a Java applet, but applets are no longer supported. A desktop executable version for Windows was also created (and still works) but will probably give security warnings as the executable was generated before Windows implemented a signing mechanism. I have taken the website down for now, and as a future hobby project I may try to revitalize it.

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