Frederick Gnodtke
Software Developer

Ellerbruch 18 / 21614 Buxtehude

+491575 - 16 64 128

About Me

I am a passionate software developer. Ever since I've had access to technologies – be it software or circuit boards – I've loved tinkering with it, tearing it apart and figuring out how it works.

I love every aspect of software development: writing tests to get those last 2% out of my coverage, tracking down that nasty bug, writing documentation in order to introduce others to my work, learning new technologies and of course seeing newly implemented features running for the first time.

In my freetime I like working on personal projects together with others featuring interesting libraries or frameworks and challenging me in new ways. I am most passionate about game development which challenges my creativity in many different ways.

Thanks to continuously operating servers for many years I know much about the world of Linux and open source. Running mail servers, web sites and colaboration platforms on them has given me a solid foundation in providing stable and reliable services. For easy deployment to the cloud I am familiar with Docker, for instrumenting servers I tend to use Ansible.

In my three years of work and study at the RWTH Aachen and the FH Aachen I acquired well-founded knowledge in high performance computing on super computers, experimental hardware and modern embedded and desktop systems.

Writing open source software for years I am familiar with collaborating with other software developers using version control systems like git or SVN. I am also used to agile methodologies like Scrum or Test Driven Development and techniques like continuous integration.


Spoken Languages: German (native tongue), English (fluid)

Programming Languages: Rust, C/C++, Java, Javascript, Typescript, Python, SQL, Cypher, PHP, Kotlin

Popular Frameworks: Node.js, Express, Boost, Redux, React, Android, Flask, QT

Other Technologies: OpenMP, MPI, OpenCL, OpenGL, Neo4J

Markup Languages: HTML5, Modern CSS, Less

Version Control Systems: Git, SVN

I consider myself capable of acquiring new skills fast, be it new programming languages, frameworks or tools. I am also used to teaching others my knowledge by giving presentations, guiding them individually or writing tutorials.

By writing clean and well-documented code and keeping a tidy version history I produce easy to read and easy to maintain code.

I am familiar with creating sufficiently abstracted and modular software in object-oriented programming languages as well as writing highly optimized and paralellized codes in languages like C or Fortran. And equally important: I am able to distinguish which of both is neccessary in any given situation.


Born (1993-11-15)

I was born in Stade, Germany.

High School (2008-09-30 - 2012-07-07)

I visited the Halepaghen-Schule in Buxtehude and received my Abitur (German general qualification for university entrance).

University (2012-09-01 - 2015-11-09)

After three years of studies I finished my bachelor degree in Scientific Programming at the FH Aachen (University of Applied Sciences).

I wrote my bachelor thesis about the evaluation of high-level programming models on the experimental hardware "Keystone II" by Texas Instruments in cooperation with the department for High Performance Computing at the RWTH Aachen.


Freelance Developer (2017-02-18 - now)

Since quitting my job at SinnerSchrader I had the chance to work at many interesting and challenging projects from all over the world.

Developer at SinnerSchrader (2016-02-01 - 2017-02-17)

While working as a developer at SinnerSchrader I learned how to work in teams of >50 people and acquired many skills with modern Frontend technologies as well as knowledge about agile methodologies.

German Vocational Training (2012-09-01 - 2015-08-24)

Together with my studies at the FH Aachen (University of Applied Sciences) I finished my vocational training as a Mathematical and Technical Software Developer at the department for High Performance Computing at the RWTH Aachen in Germany.

Internship at Vattenfall Europe Information Services GmbH (2012)

During my internship at Vattenfall Europe Information Services GmbH I was able to get valuable insights on working at a datacenter.


Most contracts for my professional work contain an NDA, so the following is a list of older and newer personal projects which I develop and maintain in my freetime.

Chunked Uploader

A library written in Typescript which can be used to upload huge files (even hundrets of Gigabytes) to any server. The library is abstract enough to be able to work with (probably) any backend implementation. It works by chunking the files using the HTML5 File Api without loading the whole file into the memory at once. It generates SHA1 checksums of the chunks and then transmits the list of chunks as well as the content to the backend. It can be used for resumable and fail-safe uploading.


A plugin for the python music player "mopidy" which adds support for using "subsonic" as a backend.


This is a small casual game written in pure Javascript utilizing HTML5 features such as canvas regions.


An online multiplayer version of the boardgame "Go" using websockets and a backend written in node.js.


This games is using WebGL to make use of 3D graphics in the browser.


A collaborative online version of the popular game "Crossword" written in pure Javascript and Java right after the release of the first browser supporting websockets using my own implementation of websockets for Java before any other library was available for this language.

Rick's Riddiculous Ritual Rumble

This game was created in 48 hours by a team of 5 during a coding contest using C++14. A web version is available compiled using Emscripten.


Using Leaflet this software provides an interactive map for the game "7 Days To Die" on which multiple people can create markers and see other players live.

Mumble Bot

With node.js, express, many bindings to native C/C++ libraries and node-mumble I created a bot for the communication platform "Mumble" able to record, store and play back audio from users, talk to the users using multiple text-to-speech modules and understand the users using Pocketsphinx for speech-recognition. The bot is controlled by voice commands or a webinterface in realtime.

Matse Börse

A collaboration and e-learning platform for exchanging knowledge, homework and old exams handcrafted in PHP for students of the Scientific Programming university course at the FH Aachen.

MPD Webinterface

A webinterface written in PHP able to control a music player daemon from the web.

Sharer 2

A service for storing files in the cloud and sharing them quickly.


Using UDP holepunching with WebRTC in the browser this software is capable of transmitting files between two browsers peer to peer.


As one of the first implementations ever this library provides websocket support for Java.


In this project I implemented the protocol of the software "Music Player Daemon" in order to be able to control it from node.js applications.


This is a node.js native binding to the speech-synthesis software ESpeak.


A native binding to the library "libsamplerate" providing a fast and reliable way of resampling audio in node.js in realtime.


Developed together with others this library provides a high-level API for creating bots for the communication platform Mumble. It utilizes many algorithms neccessary for realtime audio processing.


This is a node.js native binding for sending and receiving binary data from 433 Mhz transmitters and receivers.

Copyright © 2017 by Frederick Gnodtke