Résumé/CV - Erik Unger



Erik Unger

URL of this document: http://ungerik.net/en/resume/     PDF Version
Contact: erik@erikunger.com
Twitter: @ungerik

Senior software engineer/architect/CTO with over 20 years of experience

I have worked on multiple large scale (multi million lines) and perfomance critical projects with C++ and C# but also on smaller web and mobile projects. Realtime 3D graphics has always been one of my favorite topics and I have developed 3D engines for automotive applications, a military geo information system and shipped two games, one on PC another one on PS2, Wii and Xbox360.

In nearly all projects, I worked on the design of the basics, the "engine" and the libraries that make the rest of the project go. I love developing architectures for greenfield projects!

One of my strong points is definitively my experience in a broad range of software development areas: 3D and games on PC and consoles, embedded software for the Raspberry Pi and BeagleBone Black, systems architecture, desktop software, server software, mobile app, web and social media, SQL and NoSQL databases, development on Windows, Linux and MacOS X with C/C++, C#, Delphi, Java, JavaScript, ActionScript, Python, PHP, Go, Shading Languages, Assembler.

Personal Data:

Born:25. December 1975 in Graz, Austria
Nationality:Austria / EU
Lived in:Austria, Germany (1 year) and Australia (2 years)
Currently living in:Vienna, Austria

Languages:

German (native), English (fluent; 2 years Australia)

Tech Experience:

Programming Languages Used in Commercial Projects:
  1. Go
  2. C
  3. C++
  4. C#
  5. Python
  6. JavaScript/ECMAScript
  7. TypeScript
  8. Action Script
  9. Java
  10. PHP
  11. Pascal / Delphi
  12. GLSL (OpenGL Shading Language)
  13. HLSL (High Level Shading Language)
  14. [x86-Assembler]


Tools:
Microsoft Visual Studio, Eclipse, NetBeans IDE, GitHub Atom, Adobe Flex/Flash Builder eMbedded Visual C++, Perforce, git and GitHub, SVN - Subversion, CVS, Source Safe, Harvest, Rational Rose, JBuilder, Delphi, Doxygen, CppUnit, SCons, Apache HTTP Webserver, Apache Tomcat Webserver, nginx Webserver, Cake Build System

Technologies:
React, Babel, Webpack, Apache Webserver, Flask Webserver, Android, Chrome Apps, Chrome socket/serial/bluetooth APIs, iOS, qt, QML, Multithreading, Profiling, .NET, WPF, COM, SQL Adobe Flex, JNI, JSP, Swing, AJAX, Django, Python virtualenv, STL, boost, Design Patterns, UML, XML, YAML, TCP/IP, UDP BeagleBone Black, Raspberry Pi,

Databases:
MongoDB, Redis, Memcached, SQLite, MySQL, PostgreSQL

3D and Games:
OpenGL, DirectX, Xbox360 SDK, PS2 SDK, Wii SDK, Unreal Engine 4

Development Processes:
V-Model at EADS, CMMI at AVL List, Scrum / Agile at RedTribe

Operating Systems:
Linux, Mac OS X, Windows, iOS, Android

Open Source Projects:

Projects:

2017 - CurrentCTO & Co-Founder DOMONDA GmbH Technologies:
Sept 2016 - May 2017Virtual reality viewer for architecture CAD models for EDV-Software-Service GmbH & Co KG. Technologies:
Aug 2015 - Feb 2018Browser-based app to operate a paper machine sensor for Schmachtl GmbH. Technologies:
  • Google Chrome App using Chrome specific APIs
  • Binary socket communication to sensor utilizing my chrome-netconn library
  • Webserver with a web view of the app data and data synchronization to the app
  • Web-based UI with React and my own libraries react-dmodel and eflux
  • Programming languages: JavaScript (ES6/ES2015), Go (golang)
  • Build system: Babel and webpack
  • Node.js Package Manager NPM, and Bower
  • Version control: git
March 2015 - July 2016Software for a traffic counting camera system (confidential customer). Technologies:
  • Hardware: Raspberry Pi 2/3 and several sensors
  • Web-based user interface
  • Motion detection with OpenCV, video encoding with MP4Box and avconv
  • Client side web framework: React.js
  • Web server: Flask
  • Programming languages: Python and JavaScript (ES6 compiled to ES5)
  • Build system: Gulp combined with Babel and webpack
  • Node.js Package Manager NPM, and Bower
  • Version control: git
2014 - 2017Hardware and software for drones and drone ground stations (now Space Leap GmbH). Technologies:
  • Programming languages: Go (golang), C/C++, JavaScript (ES6/ES2015)
  • react-dmodel Exploit JSX syntax to define data models and auto generate form UI for it
  • chrome-netconn Javascript ES6 classes for Chrome socket, serial, and bluetooth APIs
  • go-embedded Go package for embedded Linux development
  • go-beaglebone Go package for the BeagleBone open source hardware
  • go-mavlink MAVLink protocol implementation for Go
  • Pixhawk Flight Controller with APM autopilot software
  • BeagleBone Black and Raspberry Pi
  • Version control: git
2014 - 2015Browser based Head Up Display User Interface for a Space Suit Simulator of the Austrian Space Forum. Technologies:
Nov-Dec 2014Financial information app prototype for Three Coins. Technologies:
  • Android + iOS
  • qt 5.3
  • Qt Quick with QML
  • JavaScript
  • C++
  • Version control: git
2014Development of a consumer-electronics prototype for a confidential customer. Technologies:
May 2014Second Price Space App Camp 2014

Prototype for an augmented reality drone piloting app developed at the Space App Camp of the European Space Agency.

  • Technologies: iOS, OpenGL ES, Parrot AR.Drone SDK.
Nov 2013 - May 2014Development of a realtime bidding server (RTB) for Google advertising in Go for travel audience.
  • Implemented DoubleClick Ad Exchange Real-Time Bidding Protocol
  • Scaling to thousands of requests per second and server and multiple servers
  • Realtime server dashboard visualizations
  • Linux deployment scripts
  • Programming languages: Go, C, Javascript
  • NoSQL Databases: memcached, MongoDB
Recommendation by Jan Voss, Head of Department IT: Erik joined my team as a freelancer in order to develop a realtime bidding server written in go. He is a very smart guy, fully dedicates hisself to his work and one feels - and sees by the results - that he is passionate about delivering quality software. He strives to always create the best possible solution without losing the needed focus to meet deadline requirements. He and his work impressed me that much, that i tried to convince him to join my team as a fulltime employee. Sadly (at least for my team and me), Erik is establishing his own business with his drone start up. So, there is nothing left for me than wishing him on this way all the best for his future. I just can say: If you have the opportunity to hire this guy for your software development project.... DO IT! :-)
June 2013Winner ESA App Camp 2013

In its second year, the App Camp saw 20 developers from 16 countries convene at ESA's ESRIN centre in Frascati, Italy. Using satellite data to find areas of thermal updraft to fly gliders is just one of the innovative ideas developed over the week-long 'camp' to help bring Earth observation to the everyday user.

Winners 2013:

The developers of the Thermal Guidance System app won the challenge. The group of aviation enthusiasts proposed the use of satellite data to detect areas of high thermal updraft - rising air currents that are responsible for keeping the planes and gliders aloft. The app provides maps of these areas and a 3D view to assist pilots of gliders and small motorised planes, as well as for flying unmanned aerial vehicles.

March - July 2013Server development for the financial information and trading system Thomson Reuters Eikon.
  • Programming language: Go
  • Development of a XMPP server for 100k concurrent users
  • Scaling and performance optimization of a Redis cluster
  • Testing scalability with Tsung
May 2011 - nowgo-start: an open source high level web-framework for Google's new programming language Go
May 2011 - June 2012Tech lead at STARTeurope
  • Responsibilities: Architecture of a new web platform, general IT, interviewing job candidates
  • Teamsize: 2 employees, 2 freelancers
  • Development of a new event and community platform based on my open source web-framework go-start
  • Programming language: Go #golang
  • Database: MongoDB
  • Tools: Sublime Text, Git
Nov. 2010 - May 2011TarifAgent Android App for TarifAgent.com
  • Programming language: Java
  • Tools: Eclipse, Android SDK
July 2010 - Nov. 2010Private side project: ConvertSocialMedia.com. A social media webservice that converts social media updates to email newsletters.
  • Framework: Python + Django
  • Webserver: Linux + nginx + celery
  • Database: PostgreSQL
  • APIs used: Facebook, Twitter
July 2010Private Open Source side project: mypyprojectcreator - All batteries included virtualenv django project creator for fast prototyping
2009-2010Private side project: Blog and event calendar StartupMelbourne.com
2008-2009
(15 Months)
Core-tech developer at RedTribe.
  • Game-engine development: Extensions for the collision system, redesign of the memory manager, memory profiling facilities.
  • Game development: Performance and memory optimizations for Space Chimps the game.
  • Tools development: C# .NET Tools for memory profiling and asset database. Softwaredesign for C++ base libraries. 3D viewer for models and animations. Network messaging system.
  • Programming languages: C++, C#, Python, Assembler
  • Platforms: Windows, PS2, Wii, Xbox 360
  • Tools: MS Visual Studio, Eclipse, Perforce, console development kits, SCons/Cake Build System.
  • Development Process: Scrum
  • Team size: Up to 65
  • Project lines of code: Millions
  • Data processes by inhouse developed build system: Terrabytes
  • Location: Australia
2003-2008 BaseLib: Self-development of a platform independent C++ base library, inspired by Java and C# APIs. github.com/ungerik/BaseLib
Ygui: Self-development of a platform independent C++ GUI library for the time being only with a widget library for Win32. Supports custom widget libraries, multilanguage, skinning and stylesheets.
Next-Reality Engine: Self-development of a platform independent, multithreaded 3D and game engine.
2007
(2 Months)
Development at a Adobe Flex project of Customer Experts.
2007
(1 Month)
Price calculation tool for one of the biggest logistics companies, as sub contractor of Customer Experts. Realized in C++ with the self developed libraries BaseLib, Ygui and Win32Widgets.
  • Programming languages: C++
  • Technologies: BaseLib, Ygui, XML
  • Location: Austria
  • Reference Letter
2006
(4 Months)
Working-time management application for "Kärntner Energie-Verband" implemented with JSP and Oracle, as sub-contractor of Netconomy
  • Programming languages: Java
  • Technologies: JSP, Tomcat Oracle
  • Location: Austria
2006
(5 Months)
Gameplay-programming for the computer game The Show from Sixteen Tons Entertainment
  • Implementation and support of program moduls in the following areas:
    • Game techtree
    • Leveleditor features
    • Optimization of Decal-Rendering
    • Missionlogic
    • General gameplay logic
  • Elaboration of test procedures for quality assurance
  • Debugging of own and foreign program modules
  • Programming languages: C++, Shader
  • Lines of code integrated with: Millions
  • Technologies: DirectX, Shader
  • Team size: 25
  • Location: Germany
  • Reference Letter
2005
(10 Months)
Development of various components of the engine-optimization software CAMEO of AVL List
  • Programming language: C#
  • Lines of code integrated with: Millions
  • Technologies: .NET
  • Location: Austria
2004-2005
(6 Months)
Development of the 3D visualization component of the engine-optimization software CAMEO of AVL List, implemented in C++ and C# with DirectX
  • Programming languages: C++ and C#
  • Lines of code integrated with: Millions
  • Technologies: DirectX, .NET
  • Location: Austria
2004
(1 Month)
Online-database for truck-bodies with PHP and MySQL for Karosserie/LKW-Service Wasner
  • Programming languages: PHP
  • Technologies: MySQL
  • Location: Austria
2003-2004
(12 Months)
Expert-system for analysing market-trends, values-chains and product-features, developed for Customer Experts.
Java application with custom object-oriented XML/Java database and custom Swing Look-And-Feel for the user interface
  • Programming languages: Java
  • Technologies: XML
  • Project manager and lead programmer, team size: 3
  • Location: Austria
2003
(3 Months)
Conception and project-management of a corporation critical online-database for management of test- and serialnumberdata of highway-toll sensors with PHP and PostgreSQL for EFKON
  • Programming languages: PHP
  • Technologies: PostgreSQL
  • Project manager, team size: 4
  • Location: Austria
2002-2009 Co-Founder Bouncing Bytes (Unger & Lefkopoulos OEG) - up to 13 freelances working in our offices (Austria)
2000-2003
(2.5 Years)
2D/3D graphics-engine for the military GIS Geogrid, developed for EADS (European Aeronautic Defence and Space Company).
Implemented with C/C++ and OpenGL, Ports for Windows CE and embedded systems plus serverside rendering for internet applications
  • Programming languages: C/C++ and Assembler
  • Lines of code written: about 100k, Lines of code integrated with: Millions
  • Technologies: OpenGL, DirectX, Windows CE, Embedded Systems
  • Locations: Germany and Austria
1998-2000
(18 Months)
2D/3D Track-editor and driving-simulator in Java with OpenGL for engine-development and tests, developed for AVL List with c.c.com
  • Programming languages: Java and C/C++
  • Technologies: OpenGL, JNI
  • Location: Austria
1998
(3 Months)
Implementation of an employe-data transmission service with Borland Delphi for the building-trade software baudat
  • Programming languages: Delphi
  • Technologies: Delphi
  • Team size: 15
  • Location: Austria
1996-1998 Porting of versions 5 to 7 of Microsoft's DirectX for Borland Delphi, and porting of the 3dfx 3D-driver interface Glide 2.x and 3.x for Borland Delphi
  • Programming languages: C/C++ and Delphi
  • Technologies: DirectX, Glide
  • Location: Austria
1996-1998 Several articles about graphics and 3D programming for PC Magazin - DOS and c't. Among other: Programming of a realtime-raycasting engine like Wolfenstein/Doom with Turbo Pascal ander DOS, Basics and graphics-effects, loading and displaying of a 3D-model ander Windows with Delphi and DirectX
  • Programming languages: Pascal/Delphi
  • Technologies: DirectX
  • Location: Austria

School:

1982-19864 Classes elementary school in Hönigthal
1986-19904 Classes BRG-Kepler in Graz
1990-19965 Classes and final examination at Höhere technische Bundeslehr- und Versuchsanstalt Graz - Gösting (BULME), mechanical engineering

Technical Internships:
1991Punitz-Flug (aircraft and airfield maintenance)
1994Diamond Aircraft (aircraft building)
1995Computer Aided Technologies Tüchler: (3D standard-part library for I-DEAS Master Series 3D-CAD-Software)

Additional Schoolings:
1994-1995Course at HTL (BULME): Computerbuilding
1994-1995Course at HTL (BULME): Quality Techniques QII (Statistical Methods of Quality Assurance)
2001First Aid Course