Hello, I'm Mika. I'm a software & full-stack developer currently working in Berlin as an Integrations Engineer at Crate.IO. I have professional experience developing in Java & Visual Basic .NET, as well as working with databases via SQL and PL/SQL. I also professionally design and develop websites with HTML5/CSS3, Javascript and jQuery. In my free time I develop with Python, C#, Haskell and Processing – as well as electronics prototyping with the Arduino platform.

My personal academic interests in computing are focused on nonlinear dynamics, distributed & software defined networking, information theory and complexity & emergent behaviours. Relatedly, I study both the technological and social aspects of security, encryption, anonymity and privacy and their implementation in web based communications. I am also concerned with social and historical topics within computing, such as as the development of encryption/cryptography, the origins of personal computing and the role of technology in labour dynamics.

I'm also enthusiastic about mathematics, physics and baking bread.


A single page app built out of frustration with the lack of functionality and bad aesthetics of other online timers. Allows multiple timers at once, for more complex cooking tasks. Each timer is customisable so that differentation between them is easy. Hosted at multitimer.io and the code is available on Github.

HTML5/CSS3, Javascript, jQuery


A web game based on bad cyberpunk movies and the Warioware games. Built using the desktop and mobile HTML5 game framework Phaser. It can be played on itch.io and the code is available on Github.

Mainframe was featured on RockPaperShotgun's best free games of the week and Geek Squad's top free games of March 2016.

Javascript, Phaser, Game Design


A website built with Python, using the Flask microframework. The aim of Museumzeit is to display, at a glance, the opening hours of museums/art galleries of interest in a given city. Still under development. Hosted on Heroku and the code is available on Github.

Python, Flask, SQL, HTML5/CSS3, jQuery


A custom minimalist 2 column mobile-friendly wordpress theme, with emerald green accents and an owl. Emphasis on using spacing and typography to present large bodies of text. Degrades gracefully on mobile resolutions so that the right hand column becomes a collapsed accordian menu at the bottom of the page. Developed for Notes & Commentaries and the theme is available on Github.

HTML5/CSS3, Wordpress Theme Development, Responsive Design, jQuery, PHP

Twitter Background Replacer

At some point in 2015, Twitter removed the feature that lets users set a background image or colour for their main timeline view and replaced it with a solid bright grey. I felt like it was a poor decision from a usability point of view - the bright colour hurt my eyes and didn't provide enough of a contrast with the content around it.

In response, I wrote a chrome extension to allow me to add a background image back into the CSS of the page. It was originally for personal use but grew fairly popular, so I have endevoured to maintain and improve it by adding in user-friendly settings, tiling and solid colour backgrounds. I also improved the extension so that it used Chrome's localStorage API to store the base64 representation of a chosen image which was then injected into the Twitter homepage CSS - in order not to violate Twitter's content security policy.

It has been linked to in The Guardian, iDigitalTimes, VentureBeat, Gizmodo, and Lifehacker - among other places.

The extension is availiable on the Chrome Store and the source code is availiable on Github.

Javascript, Chrome Extension Development


DISC (Distributed and Secure Communications) was my final year project for my BSc Software Engineering degree. It came about through the intersection of my studies on security, anonymity and peer-to-peer communication.

DISC allowed users to set up peer-to-peer text-based communication networks, encrypted end-to-end and transmitted through the I2P anonymisation network, using I2P's Java Sockets API. Encryption of messages was done between nodes using public key cryptography and Diffie-Hellman key exchange. Encrypted messages were propagated through a DISC network via an encryption layering system inspired by Tor's onion routing scheme.

The development process took place over my final year of University and involved large amounts of self-directed research, planning, prototyping and testing. This also involved writing up a large and detailed report about each of these processes. The final grade for this project was 85% (Grade A).

Since it was a major University project, I cannot make the code or the report open source, though it can be shared on request.

Java, Encryption, Peer-to-Peer Communication, Prototyping-based Software Development

Web Development

Slimgiltsoul - A clean, two size grid-based artist portfolio site with a few jQuery flourishes.
Build a Pomodoro Clock - A tool to to facilitate the Pomodoro technique of time management where work is broken down into intervals, separated by breaks, of customisable lengths.
Build a JavaScript Calculator - A javascript calculator that allows you to chain addition, subtraction, division and multiplaction operations, as well as clear the screen.
Use the Twitchtv JSON API - An app that, given a list of Twitch usernames, displays details about whether they are streaming, offline or closed. Also allows the user to filter the channels based on their status.
Build a Wikipedia Viewer - An app that uses the Wikipedia API to search wikipedia and display the results. Also includes a bonus random page button.
Show the Local Weather - A small app that uses OpenWeatherMap and the HTML5 Geolocation API to show the local weather and temperature with details changing based on weather conditions and the time of day.
Build a Random Quote Machine - An app that uses the Forismatic quote API to generate a random famous quote, as well as some fancy background colour shifting.
Build a Tribute Page - A tribute page to Albert Einstein, the father of modern physics.

Crystalliser Bot

This project started out as a small experiment with pixel colour manipulation in Processing. I found that by averaging the pixel colour in triangular sections across an image, I could produce a simple but interesting looking pixelisation. The result looked a little crystalline.

I then rewrote this experiment from Processing (which is Java based) to Python, and integrated it with the Twitter API using the Tweepy library. The script retrieves all tweets sent to the bot (since a given ID) and goes through each tweet. If the tweet contains an image, it is used as the scripts input and the result is sent back to the original tweeter. This script runs at set intervals as a cron job on my Raspberry Pi.

The code for this project is availiable on Github.

Processing, Python, Image Manipulation, Twitter API

Bug Generator

Bug Generator is a Processing sketch that I made to generate interesting patterns for backgrounds. It uses perlin noise for x and y values and mirrors these horizontally. The semi-transparent segments that are drawn with each perlin noise step look vaguely insect-like, hence the name.

I also created a variant of this project that allows for the loading of a music file. It uses the same perlin noise based positoning, but also pulses the background based on beat detection and sets the radius of the segments based on the maximum value in the player's mix buffer. Here is a video example of it working:

The code for both sketches is availiable on Github. You can play with it here.

Java, Processing, Audio Visualisation

Miscellaneous Projects

Here are some smaller, miscellaneous projects:

I'm currently interested in collaborating with cool and welcoming open-source pojrects. Feel free to contact me.

Email Github Twitter Itch.io