I possess over 30 years of experience in software engineering and
provide support for the entire QA,
Process
&
Lifecycle,
as well as in C, C++ and Java, including their cross platform application.
Custom fields & languages are studied and applied on demand.
I enjoyed full-time employment at Sun Microsystems (now Oracle) and ATI (now AMD) at their headquarters, thereafter I continued working as a contractor.
I served a broad range of companies, such as Zafena, Mathworks, Google, Harman/Becker, Siemens AG Munich and IBM Frankfurt.
Besides working on proprietary products, open source artifacts
are released as well.
I have extensive knowledge in the embedded space, computer graphics & multimedia,
compiler
construction,
networks & bluetooth,
cryptography,
driver development, algorithms and high performance solutions.
Systems I have worked with include GNU/Linux, BSD, Darwin/OSX, Windows,
QNX, Android, iOS, Zephyr and bare-metal embedded devices via VxWorks, Keil, etc.
The most prominent project I work on is JogAmp,
where I help clients adopting JogAmp and implement commissioned features.
Within JogAmp I also work on GraphUI,
a cross-platform UI utilizing our own resolution-independent GPU curve renderer,
suitable for desktop and embedded devices.
Presentations: Latest Blogs, JavaOne 2008, Tegra-1 Video Demo,
Siggraph[2010, 2011, 2012, 2013, 2014],
Fosdem[2013, 2014].
Please find a few notes on some of my other latest projects:
Additionally I run a little computer-science class, currently covering C++ basics, gfxbox2, hanoi, pacman
and gentech, a genetic algorithm solver.
I utilize a diverse set of tools to cover the project life-cycle:
GIT
for decentralized source control;
Bugzilla
for requirement management, 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.
***
Around 1981, I learned programming at the age of 13 on a TI-57, VIC-20, Commodore 64 (C64)
and later Amiga 500
using Basic, 6502 & 68k assembly and C with the Lattice C Compiler. My early hacking on the C64 in 6510 assembly included copy-programs, an index database and notorious sound & graphics effects.
I also coded a working IRQ-based preemptive multitasking scheduler on the C64 for a never finished core wars
programming-game variant as inspired in 1984 by A.K. Dewdney.
Until I could afford my own computer, a C64, I enjoyed involuntary pair programming in local department stores with kind minded. The latter had been a source of inspiration and allowed us to exchange information in the pre-internet age where pen & paper, tapes and floppy disks ruled.
I work as a contractor since taking up my engineering studies in 1991,
interrupted during my employment at ATI & Sun.
The self-employment led to postponing the graduation into 1998.
My experience in C++ dates back to 1993, where I started with Bjarne Stroustrup's Design and Evolution of C++.
At first I used C++ in a CAD/CAM project including a DSL compiler for custom CNC programming.
I utilize g++ with sanitizer, valgrind, clang, clang-format, clang-tidy, and other tools for code validation performance analysis.
I have learned Java from the beginning in 1996, initially used in a project for MVC business-logic separation and automated UI generation
At ATI and AMD I lead the development of the Embedded Display OpenGL driver in 2005,
where I 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.
I enhanced the driver performance about factor 2.5, targeting functional driver blocks like TLS, inlining,
caching, dispatch table, stream copy, etc.
At Sun I lead the refactoring of the New Java Plug-In
with JNLP support
in 2007 and later demonstrated an AWT-less proof-of-concept Plugin 3, intended for a relaunch of Java on the desktop and mobile devices. I also contributed to a new experimental JavaFX platform, utilizing hardware accelerated rendering (OpenGL, OpenMax, ..). As a result, I added a platform independent windowing architecture
with mobile
and OpenGL profile
support to JOGL, which later became part of the independent JogAmp project.
I hold a degree in electrical engineering with a focus on computer science, Dipl.-Ing. (FH) - Diplom Engineer, Applied Science - MASc equivalent, conferred upon me by the Bielefeld University of Applied Sciences, Germany in 1998.