My Projects

Algorithms and Data Structures

So far I have manged to implement the following:

I have written several artificial intelligence algorithms – mostly in Java and Python – ranging from game bots to artificial neural networks.
Java,
Python,
AI,
Algorithms,

A set of javascript implementations of different types of BTrees - regular BTrees, B+Trees, as well as persistent versions of these. It was developed as a part of my research project in distributed end-to-end encrypted databases.

The code includes comprehensive random tests, which validates the algorithms I implemented.

Algorithms,
Data Structures,
Random testing,
JavaScript,
Games

I was always interested in creating video games - mostly 2D side-scrolling platformers. My favorite tools for that purpose are Box2D (or its C# port Farseer), XNA, and MonoGame.

KidEngine is a 2D side-scrolling platformer game engine, designed to deliver enormous open worlds. Engine's algorithms analyze which parts of the world are needed at the given point in time, and allocate and release resources on the fly delivering a continuous experience.

C#,
XNA,
Box2D/Farseer,
Windows Forms,
Map projections

As a software developer for Polaris Association, I needed to create software capable of producing a template for a globe of a diameter of 7 meters. The following software was created for that purpose:

Program projecting world maps from one projection to another. It has become a popular choice for creating globe models, and served to create over 5000 projections so far.

It runs entirely in a browser, using JavaScript and WebGL for instantaneous rendering. The most interesting parts of the project was enabling custom projections and thus dynamically building shaders for WebGL.

JavaScript,
WebGL,
Map Projections,
The original program written in C# and .NET used to create globes. It takes as an input an image in Equirectangular projection and outputs an image in a sinusoidal intercepted projection.
C#,
Map Projections,
Research

So far, I participated in the following research projects:

During the summer of 2016 I have collaborated with prof. Benjamin Ylvisaker on implementing a secure, distributed, end-to-end encrypted database. I have designed and implemented a protocol which lets members of a team maintain consistent copies of the same database in their cloud accounts. In order to do that we applied ideas from BitCoin's block chain which is a globally distributed database.

Software security,
JavaScript,
Distributed Systems,
End-to-end encryption,
Web Applications

One of my favorite types of programs are web applications - websites, RESTful services, etc. I like to build them mostly because of the ability to perfect my software design as well as work on computer security. Most of my project in this section feature a powerful security system, as well as expose a clean and simple interface.

A website created for Dark Sky Poland - organization tyring to preserve dark skies in Poland. It includes a modified Joomla template, as well as few javascript additions, such as the changing background.
Joomla,
CSS,
HTML,
JavaScript,
MashUp is a RESTful web service written in Python, which merges your cloud storage accounts into one under one file system - at this point Dropbox and OneDrive are supported. Also, it features a powerful security system. Currently, a Python client is available which mimics bash for using the file system.
RESTful,
Python,
Cloud Storage,
OneDrive,
Dropbox,
Software Security,
A website created for a Polish national contest organized by AGH University of Science and Technology, and awarded 2nd place. It shows the mathematics behind map projections, and how to derive some of them. It also includes the first, development version of Globus Map Projector.
Map Projections,
HTML,
JavaScript,
CSS,

Project created for the Colorado College, which allows workers to track their hours, bid for shifts at the beginning of each time sheet period, or give up and cover other people's shifts. It also has a notification system, and integration with Ellucian Banner as well as secure way of checking in for shifts and confirming one's presence will be delivered soon.

Project is written using PHP, JavaScript and MySQL. The most interesting challenges in this project included:

  • creating an algorithm which notifies users about their upcoming shifts - all of it executed within a cron job
  • creating the user management system including hashing passwords as well as using registration tokens
PHP,
JavaScript,
MySQL,
Software security,
Java,