Resume
Roman Kennke Obere Gasse 6 77972 Mahlberg Germany* 26.05.1978 https://rkennke.wordpress.com/ ![]() roman@kennke.org ![]() |
Experience
- February 2012 until now: Principal Software Engineer at Red Hat.
- July 2010 to November 2011: Consulting for Hays CH, contracting for JP Morgan Chase technology group in Geneva, Switzerland, in the Wealth Management Group. My role is that of a Software Architect in the Core Components team of the Wealth Management group that delivers common software components to all the business engineering teams. Part of my job is also to be Advocate for Agile Software development practices: I educate the teams about writing clean code, software design patterns, test driven development, continuous build/test/integration, code reviews, secure coding practices, SCRUM, modern, secure and agile SDLC and more. Another side role is that of Application Security Champion, to scan and check software code for potential security vulnerabilities and ensure code quality. This overlaps in parts with my ambassador for good software development practices.
- February until now: Co-founder and co-maintainer of the IcedRobot project. Goal is to port the Android framework on a Java VM.
- June 2009 until July 2010: Fulltime employment as Software Engineer, Java Platform at Sun Microsystems.. Responsibilities include work on Java WebStart, the Java Applet and JavaFX plugins, implementation of new server for JRE AutoUpdate, maintaining the JNLP download servlet as well as contributing to Java2D.
- 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 May 2009: 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.
- General performance engineering and maintainence of the Jamaica
- 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.
- Implemented much of
- 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
- July 2010 until now: Consulting at Hays CH, contracting for JP Morgan Chase, Geneva Switzerland, Wealth Management Group.
- 2009 Birth of Selma, my 3rd child
- June 2009 until June 2010: Fulltime employment as Software Engineer, Java Platform at Sun Microsystems
- 2008 Birth of second child
- April 2007 until May 2009: 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++, Scala, Assembler (x86, 6502),
Python and Perl. - Operating
Systems: Extensive knowledge of Linux, FreeBSD and NetBSD, Solaris and Windows, MacOS X - Programming environment: Emacs, Eclipse, Netbeans, Maven, Jenkins/Hudson, TeamCity, Crucible, Continuum, 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 organized task for students and trainees at aicas. 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. At JP Morgan, I also became an advocate for professional and agile software engineering practices, like writing clean code, software design patterns, test driven development, continuous build/test/integration, code reviews, secure coding practices, SCRUM, modern, secure and agile SDLC and more.
- Specialities: I proud myself of practicing strong values regarding software engineering. I highly value proper architectures, usage of established software patterns, writing clean code, advocate test driven development, and agile engineering practices in general. To me, those values are not unnecessary overhead, but quite the opposite, they are the way to sustainable productivity and high quality software. I also have a strong focus and good experience on usability in user interfaces.
My most useful skill however is my curiousity and the ability to learn new things quickly.
Languages
- German native speaker, very fluent English
Publications, Talks and Articles
- 2009 JavaOne: Caciocavallo: Portable GUI backends for OpenJDK.
- 2009 FOSDEM: Caciocavallo: Portable GUI backends for OpenJDK.
- 2008 FOSDEM: OpenJDK experiences.
- 2006 A series of articles on automatic
hinting of TrueType fonts - 2006 FOSDEM Free
Swing, Past Present and Future - 2004 German Online
Research Hidden data collection on
the internet - 2004 Coauthor of Knowledge-Based
Selection of Association Rules for Text
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.
Dear Roman,
Have just discovered Xebece and will be testing, “sandboxing” (is this idiom, “sandbox” as noun and verb re software testing, familiar to non-native English speakers? Alas, I have no German nor Russian – like most Americans).
In any case, I’m playing with it – and would like, if you don’t mind, to do a short interview at some point.
Jon Soroko
http://www.discoverystrategistblog.com/
(as well as others, http://popularlogistics.com)
P.S. I absolutely agree with your point about the need for space for free software AND paid software. I’d go further and analogize it to biodiversity – we need free, commercial, expensive, cheap, and maybe even some closed-source software co-existing with open-source. Oversimplification – your comments can be seen as an argument against oversimplification.