Portfolio of Projects

The following collection of projects are some of the larger projects that I have worked on in recent years. I haven't included the dozens of other smaller projects I've completed, or miscellaneous work such as maintenance on legacy systems and so on.


Interactive Diagramming Application Toolkit

RappidJS is a collection of UI plugins that extend the functionality of the open source JointJS diagramming library.

Mindjet Cloud

Single sign-on, third-party service integrations, and support for multiple client applications.

Single sign-on for users of both a web and desktop client application.

The server application was developed on Node.js using the Express web framework. Auth0 is used for storing and managing users, and Box is used for storing and synchronizing user files.

Once authenticated users can browse, manage, and view their mind maps.

Programming Meetup

A meetup group I started in February 2016 to help others learn programming while building a network of smart, driven people in Prague.

We meet every Monday evening at Paralelni Polis in Prague.

eReader Web Application

Web-based eReader application for university-level text books.

Web-based, mobile-friendly HTML+CSS eReader application.

I worked closely with the folks at Collegiate Learning to design, develop, and deploy this eReader application. I used the Backbone.js JavaScript framework on the client-side with CodeIgniter on the server-side. The e-books are protected by a pay-wall, with a preview available for free.

Full-text search powered by Apache Solr.

All the e-books are fully searchable, allow bookmarks, include a table of contents, and are resizable even for mobile devices.


Migration of existing content, full-text search solution, third-party service integrations.

Existing content from multiple different sources had to be migrated to a new system.

Full-text search of both private and public content from multiple sources, powered by Apache Solr.


A web-based poker game which uses cryptocurrencies such as Bitcoin.

Complex user interface (with HTML5 audio) and real-time data.

Accounting in multiple cryptocurrencies, including Bitcoin.

Multi-dimensional interface with real-time interaction between players.

Last updated on