Download PDF

Jan Drabner

Freelance Full-Stack/Cross-Platform/DevOps Expert & Consulting

    Summary

    As a qualified Software Engineer / Programmer with over 15 years of experience, I can offer knowledge and proficiency in a large number of programming languages and software development topics, as well as bringing the different perspective of being a qualified Game Designer.

    I am open-minded and like to combine refining my existing skills with learning new ones and am definitely not afraid of touching new techniques that I do not yet have much experience with.

    My pet peeves are probably optimization (of both software and workflows), DevOps, software architecture as well as cross-platform development. But have a look at my skills yourself in the list below or on my VisualCV ( https://www.visualcv.com/jandrabner ) for a more detailed list.

    Of course, should you be interested or have any questions, feel free to contact me.

    Please note that I am available 4 days/week, and that I have a strong preference for remote work - though hybrid is possible depending on circumstances.

    Skills

    C/C++

    C/C++ is one of the main programming language I have been working with.

    By now I have worked on a great variety of projects using C++ on anything from library integration, backend & frontend development as well as game development.

    Python

    Python is one of my favourite languages to work with.
    Its enormous amount of functionality and libraries and ease of use make it the perfect tool to develop small to mid-sized tools to be used across projects.

    I have been using Python to some extend almost everywhere I have worked so far, from exporter plugins for 3D software (Blender/Maya) to analyzing tools or larger build scripts.

    JavaScript

    JavaScript is a language that can nowadays be encountered in many environments and is an important language to know for any generalist developer.
    From classic frontend development in pure JS over using it as a development language for embedded systems to Node.JS development, I've been working with it quite extensively in several projects.

    Other Languages

    To not expand this list unnecessarily, here is an assorted list of other languages I have worked with so far - some very extensively, others a bit less, but all of them are languages I would be comfortable in using again at any point:

    Lua, TypeScript, Java, SQL, C#, Rust, PHP, Flash/ActionScript/Air, bash scripts, Objective C, GDScript, Groovy, Asterisk ...

    Tools, Libraries & IDEs

    Since I started programming, I have worked with so many tools, libraries and IDEs that it wouldn't make sense to add each as an own skill.  

    IDEs:
    JetBrains suite (IDEA, Rider, etc.), Visual Studio 2008/10...Code etc., Qt Creator, MonoDevelop, Eclipse, FlashDevelop, NetBeans, Code::Blocks, Codelight, Light Table, Atom, Sublime Text, KDevelop, ...

    Libraries & Engines:
    Seed, Node.js, Electron, FFmpeg, Qt, Ogre 3D, AWS, Azure, Godot Engine, libnoise, Trinigy Vision, DirectX, OpenGL, OpenAL, Noesis GUI, CEGUI, recast/detour, Polyvox, MySQL, Flutter, Joomla, CakePHP, libccd, NodeJS, Jenkins, Docker, ...

    Tools:
    LibreOffice suite, Microsoft Office suite, PSPad, GIMP, Adobe Photoshop, ...

    Organization

    In many projects I have been part of I usually lead or organized a smaller team of maybe a handful of people.
    Discussing and setting workflows, setting up a task system the team is comfortable with, making sure to always have a  comprehensible implementation plan and of course making decisions some people shy away from.

    But even when working alone, I prefer to be well organized and able to give realistic estimations whenever possible.

    Optimization & DevOps

    One of my pet peeves is the optimization of processes - as well as knowing when not to waste time trying to optimize something.

    For one, this concerns deep issues within code that can be optimized by restructuring mostly (and sometimes, simply by using a different container), applying different patterns and analyzing performance using various tools.

    But it also concerns processes within the workflow of a company. Sometimes, a small change can make work far more pleasant for everyone involved - hence my interest and often involvement in DevOps-related tasks.


    Spoken Languages

    I am fluent in English and German.

    Additionally, I have basic knowledge of Finnish (~B1-2 level).

    Work History

    2013Now

    Freelancer & Consultant

    Jan Drabner

    Since 2013, I have been working as a freelancer and consultant on a wide range of projects from backend & frontend development to cross-platform porting, video encoding, game engine integration or data visualization.

    Some of these were under a more strict NDA however, so you won't find them on my profile. Sorry about that, but I hope that you will understand.

    August 2021October 2024

    Consultant

    Etteplan

    Working as a consultant for Etteplan and clients.

    Supporting Etteplan's and clients' software teams in a wide array of platforms and technologies from embedded development with C and Asterisk over 3D development, unit testing, message processing with ZMQ, etc. to browser back- & frontend-development with Python, JS and three.js.

    April 2023September 2024

    Consultant

    SMS Group

    (as part of an Etteplan group supporting Andritz software development)

    Using C++ and C# to help maintain & develop various code bases and parts of the HMI as well as the extensive backends, model calculations and reporting systems.

    February 2022March 2023

    Consultant

    Andritz

    (as part of an Etteplan group supporting Andritz software development)

    Doing backend- and frontend-development for HMIs, using for the most part Python (with a focus on Dash/Plotly) in combination with JavaScript and three.js.

    May 2016June 2021

    C++ / Qt / Video Encoding / Backend / Generalist Developer

    boom.tv

    Working with C++, Qt and various other libraries and languages to develop and improve our user software and video capturing / encoding, integration of Mixer/Twitch/YouTube streaming services, self-updater, automatic sending of crash dumps, and more.

    Development of backend services for Discord integration and tournament bots on our website via Python, NodeJS, CSS and other web stack technologies.

    Development of a Jenkins-based build server & pipelines utilizing Docker for various, very different repositories of the team.

    In addition, various R&D tasks concering continuous integration, crash logging, performance optimization, Electron development, etc.

    Aug 2015May 2016

    Backend Developer

    zipstrr GmbH

    Developing and extending the server API & media encoding using:

    • C++
    • Java
    • Python
    • FFmpeg
    • MySQL
    Apr 2013Feb 2016

    Lecturer

    School For Games

    Giving lectures about:

    • Programming Basics (data types, OO-Model, class design, ...)
    • Flash / ActionScript 3
    • Haxe / OpenFL / Stencyl
    • Frontend Development
    • Terrain Generation
    • Ogre 3D
    • C++
    Jul 2012Sep 2015

    MinGW Maintainer

    Ogre 3D, Open Source 3D Engine

    Joining the fantastic Ogre 3D team in July 2012, I fulfill the role of the MinGW maintainer.

    I am responsible for making sure that all recent version of Ogre3D can be compiled and used with the GCC compiler for Windows.

    I also support the team with other minor tasks, offer support on the official forums and regularly expand the Ogre wiki.

    Jun 2013Aug 2015

    Lecturer

    Games Academy

    Giving lectures about:

    • Mobile Application Development
    • Algorithms & Data Structures
    • Haxe + Lime + OpenFL
    • Code Review
    Jul 2011May 2013

    Technical Director Flash & Engine

    zoobe message entertainment

    Using C/C++, a 3D Engine and the FFmpeg library, I created and maintain a server-side application that efficiently renders 3D scenes with animated backgrounds, intro and outro into a distributable video file.

    Using Flash and ActionScript 3.0, I created:

    • A client application that users use to select characters, record their voice (or use text-to-speech) and of course view the video created by the server-side application
    • A video player
    • Several technology and feasability studies including RTMP, RTMFP, Adobe AIR, live voice pitching, live video creation, etc.
    • Mobile & Desktop applications with Adobe AIR
    Oct 2010Jun 2011

    Flash Developer

    Zukunftsbau GmbH

    Working with Flash/ActionScript and Java during civilian service to create a dynamic and flexible software framework. And using that framework, I created an interactive learning software according to specifications from Zukunftsbau.

    Education

    Interests

    Gaming:
    This shouldn't be that much of a surprise, considering the Games Academy apprenticeship and the knowledge about 3D Engines. I started playing games when I was five years old, and haven't stopped since. I like to play all sorts of games from RPGs to trading card games and complex strategy games on the PC. Either alone or together with friends.

    Programming:
    Besides working as a programmer, I sometimes like to code some random stuff as a hobby and to learn new techniques. It is not my main leisure activity, but from time to time it's definitely fun.

    Music:
    I listen to music when I travel, when I'm at home, sometimes when working, etc. Without a doubt, music is very important to me, although I possess absolutely no skills in creating it, unfortunately.

    Digital Media:
    Another hobby of mine is the consumption of digital media, from YouTube to Netflix or Amazon Prime. I'm no stranger to losing some sleep due to binge-watching a series that I enjoy ;)

    Languages:
    Last but not least, I like to learn languages. This is of course a huge and very time intensive task, but I am doing my best to spend about an on it every day.
    My current goal (as of 2023) is learning Finnish to pass the official language test.