iPatrol Technology (Hong Kong startup)

key4two website

Development and tech lead of an end-to-end encrypted online file sharing application with a secure USB token and an HTML5 user interface (by integrating the Chrome browser).

Development and tech lead of an on-site encrypted backup device (NAS) for households and small businesses. Used public-key cryptography and stored the private key for recovery on offline USB device for a higher level of security. The system includes a desktop and mobile (iOS, Android) client as well as a server (Java).

Development of high-volume email SMTP gateway with auto-encryption into a PDF or HTML5 container.

Python, REST services, Applied Cryptography, HTML5, Java, Android, C++

MoNET (employment at Espace)

Espace Morava

Espace develops a generic information system framework called MoNET which allows to create complete database applications with web, desktop or Android interface in just a few days. Thanks to a rich declaration language, most of the tasks in building an IS can be automated using the user provided metadata.

During my employment at Espace, I contributed in various areas, in the MoNET core, Windows GUI, Web interface, build infrastructure and also built a smart pointer library for a more modern experience when working with COM in C++.

C++, COM, Python, VB6, .NET, Javascript, WinAPI

Matasano Crypto Challenge

The Matasano crypto challenge homepage

We depend on modern cryptography every day to protect our digital assets and yet a single mistake in how exactly crypto is used can break everything, exposing secrets and giving unwanted access. This set of tasks created by a respectable security company allows developers to experience mistakes in crypto and their consequences first hand.

Implementing a chosen-plaintext attack against AES ECB and revealing a hidden message is both fun and enlightening. This is also my first use of F# for more than just a few lines.

Warning! spoilers ahead!  my solution code

F#, Applied Cryptography

Unlock Spanish


Spanish Language learning tool developed as a freelance job.

Flex, ActionScript3

Counterexample explanation in DiVinE model-checker (master's thesis)

Implemented an algorithm for counterexample explanation in the parallel model checker DiVinE.

DiVinE 2 is a parallel/distributed model checker developed at the Faculty of Informatics, Masaryk University. The code relies heavily on advanced C++ features such as templates or RAII. In my thesis, I implemented and evaluated the algorithm described in this paper. The code sample constitutes the main part of my implementation and is written in a style similar to DiVinE 2.

C++ with templates, parallel graph algorithms

Třesky Plesky

BitBucket repository

An experimental social entertainment app written in Clojure, running on Google App Engine. Czech language only.

Clojure, Java, Facebook, Google App Engine

Parallel Crowd Simulation (school project)

Part of the PA177 High Performance Computing lecture was a project to write a distributed algorithm. I implemented a crowd simulation system which employed self-adjusting regions so that the average load of every computer remained the same and none would starve. Unfortunately, it turned out that this implementation does not speed the computation up, probably because it used a global barrier and the amount of work in each step was too small.

C++, MPI, Boost

foo_title (open source)


Skinnable compact user interface for foobar2000. More than 20.000 downloads worldwide.

C#, C++/CLI

UFO: Extraterrestrials (first employment)


Commercial turn-based strategy game with RPG elements where the player must counter an alien invasion by leading a small team of tough soldiers.

I was involved in developing the input, I/O, sound, GUI subsystems and a large part of the game code such as character movement, inventory and item management, ...

C++ and a proprietary scripting language DirectInput, DirectMusic


My BitBucket repositories

My Github repositories

overlog, a Python logging/debugging tool

Most of my personal projects are found on BitBucket because I first started to use Mercurial rather than Git.


Please download my CV as a PDF or visit LinkedIn. If you are interested how was I doing at university, see my Diploma Supplement.

Hobbies (selection)

Mountain trekking