Roland Sebastian Mainz

Monroestraße 23
35394 Gießen
+49 641 399 279 7
roland.mainz@nrubsig.org

profile

Software engineer with Unix system administration skills, specializing in Solaris, high-performance-computing as well as internationalization and localization; experienced with leadership in various open-source projects

interests

  • Research - finding new, innovative solutions (and implementing them)
  • Parallel and distributed computing
  • Internationalization (i18n) and localization (l10n)
  • Virtualisation
  • HPC
  • POSIX/SUS standards
  • Desktop environments and usability
  • Artificial intelligence ("Cyc")
  • MPEG
  • Unix
  • Solaris/UNIX operating system development

skills

  • Various programming languages including
    • ISO C/C11
    • ISO C++/C++11
    • Fortran
    • JAVA
    • JavaScript
    • Pascal
    • perl
    • REXX
    • Unix shells (ksh88/ksh93, bash, original bourne shell (bsh))
    • Various POSIX/SUS utilities, including awk, join, grep, sed, sh, tr, etc.
  • POSIX/SUS application programming, including
    • threads
    • multibyte character support
    • localisation(=l10n)
    • internationalisation(=i18n)
    • realtime programming
    • regular expressions in various flavours etc.
  • Identity Management Software ("IDM"), including APIs and protocols like...
      Kerberos5
      GSSAPI
      LDAP
  • Unix system programming, including inner workings of libc and system interfaces
  • Unix adminstration
  • Creation/maintenance of documentation written in DocBook/XML
  • Languages:
    • German
    • English
    • Ukrainian (currently learning)

experience

  • Eckelmann AG - Senior Software Engineer Embedded systems
    February 2018 - present
     
  • Consultant - Identity Management+LDAP+Kerberos 5
    October 2015 - January 2018
     
  • RedHat - IPA/Identity Management+Kerberos 5
    August 2014 - September 2015
     
  • Lead Researcher at MAINZ & Partner - IT Consultants
    January 2011 - July 2014 (3 years 7 months)
     
  • Project lead of the ksh93-integration, POSIX utility modernization and shell projects at OpenSolaris.org
    February 2006 - December 2011 (5 years 11 months)
     
  • Engineer at Sun Microsystems
    2008 - 2008 (less than a year, then moved to SUN's opensolaris.org project)
     
  • X11R6.8.2 release manager at X.org
    September 2004 - May 2005 (9 months)
     

specifics

  • X.org:
  • OpenSolaris.org:
    Work had been divided into three (related/interwinded) projects:
    • ksh93-integration (integration of ksh93)
    • modernise/migrate /usr/bin/ksh from ksh88 to ksh93 level
    • POSIX modernisation (modernise SystemV/SCO-derived POSIX utilities to a new and maintained codebase based on AT&T's AST POSIX utilities, including features common on both GNU and BSD implementations)
    Tasks included:
    • Integration of ksh93 into the Solaris operating system core, see PSARC-EXT/2006/550, PSARC-EXT/2006/587, PSARC-EXT/2007/035, PSARC-EXT/2008/094, PSARC-EXT/2008/344, PSARC-EXT/2009/063, PSARC-EXT/2009/248, PSARC-EXT/2009/249, Phase II completed: 12/27/2008)
    • Implemented prototype of |posix_spawn()| syscall as optimisation over the traditional |fork()|+|exec()/|vfork()|+|exec()| combination with significant scalabilty and performance benefits (e.g. no crosscalls to other CPUs required to first create and then tear-down the MMU page mappings of a forked process child, far far less locking overhead, less memory usage; pure execution of /usr/bin/true on a 256way (SPARC T3) machine was improved 4.7 times)
    • Implemented prototype for a new kernel memory allocator system to seperate temporary from long-term allocations, with significant reduction of heap fragmentation and major improvements in performance, locality and usage of large MMU pages
    • Implementation of busybox-style standalone utiltiy to access AT&T AST/ksh93/libcmd POSIX utilities.
    • Migration of existing POSIX utilities in Solaris to the new AT&T AST/ksh93/libcmd implementations:
      • Testing, testing, testing
      • Find missing command line options or functionality (often multibyte support)
    • Implemented kernel module to recognise and execute compiled shell code (similar to Solaris's javaexec and Linux binfmt)
    • Implemented |wordexp()| from scratch... the old version used a hidden command line option in ksh88 to implement the functionality, the new version uses a pure POSIX shell/ksh93 script without depending on extra code in the shell interpreter. 2nd implementation was provided which uses libshell (ksh93 provided as shared library) to avoid extra |vfork()|+|exec()| overhead
    • Helped with porting OpenSolaris to the S380/S380x and ARM platforms
    • Testing:
      • Coordination with Solaris PIT (=PreIntegration Testing)
      • Weekly meetings with PIT
      • Providing regular test binaries for PIT
      • Release management
      • Provided test modules for each bug reported (testing the original issue and variations)
      • Code review for changes in PIT infrastructure
      • Migration guidelines
      • POSIX/SUS VSC conformace testing, coordination, integration of bug fixes
    • Implementation of ksh88 to ksh93 migration tools, including:
      • shell script lint
      • automatic conversion of scripts
      • guidelines for portable (POSIX, ksh) shell scipts
      • guidelines for performance tuning
  • AT&T AST:
    • Designed and implemented a prototype of a threaded version of ksh93, mostly designed along the design of pthread (e.g. the |pthread_create(1)| shell builtin calls a given shell function etc.)
    • Contributions+extensions to various parts of the ksh93 language, including:
      • Support for handling complex trees of variables (create, move, copy, search, destroy, etc.)
      • better floating-point math support, e.g. support correct serialisation of IEEE754 binary values through printf %a/typeset -X floatvar (=ISO C99 hexfloat) and back, supply all math functions in (( expr )) mandated by POSIX for ISO C99 etc.
      • Support for structured communication between scripts through pipes/fifos/sockets/files, via print -C/read -C to serialise variable trees and read them back, reduces overhead (no explicit parsing), improves flexibility with backwards-/forward compatibilty with scripts/utility communication (has similarities with JSON+XML I/O but Unix/Linux/POSIX oriented with far less overhead)
      • More POSIX shell builtins
      • Realtime signal (SIGRTMIN-SIGRTMAX) support
      • Various improvements&&fixes to i18n (=internationalisation) support, including test modules and syntax enhancements for non-UTF-8 locales (such as GB18030)
      • Various improvements&&fixes to l10n (=localisation) support, including test modules
      • poll(1) shell builtin as aid to write server/client applications in ksh93
      • Implemented various code related to O_XATTR (extended attributes) support through cd -@ and /proc+/dev/fd
      • Implemented prototype for multithreading
      • SCTP support
      • Implemented prototype of IEEE 754 NaN "payload" support
    • Optimisations of the shell interpreter itself:
      • major performance improvements by doing profiling, usage and behaviour observation (through syscalls/truss/dbx/gdb/valgrind/Rational purify etc.) and then doing optimisations accordingly
      • GB18030 locale certification work (this includes proper character set, iconv, libc multibye API, font support validation etc.)
    • Misc work, including:
  • Mainz&&Partner:
    Development and research projects, including:
    • Maintaining build&&development machines based on OpenSolaris, Illumos and OpenIndiana
    • Various development projects for Mainz&Partner:
      • NFSv4/Kerberos5 infrastructure testing
      • Consulting work for Solaris/Illumos
      • Filesystem test suite for ZFS and NFSv4
      • Medica Media:
        • Development of a presentation system for the Medica fair to demonstrate the usefullness and integration of mobile devices based on Android&co. into daily hospital operations.
        • Presentation system based on Android
        • Adoption of the Android emulator for demonstration/fair usage
      • QMS/BDT:
        Goal is to get a lightwheight set of data interchange formats which can be used for medical device to medical device or medical device to PC communication, with functionality similar to HL7 while being more practical, lightwheight and real-world oriented.
        Tasks include:
        • Prototype implementation and evaluation of components
        • Automated testing
        • Automated software certification
  • redhat.com:
    Research and development on Identity Management Software ("IDM"), including...
    • Kerberos5 ("krb5") authentification and encryption:
      • Bugfixing, maintenance, software liftcycle and release management
      • End-user/customer support and support calls
      • Further development of LDAP backend support for the krb5 server
      • Structured logging support via "journald", associated complex query and test infrastructure
      • Enhancements for i18n support in krb5 infrastructure
      • Performance, load and timing-insensitive test infrastructure
      • Documentation
    • GSSAPI:
      • General GSSAPI improvements
      • Enhancements on a GSSAPI proxy deamon
      • Performance, load and timing-insensitive test infrastructure
      • Documentation
    • LDAP (client and server):
      • Bugfixing, maintenance, software liftcycle and release management
      • End-user/customer support and support calls
      • General improvements for GSSAPI authentication
      • Enhancements for i18n support in LDAP infrastructure
      • Performance, load and timing-insensitive test infrastructure
      • Documentation
  • miscellaneous work:

  • Gießen, April 2018