Web

JavaScript
PHP
HTML5
CSS
(My)SQL

Misc

AngularJS
Laravel
TYPO3
C#
Perl

About Me

Logical. Pragmatic. Self-taught. Media-Enthusiast.

These are the words to describe myself first and foremost.
My passion for software development was born when I was still in school and didn't want to do homework. Adolescent me strolling through old magazines and doing an HTML tutorial for the sake of it instead.

Over the course of roughly 2 years after that I taught myself a wide range of different programming/markup languages. Learning what is available. Trying to understand how things work. Trying to find my own spot.

Starting with HTML, going over to CSS. Using all summer on understanding how JavaScript works in a bug riddled IE at a time I didn't even have internet at home. Shortly QBasic, just to switch to the challenge of C/C++ after winning a coupon for a book about it. Afterwards Perl and ultimately PHP.

My career path was set with that one magazine the moment I picked it up.

Fast forward a few too many years, an uneventful Computer Science study where I got bored learning Java and made the decision to focus on a few core skills to master. These days I see my expertise in and around JavaScript and PHP, with a lot of other valuable skills in my toolbox, including a strong crush on C#.

My passion for creating useful and cool things - ideally making the life of others better or easier - is bigger than it was ever before. Be it a small script enriching your experience in a messenger like MSN, or an international website with countless visitors using features I have (co-)developed.

Projects

Anime Stat(istic)s

This project started initially as a little weekend occupation. A form of a feasibility study, inspired by a comment in an anime related forum. The prototype worked so well, it ended up being more than just that ever since the Fall season 2012.

What it does

It collects the statistics of currently airing anime and displays graphs for it.
The result is an interesting impression on how anime get perceived over time. How the opinion changes while the story (not) progresses and so on.
It is possible to derive even more information just by looking at those graphs. As data source three different anime related websites are used: MyAnimeList (biggest western website), AniList and HummingBird.

7 years, ~55 anime per season, over 200 per year

These days Anime Stats attracts users from around the world and supports them in discussing and discovering anime while generating thousands of page views each month.
HTML5
CSS
AngularJS
JavaScript
jQuery
Laravel
SQL

Gajo

How often do you look forward on a new CD, or book, or movie but forget it at some point anyway? I am no stranger to that, so this project was born.

What it does

It's basically a list of upcoming releases. The categories are entirely customizeable and the list has options for each entry to be displayed when logged in only (red eyes hint at publicly viewable). Strict privacy options are on by default, so you can use this even if you do not want to expose your list content to the public. This includes an option for a complete private profile.
Usually a one-user application, it does support multiple users and limits of amounts of users.

Oldie

Technically, this is one of the oldest personal projects I did and it got a lot of do-overs over the last 15 years. But this time, it should be good enough, to leave as is and just improve upon.
This particular do-over uses plain JavaScript, Axios for AJAX and Bulma for CSS, nothing else. It's a minimalistic approach.
HTML5
CSS
JavaScript
Laravel
SQL
Github

Remote-SSH

When you create websites on a Windows machine, what's the most annoying thing to do on a daily basis? Right, connecting to your servers via SSH. Using Atom and the remote-sftp package makes working on remote servers easy. But it doesn't help you much when you use git and you need to ssh into the server to commit/push/pull.

What it does

When you use remote-sftp or similar packages in your Atom, you most likely have a .ftpconfig lying around in your project folder, with all the necessary credentials for the server. That gave me the idea to create this package to automatically read that config and start Putty with it when hitting a specific shortcut. Ultimately eliminating any need for you manually looking for any kind of credentials.
But why stop there? Why not add in support for a project search, looking into all .ftpconfigs and provide an inline search. That way you can search for any SSH connection from any open project inside Atom and start a Putty instance.

It doesn't always need to be the biggest thing

...to make a significant change in your life. I know Remote-SSH makes mine a lot easier while developing inside Atom and don't wanna miss it anymore.
JavaScript
CSS
Github

Raffi

Some projects are started out of boredom, others out of need. This one was born out of curiosity. Initially I wanted to take a look at how to automatically get the current departure times of public transportation near the office for a potential new dashboard (and to learn React).

What it does

In some bigger cities you can rent bikes. To my surprise the locations of the bikes of the biggest public transportation in Cologne ("KVB") are open data. At least of those not currently in use and bikes re-appear in that data when not in use anymore. Well, enough to make safe assumptions.
Raffi takes a look every 10 minutes where the bikes are located and displays them on a map. You can also look at specific bikes and their travelled route.

Work in Progress

This is a rather fresh project and still work in progress but has many features available but polishing up is still in order. Later on, this will be released as open source.
In the meantime: test:test2018
HTML5
AngularJS
JavaScript
CSS
Laravel
SQL

CodeBasket

If you are a developer yourself you probably had this piece of code lying around. A piece of code you developed to fix a specific issue but it never ended up being used in production.
Over the years there are so many of these pieces piling up.

Starting point

...was finding some old piece of code that creates HTML tables on the fly.
Nothing groundbreaking, but a pretty important piece of code for Anime-Stats v1 working pretty solid. It coincided with the desire to get back into more plain JavaScript. So this project was started for anything that is plain JS with new(est) ECMAScript features.

The basket for your code

Sometimes that code is too good to be deleted. It can be an inspiration for a better solution next time. Contribute to a learning curve, or simply act as a form of archive or fun thing to experiment with. Hence this project was created. It acts as a metaphorical basket for code that's too good to catch digital dust.

HTML5
JavaScript
CSS
Laravel
SQL

Archive

TalkReflection

During my Computer Science studies I was part of an EU-wide project called "MIRROR" that ran from 2010 to 2014.
Narrowed down, the idea of the project was "learning by reflection". Within a study project alongside three colleagues we created an Android App called "TalkReflect". The purpose of the App is to exchange experiences with difficult cases in healthcare and the possibility to provide feedback to others.

Development

My main task was the documentation of the code as well as the core mechanism of communication between the central server and the app, including sending and receiving data through a REST-API.
Due to my previous knowledge of programming, my role was Leaddeveloper, delegating tasks to my colleagues.

After the project

Since that App was supposed to be actually used, I got the opportunity to improve it beyond the project deadline and was able to add new features to it in the process. The app itself was showcased on the Google playstore.

Since the MIRROR project was only funded until 2014 the app was removed from the Playstore eventually some time after.
Android
Java

Tracky

Over many years and due to my general interest of media and APIs, I came across countless APIs to work with. Yet, not a single one was as profound, easy and extensive as that of trakt.tv in version 1.

Trakt?

Trakt.tv is a website to collect, rate, like, comment on movies and series you watch/watched or would like to watch. It has a personalized TV schedule and recommendations. With this project I wanted to create a Desktop version of the website, to be able to do all of the above on your Desktop, without logging into the website.

Challenging yourself

Previously for a long time I had done a lot of webdev stuff and wanted some fresh air. Do something else for a change, so I decided on something practicable. There was this website I logged in on a daily basis, had a great API, what else? Programming language? Let's try C# for something serious, where I really had to dig in and learn a lot. Well, born was Tracky.
There was a minimal SPA website to accompany this, to enable an auto-update feature.

Sadly, APIv2 was rushed a year later, breaking v1, never being able to hold up to the greatness that v1 was. Many features lack to this very day or are so freakishly complicated now, that it's time to put Tracky to rest.
C#
PHP

Some other things I developed

  • A music scrobbler Desktop App in C#, for a last.fm clone project that is in the working since forever.
    Simply enter an API endpoint and it sends the currently played song in foobar2000 to that endpoint in a specific JSON format.
  • When learning C/C++ I wrote a CLI helper to compile projects. Long before there was Visual Studio available for me. It read an ini file where you'd enter your folders for src, dest, custom libs etc. Included support for some settings like color for output, prefixes for DLLs, or Windows apps, whether to delete obj files, etc. But it won't stop there, it remembered the last 5 compiled projects as well.
    That way you could enter numbers to compile those instead of the name/path. After compiling it waited for a keystroke to recompile.
    Saved me an insane amount of time.
  • A C/C++ TrayIcon program mimicking the Windows start menu. Configured by ini file, supporting sections and submenus.
    Windows XP - while a great OS - and earlier had a terribly slow StartMenu response time and it annoyed me greatly. Accompanied me for nearly 10 years on a daily basis and was/still is a brilliant tool. Until Windows 7 came out and I got a better PC, rendering that tool rather useless over time.
  • Utilizing the Google+ API for public posts, turning any profile's stream of public posts into an RSS feed. Complete with number of likes, comments, embedded media, etc.
  • An online TV schedule parser for MSN Plus. MSN Plus was an unofficial patcher for MSN Messenger, enabling JavaScript/ActiveX plugins.
    That parser was once for some noteworthy time the third best rated plugin there is, even though it was for German users only.
  • A node.js downloader with queues and priorities, start/stop for two One-Click hosters on a RaspberryPi.
  • Some rather simple Lua scripts for Minecraft turtles. Including a simpler download script using a Raspberry Pi as central hub/"repository" for scripts. So instead of complicated downloading a script from the internet I needed only that hub script and could do install some-script-on-rpi and it does the rest.
  • A Caesar cipher in QuickBasic that I programmed literally through a night on my summer holidays when learning QB. QuickBasic has the best documentation I have ever seen to date. Inline, clickable keywords, working examples. Tons of fun to be had.