I started out as a game programmer at Bigpoint, where I was working on the inhouse tools before moving on to work on the backend code of an MMO. After leaving Bigpoint I spent several years working on an ambitious game project in a small team.
I have supervised, optimized, designed and implemented backend architectures and database solutions for teams ranging from small startups to large MMOs with millions of users and from versatile prototyping solutions to highly scalable and failsafe production systems.
I started teaching early on, first in traditional subjects like maths and physics for game developers and later in programming specific subjects like database or network programming. Today as the dean of engineering at the School4Games I still hold lectures on advanced topics like Game Programming Patterns and Structures and Algorithms.
As the dean of engineering at the School4Games I am supervising the curriculum of the programming students as well as part of the curriculum for the game development students. Due to the volatile nature of the subject the curriculum needs to be updated almost every semester by changing the means and goals of the lectures and projects.
Changes to the curriculum are based on feedback from the students and future employers, analysis of examn results and constant evaluation of libraries, languages and tools available for game development.
I have had the opportunity to work with several engines while studying and as a professional game programmer. Additionally I invested time in using different engines to be able to pick the right tool for a job and teach game development more efficiently.
I have worked with Ogre3D, the Havok Vision Engine, XNA / MonoGame, Bigpoint's inhouse engine Nebula 3, Unity, Unreal 4 and Godot and have evaluated other engines and frameworks like Cryengine, Lumberyard, Atomic Game Engine, Unigine, BabylonHx, CoronaSDK etc.
Professionally I have mostly worked with C++, C#, Java, php, SQL and Lua. As a teacher I additionally use Haxe and Godot's GDscript to simplify my lectures. Additionally I practice using other languages like F#, Haskell and others in order to improve my ability to explain different programming paradigms, patterns and techniques.
While most employers still enforce the use of more traditional technologies like MySQL I have successfully applied solutions ranging from established NoSql databases like MongoDB or CouchDB to modern multi-paradigm databases like OrientDB.
Due to the companies I have been working with being either from the games industry or small startups I was able to look into a variety of domains. While I was still studying I focused on graphics programming for a year, leading to results like this, this,this or this. Later I professionally developed C# desktop applications using Windows Forms and WPF, Java Servlets for use in Apache Tomcat and in personal projects did full stack development.