Resume

Roman Kennke
Obere Gasse 6
77972 Mahlberg
Germany* 26.05.1978
https://rkennke.wordpress.com/
roman@kennke.orgView Roman Kennke's profile on LinkedIn

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.
  • 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

  • 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

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.

One Response to Resume

  1. 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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: