next up previous contents index
Next: Skills Up: Profile Previous: Resume / CV

Work Experience

01/2024 - today Senior Engineer: Various Clients

Project: Gamp, replicate JogAmp's experience of GraphUI and overall platform agnostic graphics framework for native platforms and web browser via WebAssembly using emscripten.

Project: Various client projects and tutoring.

Activities: Porting and enhancing linear algebra, the Graph implementation and the overall platform agnostic graphics framework to C++20 while maintaining WebAssembly compatibility for the browser target. This work is also based on gfxbox2, evaluating C++20 and the web-target in a lax environment, suitable for teaching simple simulations and games.

IT-Environment: Linux, POSIX, C++, OpenGL, OpenAL, OpenCL, Mesa 3D and Linux DRM/DRI driver, ARM32, ARM64, Amd64, WebAssembly, gcc, clang/llvm, clang-tools, emscripten, Eclipse, VS-Code, ...


07/2024 - 12/2024 Senior Engineer: Collabora Productivity

Project: Collabora Online, an open source online office suite based on LibreOffice (LO).

Activities: Working on server side tasks, connecting web-clients with LO. Maintaining HTTP and WebSocket connections with DoS mitigation (latency, timeouts & limits) and statistic visuals. Analysis of LO/client server poll-loop, file-streaming and persistent user properties via WOPI (NextCloud), besides others.

IT-Environment: Linux, POSIX, BSD Sockets, OpenSSL, HTTP, WebSockets, REST API, WOPI, JSON, C++17, JavaScript/D3, gcc, clang/llvm, clang-tools, gdb, git, gerrit, github, Doxygen, LibreOffice, NGINX, Docker, NextCloud, ...


11/2022 - 04/2024 Senior Engineer: Ankama, GeoGebra, UHZ, et.al.

Project: JogAmp Support, GraphUI, compiler features, high dpi, video encoding & decoding and misc. features

Activities: Realizing GraphUI, a cross-platform UI utilizing our own resolution-independent GPU curve renderer. GraphUI is suitable for desktop and embedded devices, it also runs on top of console kernel DRM driver without a windowing toolkit. Notable entries are Reimagine Java on Desktop & Bare-Metal Devices, FontView App, Type Animation 2, Type Animation at your Fingertips and others.

Activities: Supporting clients adopting JogAmp, implementing commissioned features

Presentations: Latest Blogs, JavaOne 2008, Tegra-1 Video Demo, Siggraph[2010, 2011, 2012, 2013, 2014], Fosdem[2013, 2014].

IT-Environment: Windows, Linux, Android, MacOS (x64, M1/aarch64), C++, C, Objective-C, Java, Vulkan, OpenGL, OpenAL, OpenCL, Mesa 3D and Linux DRM/DRI driver, ARM32, ARM64, Amd64, BCM, Omap3, Tegra, GCC, MingW, UML, git, Eclipse, vim, ..


08/2023 - 11/2023 Senior Engineer: Zafena

Project: Detecting Rapid Test Results From a USB attached Camera.

Activities: Design & implementation of an embedded device software module to detect rapid tests results from live streamed images of a USB camera. Image filter as well as appropriate detection algorithms had been chosen, used and partially implemented.

IT-Environment: OpenCV, C++17, gcc, Java, Linux, X86 and X86_64, ARM64, Raspberry, cmake, git, ..

Project: Adding Direct-BT GATT-Server while being in BT-Client mode and hardening Passkey Authentication.

Activities: Certain devices acting as master/server require the client to provide a GATT-server for successful authentication. This capability is essential to have these operating successful with the clients POC-Workstation.

Activities: General passkey authentication within Direct-BT and the client's application had been hardened and resolved.

IT-Environment: Bluetooth Core Spec v5.2, Linux Kernel BlueZ driver, C++17, gcc, llvm, valgrind, gdb, Java, Linux, X86 and X86_64, ARM32 and ARM64, Raspberry, cmake, Doxygen, UML, git, ..


04/2020 - 10/2022 Senior Engineer: Zafena et.al.

Project: Direct-BT and POC-Workstation Support.

Activities: Design & realization of Direct-BT, a new Bluetooth stack using C++17 inclusive Java binding.
Direct-BT provides direct Bluetooth LE and BREDR programming, offering robust high-performance support for embedded & desktop with zero overhead via C++ and Java.
It supports a fully event driven workflow from adapter management and device discovery to GATT programming, using its platform agnostic HCI, L2CAP, SMP and GATT protocol implementation.
Multiple Bluetooth adapter are handled, as well as multiple concurrent connections per adapter.
Peripheral server device programming is supported as well as the central client, which is also used for self unit testing across two or more Bluetooth adapter.
Further, the provided repeater application allows to connect between a Bluetooth client and server to analyze their protocol.
Direct-BT has been used successfully in a medical trial, as well as in a connected medical device terminal. The C++ and Java support library has been extracted to encapsulate its generic use-cases.
To become feature complete using the underlying BlueZ Linux kernel host Bluetooth driver, the kernel implementation had to be analyzed via code review, manual instrumentation and debug traces. This resulted in full access of the Security Manager Protocol (SMP) via L2CAP and helped achieving Bluetooth 5 compatibility.

Activities: Support adoption of Direct-BT and participate in certain life-cycle tasks, code review, testing and production.
The POC-Workstation is a connected medical device terminal, a widely deployed embedded system. Direct-BT enables the station to handle multiple parallel connections to medical devices as well as real-time data streaming and status monitoring.
SMP LE Secure Connections and LE legacy pairing is fully supported. Additionally, a BLE protocol analyzer has been developed.

Presentations: Latest Blogs, BLE Programming with C++ & Java

IT-Environment: Bluetooth Core Spec v5.2, Linux Kernel BlueZ driver, C++17, gcc, llvm, valgrind, gdb, Java, Linux, X86 and X86_64, ARM32 and ARM64, Raspberry, cmake, Doxygen, UML, git, gitlab, Bugzilla, Eclipse, vim, ..


06/2022 - 08/2022 Senior Engineer: Zafena

Project: Secure System and Application Upgrade for a Connected Medical Device Terminal

Activities: Adopting Cipherpack (OTA) streaming and atomic file operations and implementing a secure system and application upgrade.
Upgrade the deployed embedded system's read-only OS and application squashfs image using a wide range of media, e.g. http, smb, usb memory stick, etc.
The implementation follows the 'copy once' pattern, the sizeable OS image is put in place on the filesystem during Cipherpack's decryption and authentication streaming.
A factory default and last version fallback boot facility is provided while managing multiple OS versions. Robust instantiation of a new OS instance is realized via secure hash validated OS level file copy and atomic rename operations.
A full set of POSIX file system operations inclusive a privilege separated filesystem image mount has been exposed to C++ and Java.

IT-Environment: C++17, Java, Linux, X86 and X86_64, ARM32 and ARM64, Raspberry, cmake, Doxygen, UML, git, gitlab, Bugzilla, Eclipse, vim, ..


01/2022 - 05/2022 Senior Engineer: Zafena et.al.

Project: Cipherpack, authenticated secure stream processor.

Activities: Design & realization of Cipherpack using C++17 inclusive Java binding.
Cipherpack is a transport stream agnostic authenticated secure stream processor. It utilizes public-key signatures to authenticate the sender and public-key encryption of a symmetric-key to multiple parties ensuring their privacy while allowing high-performance authenticated message encryption.
Primary use case in this project was the OTA application and OS upgrade process for a deployed embedded system, a terminal for connected medical devices.
The API utilizes a listener event model, allowing the user to interact during stream [de]cipher , e.g. rejecting the stream altogether based on header information.

IT-Environment: C++17, Java, Linux, X86 and X86_64, ARM32 and ARM64, Raspberry, cmake, Doxygen, UML, git, gitlab, Bugzilla, Eclipse, vim, ..


08/2021 - 11/2021 Senior Engineer: Wyss Center, Neurotechnology Research Foundation

Project: Direct-BT adoption for a Medical Clinical Trial.

Activities: Support adoption of Direct-BT in conjunction with custom BLE sensors, enhance Bluetooth 5 support and help create an intermediate software layer.

IT-Environment: Bluetooth Core Spec v5.2, C++17, Linux, BLE sensors, ..



11/2009 - 06/2020 Senior Engineer: Various Clients for JogAmp

Project: JogAmp, high performance Java libraries for 3D Graphics (OpenGL), multimedia (OpenAL, ffmpeg) and processing (OpenCL) across platforms (Windows, MacOSX, Linux, Android) for desktop, mobile & embedded systems.

Activities: Supporting clients adopting JogAmp for their commercial projects and implementing commissioned features and platform support.

To manage the project, I utilize a diverse set of tools to cover the project life-cycle: GIT for decentralized source control; Bugzilla for requirements, bug triage and release definition; Jenkins for continuous integration including running our more than 1300 unit tests on supported test platforms; Mediawiki and API doc for seamless documentation and last but not least a forum for transient communication.

Besides project management, I have resolved a few notable tasks from 2019 until May 2020 for the upcoming 2.4.0 release: iOS support, DRM/GBM 'bare metal' support for embedded systems, JavaFX support, Java11 support, SWT and HiDPI issues, Aarch64 support (Linux, Android), compliance with Android >= 10 (SDK 29, NDK 20) and with critical MacOS API changes.

From 2010 until 2019, we fixed 589 bugs and realized numerous cross-platform features, some notable are: GPU based curve rendering (Graph); Android support; Native windowing toolkit (NEWT) with cross-toolkit re-parenting, multi-monitor and HiDPI support; FFMpeg video decoding and camera input with GPU pixel format conversion; Smart JAR file deployment support; Runtime binary format detection (ABI).

Presentations: Latest Blogs, JavaOne 2008, Tegra-1 Video Demo, Siggraph[2010, 2011, 2012, 2013, 2014], Fosdem[2013, 2014].

IT-Environment: Solaris, Windows, Linux, Android, MacOS, C, Objective-C, Java, OpenGL, OpenCL, OpenMax, OpenKode, Mesa 3D and Linux DRM/DRI driver, ARM32, ARM64, Amd64, Sparc, BCM, Omap3, Tegra, GCC, MingW, UML, git, Eclipse, vim, ..


2008 - 2009 Senior Staff Engineer: Sun Microsystems, Inc., Santa Clara, CA

Project: JOGL Redesign & Support

Activities: Redesigned the OpenGL Java language mapping JOGL to support multiple windowing systems and exposed multiple OpenGL profiles (ES 1.1, ES 2.0 and GL 1.5 - 4.1) targeting multiple desktop and embedded/mobile devices, technical lead.

Started a simple native windowing toolkit (NEWT), demonstrating efficient JOGL usage on desktop and mobile devices without AWT.

Supported porting JOGL to multiple embedded devices, APX 2500, Broadcom/LG, Intel CanMore and PowerVR-SGX/Omap3.

Adding OpenMax IL multimedia support access for embedded platforms.
APX 2500 Demo at JavaOne 2008

IT-Environment: Solaris, Windows, Linux, Android, MacOS, Java, JOGL, OpenGL, JOCL, OpenCL, OpenMax, OpenKode, ARM, IA-32, Amd64, Sparc, Omap3, Tegra, GCC, MingW, ..


09/2008 - 11/2009 Senior Staff Engineer: Sun Microsystems, Inc., Santa Clara, CA

Project: Java Plugin3 Development

Activities: Designed & realized Plugin3, technical team lead.
Abstracted the windowing layer and modularized Plugin2, forming Plugin3. It featured usage of custom windowing implementations bootstrapped via JNLP.
Improved startup time about factor 3 - 13 (new load, reload). Added support for offscreen drawable to allow browser side compositioning.
Implemented an OpenGL proof of concept module using JOGL and NEWT.

IT-Environment: Solaris, Windows, Linux, Java, OpenGL, GLX, WGL, Networking, UML, IA-32, Amd64, GCC, MingW, ..


Project: Experimental JavaFX 3D and multimedia cross platform UI API.

Activities: Targeted desktop and mobile devices for a high performance, state of the art user interface (HMI). Utilized hardware acceleration (OpenGL ES1.1, ES2.0, GL 1.5-2.0, OpenMax) for the scenegraph layer.
Adding support for per pixel lighting (normal maps) using Maya files.
Modularized and prepared the scenegraph layer for JOGL's mobile GL profiles.

IT-Environment: Linux, MacOSX, Java, JOGL, OpenGL, IA-32, Amd64, GCC, Maya, ..


08/2007 - 09/2008 Staff Engineer: Sun Microsystems of Canada, Inc.

Project: New Java Plug-In incl. JNLP support

Activities: JNLP integration in the New Java Plug-In. Designed & refactored the Java Plugin and JNLP modules, to become Plugin2. Added Unix Domain Sockets for the client/server IPC on unices. Stabilized the client/server communication and improved startup time. Helped specifying the JNLP extension and extended the test framework covering the new features.
Presented at JavaOne 2008.

IT-Environment: Solaris, Windows, Linux, Java, IPC, Networking, UML, IA-32, Amd64, Sparc, GCC, VS-C, ..


06/2005 - 07/2007 Senior Engineer: Advanced Micro Devices (AMD), formerly ATI

Project: Embedded Graphics driver; Various embedded driver features and enhancements.

Activities: Managed requirements, designed & realized an embedded graphics driver for OpenGL core, EGL 1.1, ES 1.1/2.0 on various graphic chips R3xx, R5xx, R6xx and their mobile variants. Technical team lead.

Managed & implemented various customer feature & performance requirements: Performance OpenGL extension, hardware overlay, asynchronous ReadPixel, GLSL/DMA texture transfers, page flip, VSync and multi DMA page locks.
Transferred requirements to new technical specifications.

Enhanced performance about factor 2.5, targeting functional driver blocks like TLS, inlining, caching, dispatch table, stream copy, etc.

Participated in the general driver development within the software team and helped with enhancements. Worked on SDK & demo infrastructure and multimedia demos.

IT-Environment: Doxygen, Office, UML, Perforce, Remedy; GNU: GCC, Linux, Valgrind, VTune, ATI Graphic Cards, Linux Kernel driver, OpenGL, GL ES; IA-32 and PPC, MPEG.


04/2005 - 06/2005 Senior Engineer: Hella

Project: Non Volatile Ram Manager

Activities: Managed requirements and specification for a new NV Ram Manager. The backward compatible module covered new customer requirements.

IT-Environment: MKS, Doors, Innovator, Doxygen, MS Office, NEC, Lotus


12/2004 - 03/2005 Senior Engineer: Jausoft

Project: Linux Device Driver - Monolithic and User Space

Activities: Investigated user space functionality within Linux device drivers. Learned pros and cons of simple resource handler and utilization of complex user space libraries. Implemented a portion of the Linux DVB API as an user level driver using FUSD and Gelato project knowledge.

IT-Environment: Linux Kernel 2.6.x driver, gcc, gcc, dvb API, FUSD, gelato, ...


08/2004 - 11/2004 Software Consultant: SiemensVDO

Project: Embedded Multimedia Player

Activities: Evaluated hardware and software solutions.

Wrote proof of concept including evaluation, test and quality audit of mpeg solutions incl. software toolchain.

IT-Environment: Change Synergy, CM Synergy, x86, ESS 6218, ST20, Ansi-C++, DSP, gcc, mpeg2, a52, mp2, lpcm, dvd, ...


09/2003 - 06/2004 Senior Engineer: Harman/Becker Automotive Systems

Project: Senior Engineer: OSGI, Multimedia, Embedded Systems, ...

Activities: Designed & realized an embedded multimedia platform for QNX/SH4 inclusive custom DSP A/V device driver, which implemted the Linux DVB-API and hence enabled open-source application on the new target platform.

Evaluated, ported and enhanced misc. open source multimedia projects, like vdr, vdr-dvd, xine, mplayer, libdvd, ... to be used on mentioned QNX/SH4 target platform, utilizing the new DSB A/V driver.

Evaluated Linux-SH for the SH4 developing platform, added pci-dma support and implemented PCI-IRQ management. Ported a SH4 bootloader using bootp/nfs for disc-less system.

Evaluated a platform independent GUI/Widget toolkit: QT. Objectives were to develop, test and cross-compile UI projects on different platforms. Quality requirement goals were source code and UI builder availability and existance of some platform ports.

Implemented OSGI bundled applications in an client/server environment for embedded systems (QNX-NTO, XFree86, Java/J2ME, ...).

IT-Environment: Linux Kernel driver, QNX-NTO driver, x86, SH4, Ansi-C, Ansi-C++, Java, OSGI, XFree86, QT, QT Designer, DSP, gcc, gdb, ddd, mpeg2, a52, mp2, lpcm, dvd, ...


06/2003 - 06/2004 Software Consultant: Jausoft

Project: Multimedia

Activities: Evaluated & enhanced open source multimedia projects, like VDR, vdr-dvd, ...

IT-Environment: GNU/Linux, ANSI-C++, mpeg2, a52, dvd, ...


03/2002 - 03/2002 Software Consultant: JavaOne 2002, San Francisco, CA

Project: Speaker: OpenGL(R), and New I/O - High-Performance 3D Graphics for the Desktop Client.

Activities: Presented utilization of the JVM's high performance New I/O using my OpenGL(R) language mapping for Java(TM) or GL4Java.

IT-Environment: GNU/Linux, Windows, Java, OpenGL


01/2000 - 11/2005 Software Consultant: Various customers

Project: System Administration

Activities: Planned, setup and maintened heterogeneous IT infrastructure using GNU/Linux, iptables, ppp, apache, sendmail, fetchmail, procmail, samba, nfs, nis, ssl, ssh, ... for the DMZ to serve GNU/Linux and Windows clients within different secure and insecure subnets.

Customers were public schools, training centers and internet shops.

IT-Environment: GNU/Linux, Windows, MacOSX; iptables, ppp, apache, sendmail, fetchmail, procmail, samba, nfs, nis, ssl, ssh, popper, imapd, VPN, ..


02/2002 - 08/2003 Senior Engineer: Harman/Becker Automotive Systems

Project: OSGI - Car-Remote-Control

Activities: Implemented ClientServer OSGI bundles. The server, installed into the car, provided misc. remote maintenance services, like door locking, camera snapshots and retrieving the GPS position. The client could connect to the server and use said services in the role of the main user or as an observer with read-only access. The network access was secured via SSL & RSA encryption and authorized using RSA signatures.

The goal was to demonstrate the feasibility of a remote car control via Java and OSGI bundles, which could be installed onto the client through the internet.

IT-Environment: Java (Sun J2SE, IBM's J2ME J9), OSGI (IBM, Oscar, Acunia), HTTPS/SSL (JSSE), RSA (JCE) Encryption + Signature, Serial+Parallel (JavaComm), MOST, GPS


02/2002 - 08/2003 Senior Engineer: Harman/Becker Automotive Systems

Project: XFree86 Integration and Driver Modules

Activities: Implemented an XFree86 driver module for the Scarlet Fujitsu MB86291 graphics device running under Linux & QNX (X86, SH4).

Enhanced and matured the XFree86 driver module for the Siliconmotion Lynx3DM graphic device running under Linux & QNX (X86,SH4).

The X11-Server was intended to be used within embedded systems and therefor should have provided a graphics interface with network abilities.

Using an X11-Server in the Unix (QNX) environment opened up the embedded platform to a sizable amount of available applications, e.g. media players, Java AWT implementations etc.

I added hardware accelerated functions for the graphic device like blitting (XAA) and YUV overlay (Xvideo) and exposed them to the X11R6 interface. High 2D and video playback performance with the Scarlet and the Lynx3DM chips were realized.

Miscellaneous adaptations of the XFree86 internals for QNX-NTO using the X86 and SH4 processor were made.

IT-Environment: Linux driver, QNX-NTO driver, ANSI-C, ANSI-C++ XFree86, Scarlet Gfx Chip, Lynx3DM Gfx Chip, gcc, gdb, ddd, X86, SH4


04/2002 - 05/2002 Senior Engineer: Harman/Becker Automotive Systems

Project: X11-Server AWT Implementation for Java

Activities: Completion & Bugfixing of the AWT Implementation of Kaffe. This AWT implementation did not require Motif (low Memory Footprint), but rendered the GUI Widgets exclusively using the XLib. With the assistance of this AWT solution we were able to use standard Java GUI's within the J2ME environment on a Unix and X11R6 based platform.

A QT solution was evaluated as well, but because of the limited availability of a native QT implementation for the embedded device, this approach was discarded.

IT-Environment: Java (Sun J2SE, IBM's J2ME J9), Linux, QNX-NTO, X11-Server, QT, Kaffe


11/2001 - 01/2002 Senior Engineer: Harman/Becker Automotive Systems

Project: Location Based Premium Services (Usability)

Activities: Evaluated an application server based upon XML. The application logic was provided via XML-Tags to the web-author, which were implemented using XSP application-sheets. These XSP application-sheets could be implemented with Java, as well as with other programming languages. The XML engine Cocoon provided a framework for said purpose. XML documents could be filtered (piped) and serialized in such a manner, that the application logic (XSP), multilingual support and several output formats (PDF, HTML) were interoperable.

Database objects could be used through the J2EE interface.

The purpose of this server was to provide location based services. Premium information like traffic control was provided to the subscriber, which was connected to the network (GSM) and provided its GPS location.

IT-Environment: Linux, Java, Servlets (Tomcat), Cocoon (XML/XSP/XSL), J2EE (JBoss), Apache, GPS


08/2001 - 10/2001 Senior Engineer: Service Company

Project: Visualization of Organized Structures in 3D

Activities: Designed & implemented a 3D visualization of organized structures, likely organigrams. The hyperbolic 3D space was used, so the objects and their correlated links were represented within a sphere. Interactions via mouse-over, mouse-drag and selection were used to navigate through the structure.

IT-Environment: GNU/Linux, UML, Java, OpenGL For Java (GL4Java), OpenGL, UML(ArgoUML).


05/2001 - 07/2001 Software Consultant: EDS, Continental

Project: Client/Server Protocol via XMLRPC

Activities: Designed & implemented a communication solution between a native server application running on AIX incl. DBMS and many Java clients.

XMLRPC was used for this purpose as a lightweight protocol.

XMLRPC was implemented in native ANSI-C++ on the server side as well as in Java for the client side.

IT-Environment: AIX, Java, XMLRPC, UML(ArgoUML).


08/2000 - 01/2001 Senior Engineer: Siemens AG

Project: Home Location Registers (HLR) - Innovation

Activities: Worked on HLR's DB replication setup and schematas. HLR was part of the new infrastructure for mobile telecommunication.

IT-Environment: Unix (Solaris), UML, C++, Java, TCP/IP, MAP/TCAP/CSS7, RTC.


08/2000 - 08/2000 Software Consultant: Campus Part 2k, Valencia, Spain

Project: Speaker: Introduction to the OpenGL(R) language mapping for Java(TM)

Activities: Presented the OpenGL language mapping for Java (GL4Java): Architecture, implementation and its usage.

IT-Environment: GNU/Linux, Windows, Java, OpenGL

07/2000 - 08/2000 Software Consultant: Dekra GmbH

Project: Tutoring on the subjects networking and Java

Activities: Taught basics and praxis of client-server network techniques, as well as programming of tcp/ip based protocols in Java.

IT-Environment: Unix (Linux), Java, TCP/IP


06/2000 - 07/2000 Software Consultant: March1st

Project: Reassurance auction platform in the internet

Activities: Helped designing & implementing the user session management and other modules of an internet auction platform. Direct insurers were able to offer partial layers of the overall risk to the reassurance companies. The whole handling including customer management (broker, direct insurer and reassurance) was supposed to take place in an HTML interface (Web-browser).

IT-Environment: Application server (Websphere, Apache, XML, Java Servlets), Java, EJB, DB2, PowerDesigner (DB-Design), Win32, Solaris.


06/2000 - 10/2000 Senior Engineer: Desys GmbH

Project: 3D Scenegraph-API for Java.

Activities: Implemented a native interface to the scenegraph library. Using the scenegraph API and GL4Java, an application was be able to manage complex 3d structures and access native 3D techniques. Maintenance and adaption of the scenegraph API is also part of this work.

IT-Environment: Unix (Linux), Windows, VRML, OpenGL, GL4Java, Java


06/1999 - 05/2000 Senior Engineer: IFS GmbH (An RWE Company)

Project: Cheops

Activities: Modeled, implemented and tested theme objects based upon Use Cases.
The product discussed the complete energy economy (device management, customer services, etc.). The application was implemented in Java as a client/server solution.

IT-Environment: Java2, Paradigm Plus, PVCS, Win32, Oracle, Framework incl. ODBMS<->RDBMS Mapper, GUI (View, Controller, Business Object), Java Generator for Paradigm Plus, JDBC, Corba, RMI, Email.


05/1999 - 06/1999 Software Consultant: Jausoft

Project: GLMame32

Activities: Implemented a M.A.M.E. OpenGL display drivers for for unix and windows. This work based on Mike Oliphant's GLMame XMame . GLMame32 is licensed under the GNU Library General Public License !

IT-Environment: Unix (GNU/Linux), Windows NT/95, OpenGL, MSVC++ 5.0


02/1999 - 06/1999 Software Consultant: Lufthansa Airplus

Project: Easy Travel Online (ETO) der Lufthansa Airplus .

Activities: My tasks included the support of the C++, IIOP and Java environments, as well as the networking area. I managed to create a solution for the IIOP tunneling via HTTP incl. proxy server and passing a firewall.

This solution was implemented in Java and used the Java-Servlet-API (JSDK). This new middleware was accessed by the ETO clients using HTTP, connecting to the web server within the server domain. The middleware also provided secure transaction via SSL.

IT-Environment: Unix (Aix, GNU/Linux), Windows NT, , JDK 1.1.X, Java2, JSKD 2.1, Apache, Iona Orbix (-Web), Cygwin32, TCP/IP, HTTP, SSL, Firewall, Proxy-Server


01/1999 - 07/1999 Senior Engineer: Jausoft

Project: GL4Java Version 2.X.

Activities: Designed & implementation of a new object-model to separate the OpenGL , GLU and window handler objects. Java2 and Netscape were also supported for Win32. GL4Java is licensed under the GNU Library General Public License !

IT-Environment: Unix (Aix, Solaris, GNU/Linux), Windows NT/95, Macintosh, OpenGL, JDK 1.1.X, Java2, Java-Native-Interface, Cygwin32, TCP/IP, HTTP, GNU-C++, MSVC++ 5.0


11/1998 - 12/1998 Software Consultant: Training center

Activities: Tutored in the areas of ANSI-C++, Java and networking. Example projects were used to deepen newly taught theories.

IT-Environment: Unix (GNU/Linux), Windows NT, , GNU-C++, JDK 1.1.X, RCS, SNMP, TCP/IP, Apache, UML


06/1997 - 10/1998 Senior Engineer: Siemens AG, Munich

Project: Realization of an upgrade process in SDL(UML) and C++

Activities: Designed & realized a multithreaded upgrade process in SDL(UML) and C++ for the embedded target platform VxWorks/680xx, XpressLink DSL project. The latter pushed new firmware to the home based xDSL modems.

I introduced & enabled independent module development & test, utilizing synthethic input data, which also untangled teams developing modules of the system.

I took part in the black-box review process, documentation and realization of module & (regression) unit tests on the host and target system.

The emphupgrade process was developed for the project XpressLink of the Siemens AG, M"unchen.

IT-Environment: Unix (Sun - Solaris), Windows NT, SDT 3.11 (Telelogic SDL) , GNU-C++, ClearCase (ClearTool), VxWorks (Target), SNMP (MIB)


04/1997 - 01/1998 Research Scientist: University of Applied Sciences - FH Bielefeld

Project: GL4Java, OpenGL language mapping for Java

Activities: Created a Java extension, exposing OpenGL and GLU natively under Java. The OpenGL interface was implemented using the Java Native Interface (JNI), connecting the Java-Methods to the native OpenGL functions.
I setup a platform independent development environment under Unix (AIX, GNU/Linux) and Windows NT (Cygnus-GNU-Tools, ...) for using Java, ANSI-C, Makefile, etc.
This works started under the supervision of Prof. Dr. math. Bunse FH-Bielefeld for my diploma thesis.
GL4Java is available under the URL: http://www.jausoft.com/gl4java/.

IT-Environment: Java Developer Kit 1.1.X (JDK), JavaCC, Latex, HTML, Make, RCS, Unix (AIX, GNU/Linux, Solaris), Windows NT, Cygnus-GNU for Win-NT 4.0 (bash, vi, sed, grep, awk, ...)


11/1996 - 04/1997 Software Engineer: IBM Frankfurt

Project: Technical Prototype (GUI) for a Call-Center Application

Activities: Created and integrated GUI widgets (objects) plus functional extensions in Java for Sun's Java-WorkShop:

Created prototypes, installed Source Control System (SCCS) on AIX, supported GUI-Team with Java know-how and Web-Publishing.

IT-Environment: Sun's Java WorkShop 1.0, Java Developer Kit 1.02 (JDK), Symantec Visual-Cafe, JavaCC (Java Compiler Compiler), HTML, Netscape (WWW), Make, SCCS, Unix (AIX), Windows NT, Cygnus-GNU for Win-NT 4.0 (bash, vi, sed, grep, awk, ...)


06/1996 - 09/1996 Software Engineer: Software Consulter

Project: Evaluate platform independent graphical user interfaces and applications.

Activities: Usability test of Tcl/Tk and Java, to provide OS independent applications with a GUI. Examples with multi-threading, sound, animation, tables, menus and system interfaces are created for testing purposes. The Java libraries, (applet, awt, io, ...) as well as the TK-Library were evaluated for this purpose. The development environment was assembled with the JDK 1.02, GNU/Linux and Java Workshop 1.0.

IT-Environment: Unix (GNU/Linux), MS-Windows 95, ANSI-C, ANSI-C++, Tcl/Tk, Sun's Java WorkShop 1.0, Java Developer Kit 1.02 (JDK), HTML, Netscape (WWW), Make, RCS


03/1996 - 09/1996 Software Engineer: Duerkopp-Adler AG

Projects: CAD/CAM DIN66025 for 80166-Controller (Sewing machine), OS services for 8051 and 80166 controller-cards.

Activities: Implemented modules in ANSI-C to support OO development inclusive Run-Time-Type-Information (RTTI) and virtual methods for user defined data types. Implementation of a dynamic polymorph list type. All modules were supporting the bare-metal target platform 80166-Controller, KEIL-C compiler.

Created a Unix like file system for a PCMCIA ram-card, and an IPC communication protocol for two 80166-Controller.

Ported the DIN66025 compiler written in C++ to C, which was created for the Windows CAD/CAM application (see earlier project below). This effort allowed the DIN66025 CNC description to be visualized and editable on the 80166-Controller as well.

IT-Environment: Controller hardware 80166 and 8051, MS-Dos, ANSI-C (KEIL compiler for 80166 and 8051 Controller), Unix-Environment for MS-Dos (MKS), RCS, Make, ANSI-C++ (GNU)


03/1996 - 08/1996 Software Engineer: Internet provider

Activities: SQL-DB GUI for a web-server. Queries and db-management were offered by a created http/cgi interface. Filters to process the non-uniform data for the db import were realized with Unix scripts (awk/sed/...).

IT-Environment: Unix (GNU/Linux), HTTP-Server (Apache), mSQL (DBMS), ANSI-C, ANSI-C++ (GNU), RCS, Make, awk, sed, grep


08/1995 - 03/1996 Software Engineer: Duerkopp-Adler AG

Project: CAD/CAM DIN66025 under MS-Windows (3.1 u. 95)

Activities: Developed a CAD/CAM application. The applications exposed two DIN66025 CNC views simultaneously, one for the graphical and one for the text based representation of the geometric and the technical data. Both views were editable and the data & views synchronized. The text representation was the source data compiled into an OO data structure, capable to be drawn in the graphical 2D view and to be printed into a DIN66025 text file simultanously.

IT-Environment: MS-Windows/Windows95, ANSI-C++ (MS VisualC++), MFC, Word 5 (Onlinehelp), Lex & Yacc (MKS), RCS (GNU), Make (GNU), Unix env. (MKS/GNU/Linux)


12/1994 - 06/1995 Software Engineer: Software Distributor

Project: DB interface to AutoCad (visualization and graphical editing) for analysis and manipulation.

Activities: Data sets from a Street- and Drain-DB were visualized and edited with AutoCad.

IT-Environment: MS-Dos, ANSI-C++ (Watcom), dBase DB, AutoCad (MS-Dos), RCS (MKS), Make (MKS), Unix env. (MKS/GNU/Linux)


08/1994 - 12/1994 Software Consultant: Industry

Project: C++ Training

Activities: ANSI-C++ Training 1-2 times weekly.

IT-Environment: ANSI-C++, Teaching with MS-Dos and Borland-C++ 4.0


04/1994 - 08/1995 Software Engineer: Prekwinkel AG

Projects: CAM tools, compiler construction, CNC-Format conversion, geometry & process CNC editing, DB interface.

Activities: Designed & realized a DSL compiler for custom programming of CNC machines including geometry & process optimizations. Used generic hash-lists incl. quick-sort pass, dereferencing symbolic objects allowed complext high performance scripts. The compiler generated byte-code structured in an Abstract Syntax Tree (AST).

Wrote an CNC crosscompiler based on above DSL compiler. Scripts written for this DSL module processed a universal CNC-Format (FXM) and translated them to machine specific CNC-Formats.

DSL compiler was also used to implement different CNC filters for analysis and geometry enhancements, as well as to optimize machine-cycles.

Demonstrated superior Genetic Algortithm for route & tool-change optimizations.

IT-Environment: MS-Dos, Unix, ANSI-C++ (Borland 4.0, Watcom, GNU-C++), Lex Yacc (MKS), RCS (MKS), Make (MKS), Unix-Env. (MKS/GNU/Linux)


02/1994 - 05/1994 Software Engineer: S&P Media

Project: Cross compiler from SET-PR (SDL) to SDT-PR (SDL)

Activities: Developed a Specification-Description-Language (SDL now UML) Cross Compiler from SET-PR to SDT-PR, as well as of SDL-PR to ANSI-C. The task was solved by using LEX, YACC and an ANSI-C Compiler of a SUN- and HP-Workstation.

IT-Environment: Sun- u. HP-Workstation, ANSI-C, LEX u. YACC, Make, Korn-Shell


01/1994 - 03/1994 Research Scientist: University of Applied Sciences

Project: Solution- and optimizing system

Activities: Development of an OO Genetic Algorithm to solve P and NP problems. Sample applications Missionary and cannibals (game simulation), as well as distance (travel-salesman) optimization.

IT-Environment: Unix, MS-Dos, ANSI-C++ (Borland 4.0), RCS, Make


03/1993 - 07/1993 Research Scientist: University of Applied Sciences

Project: Specification and documentation of parallel Processes.

Activities: Translation of SDL-PR to SDL-GR (Graphic Display) for MS-Windows. Development of protocols for ISDN and Ethernet using SDL.

IT-Environment: MS-Windows, Unix, C++ (Borland 3.1 - Windows), ISDN, Ethernet, SDL


06/1992 - 02/1993 Research Scientist: University of Applied Sciences

Project: ScanArts - GUI for manipulation of scanned mathematic 2D formulas (described in c't 1993/09).

Activities: Performed graphic programming on MS-DOS and MS-Windows. Implemented general Drag and Drop, Pixel-chain scanning, fill algorithms, drawing of Lines and circles, Matrix rotation and transformation as well as Techniques for reversible graphical editing (undo). Co-author of publication Mathematic User Interface with Recognition of two-dimensional Formulas1. My additions here were the chapters Graphical Editing of Graphic Formulas as well as User Interface for ScanArts to Maple Algebra Program.

IT-Environment: MS-Dos u. -Windows, ANSI-C (Borland 3.1, BGI), MapleV, Word 5


06/1992 - 09/1992 Software Engineer: Industry

Project: Porting a quick-Basic application to Turbo-Basic

Activities: Build translator converting quick-Basic to Turbo-Basic. Implemented own lexical state machine, similar to LEX.

IT-Environment: MS-Dos, ANSI-C, Basic


next up previous contents index
Next: Skills Up: Profile Previous: Resume / CV

2024-11-23