Resume
Experience
- November 2008: Port Java2D on DirectFB, a framebuffer API. I started out with a fully working prototype in one day. This was only possible because the Caciocavallo project (see below) provided a solid foundation for the AWT stuff around, this is also true for the WindML port.
All the remaining work was bugfixing and performance optimization.
- October 2008: Port Java2D on VxWorks/WindML. It was easy to get it running and a bit tricky to get it fast, due to some limitations in the WindML API.
- September 2008: Won bronze prize of the OpenJDK Innovators Challenge for the Caciocavallo - Portable GUI backends project. Caciocavallo tries to make porting of AWT and Java2D to new platforms as easy as possible, for example, by implementing all AWT widgets using Swing.
This project is beeing continued until now.
- April 2007 until now: Fulltime-employment at aicas GmbH as a software engineer. Aicas is the vendor of a realtime
Java VM, the Jamaica VM. My responsibilities include:
- General performance engineering and maintainence of the Jamaica
VM.
- Active involvement and contribution to OpenJDK. This includes developing
OpenJDK features, fixing problems, exchanging
patches as well as communication with the OpenJDK team and community.
- Implement and maintain AWT/Java2D backends for a variety of
platforms, including DirectFB, X11, GTK, VxWorks/WindML, NanoX and
more. Jamaica VM supports graphics on most of its supported
platforms. I help porting and extending graphics backends and am
generally responsible for all things graphics.
- I manage transition from CVS to Mercurial as source control
system. In the past we have been using CVS for source control. I am
organizing the transition to Mercurial, a distributed and more
modern source control system. This includes creating the necessary
infrastructure (repositories, backups, auto-builder), training
co-workers and communication with the Mercurial community.
- Manage transition from GNU Classpath to OpenJDK as class
library for the Jamaica VM. In the past, GNU Classpath has been
used as basis of Jamaica's class library. We are now moving to
OpenJDK. It is my responsibility to manage the transition, port
native code to all of Jamaica's supported platforms and update the
infrastructure to be usable with OpenJDK.
- Implement and maintain OpenGL APIs for Linux and VxWorks (and
others to come), based on JOGL and Escher.
- April 2007 Diploma Degree on optimizing JamaicaVM's Java interpreter. I'm
applying certain interpreter optimization techniques, like
superinstructions, different dispatchers etc and observe the impact
that these show in performance, with attention to a variety of
embedded platforms (i.e. with small cache).
- 2006 Implemented automatic hinting for
TrueType fonts for GNU Classpath. I adopted the algorithms used in
FreeType to avoid the patented TrueType instructions to Java, with
special attention to performance issues. This means almost zero
allocations and fixed point arithmetics throughout.
- 2006 Implemented scanline converter for GNU Classpath to render arbitrary shapes in various settings.
- 2006 Implemented HTML
renderer for GNU Classpath's Swing implementation. This
implementation is based on CSS2. It covers everything that is covered
by Sun's JDK6, i.e. simple text formatting, lists, images, tables,
frames and forms. It even excels in a few of areas, like some CSS2 features and improved table layout.
- 2005 until now: Working at aicas GmbH:
- Implemented much of
GNU Classpath's
Swing and AWT libraries, making them generally usable. This effort was supported by the GNU Classpath community, most importantly by Red Hat employees as well as a few individuals.
- Implemented and improved AWT/Graphics backends for various platforms, including Linux, VxWorks, Windows CE and OS9.
- Working on Escher and
a set of Escher-based AWT peers for GNU Classpath, implemented
completely in Java.
- Drastically improved performance of GNU Classpath's Swing.
- Generally working in both the VM itself as well as the class
libraries, including several performance improvements and
bugfixes. This provided me we an in-depth insight in both C and Java
programming.
- Maintaining contact to the GNU Classpath community. This includes
merges between Classpath's and Jamaica's repositories in both
directions as well generally communicating with the community.
- 2004 Implemented Ontographics visualization tool, later published
as Xebece. This allows for
visualization of huge data sets in a very appealing way, showing only
the important data at any one time.
- 2004 Implemented a standalone application for Knowledge Tracking,
used in Knowledge-Based
Selection of Association Rules for Text.
- 2003 University Freiburg, Institute of Cognitive Science:
Implemented web based Knowledge Tracking tool version
2. Knowledge Tracking is an exciting technique for analysing
sequential symbolic data, for example plain text or data recorded from
human-computer interaction.
- 2002 University Freiburg, Institute of Cognitive Science:
Implemented and maintained several web based data collection and data
mining tools. This included web based questionnaires as well as tools
to analyze the incoming data. The biggest challenge probably was to
handle the amount of data and to separate the 'good' data from the
noise.
Biography / Education
- 2008 Birth of second child
- April 2007 until now: Fulltime employment as software engineer at
aicas GmbH
- April 2007 Degree (german diploma) in computer science, University
of Applied Science Karlsruhe, Germany
- 2005 Employed by aicas GmbH as software developer
- 2001 Begin study at University of Applied Science Karlsruhe,
Germany
- 2000 Employed by University Freiburg, Germany
- 1999 Begin study at University Freiburg, Germany
- 1998 Civilian service in Cottbus, Germany
- 1997 Passed university entrance qualification with special focus
on maths and english in Cottbus, Germany
Skills
- Programming
Languages: Extensive knowledge of Java, C, C++, Assembler (x86, 6502),
Python and Perl.
- Operating
Systems: Extensive knowledge of Linux, FreeBSD and NetBSD, average
knowledge of Windows and MacOS X
- Programming environment: Emacs, Eclipse, Netbeans, Unix tools, Ant, make, etc.
-
Teamroles:
I did pretty much all the team roles; the two most common are Programmer and Senior Software Engineer. I also organize task for students and trainees in the company where I'm working now (aicas GmbH). I like to move between projects or switch roles on the same project. This gives me a good overview of the organisation I am working for and the product that has to be delivered.
-
Specialities: I think I'm quite good at graphics programming, both high level, like widget programming, Swing, etc., and low level, like how to turn on the correct bits in a framebuffer to draw a shape. And I'm a bit of an optimization freak, I want thing to be implemented in the most efficient and beautiful way.
My most useful skill however is my curiousity and the ability to learn new stuff quickly.
Languages
- German native speaker, English, Russian
Publications, Talks and Articles
References
... are available on request. I don't want to publish contact information of 3rd
parties online.
If you are interested in more personal and informal information about me, you might want to check out interests and my blog.