Skip to main content

About Me

You might have landed on my page because you have seen software written by me. I admit it. I am a strong free software supporter.

Free Software

I have no underlying theory or ideology, why I do so. I just like to take things apart, especially when they don't work as intended. Free software allows me to do so. Sending a quick patch to the maintainer for a fix is something gratifying, because you know that somebody else will profit from your work.
While I have never been payed for any of my free software work, I have always been fortunate enough that I can cross-finance my passion for software with other activities. The result is that Google finds my name about twenty thousand times, mostly in free software related content.

Professional

I have two very distinct and different professional periods in my life. The first starts of as a consultant of a small family owned consulting company in Vienna and sometime in 2008, I became its general manager. The company focused on project work, ranging from warehouse logistics to data analysis of goods movements to production cost planning. While running a company and acquiring projects was sometimes stressful, the role allowed me to travel extensively, and during project-free time, I could enjoy a great work-life balance.
The second half and larger part, I spend working for Google Switzerland. In 2011, I joined as Site Reliability Engineer and found myself promoted to Senior Software Engineer at the end of my time there. I was close to payments production systems, fraud detection in particular, followed by big data products. I was the production tech-lead for Dataproc. I left Google in April 2017 to become an entrepreneur.

Academia

TU LogoAs Master of Science, I am an alumuns of the Vienna Univeristy of Technology. My major was Computer Science & Economics. My diploma thesis was nominated best of Summer 2005 by the faculty of Computer Science. It is concerned with hard disk encryption and builds the theoretical foundation of LUKS. Google Scholar lists my thesis as the most relevant paper written when searching for "hard disk encryption".

Cryptography

Safe lock I consider LUKS to be my biggest contribution to the free software world. LUKS is a hard disk encryption standard for Linux. With the first proof-of-concept published in 2004, LUKS quickly gained adoption among all Linux distributions. As of today (2017), the Debian and Ubuntu popularity contest report a 2.5%-5% regular usage of LUKS among their users. I expect this numbers to be similar across all Linux distributions. With around 100 Million Linux users world-wide, this would put the LUKS installation base somewhere between 2.5 Million and 5 Million.
ESSIV is another contribution. It is a simple hardening scheme to obfuscate the IV in CBC. ESSIV is used by all Android devices reaching potentially many millions of people.

Programming Languages

While I am not dogmatic about programming languages and while I am happy to pick up a new one over a rainy weekend, my favorite is still Lisp. S-Expression are simple and beautiful, easy to parse and surprisingly flexible. With Liskell, I created an S-Expression based representation of Haskell, which was surprisingly natural to use. I hold the believe that this can be done to any language, and put all languages onto the same parser.

Recreational

Go Board with stonesI enjoyed playing Go also known as the Game of Baduk (13-14 Kyu European Rating). I run, swim, cycle, and -- as my nationality requires -- ski.

Popular posts from this blog

Liskell standalone

Some time has passed since I last blogged about Liskell. It is not dead nor have I changed my mind that Haskell needs a proper meta-programming facility not to mention a better syntax.Liskell was a branch of GHC once. Now it sits on top of the GHC API, or I should rather say sneaks behind its back as it creates its own API as the original one is not suitable for the stunts I'm interested in. If Liskell sticks with GHC as its soil, I will definitely send patches upstream to refine the GHC API in the areas where it needs more flexibility for Liskell. However for the moment, my main target was to get something out that compiles with a stable version of GHC.You can grab it with the usual: darcs get http://code.haskell.org/liskell/ This version has been tested with ghc 6.10.1 and should install like: ./Setup.lhs configure ./Setup.lhs build ./Setup.lhs install cd LskPrelude make install-inplace Optionally you can run make tests in the testsuite subdirectory. Thanks to community.haskell…

XMonad GridSelect

Personally, I not just need a window manager, I need a focus manager. I tend to think of windows as TODO items, and as there are many TODOs in life there are many windows on my workspaces. Usually a fraction of that can't be closed or worked on immediately, so they linger around on my desktop, cluttering my workspace.I used to use the Tabbed layout. But Tabbed isn't the answer when you are a guy who reports bugs such as "XMonad 0.6 with Tabbed dies when firefox-session-restore slams 40 windows at once on the desktop". In other words, I use a lot of windows. The workspaces concept isn't particularly useful to me either. My mind just doesn't work with mental boxes. So the result is, that I have too few workspaces with too much windows on them, so that Tabbed has trouble displaying useful window titles, and navigating through them is slow and cumbersome (mostly because tab switching generates a lot of useless X Expose events).GridSelect is my answer to that. It…

Removing CHS based access from windows boot loaders

Recently, I had troubles to migrate my Windows installation from VMWare to VirtualBox. When booting the vmware created partition in virtualbox, I got "NTLDR not found". So I sharpened the knives and got down to business with vmware's gdb interface and virtualbox's internal debugger. Tracing the execution showed that the BIOSes of the two products reported different geometries on the INT 13h interface. The generic method contained in the boot loader to read a sector from disk is "clever" as it checks whether the sector is below the maximum sector index that is reachable with the CHS geometry reported by the BIOS. If not, it uses the LBA interface of the BIOS. If yes, the cleverness of the boot loader suddenly vanishes. Instead of using the BIOS reported geometry to break the absolute sector down into its CHS components, the boot loader uses a geometry stored in the so called BIOS parameter block. That's a section of the first sector embedded into the boo…