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
- Realtime operating systems
- Internationalization (i18n) and localization (l10n)
- Virtualisation
- HPC
- POSIX/SUS standards
- Desktop environments and usability
- Artificial intelligence ("Cyc")
- MPEG
- Unix
- Solaris/UNIX operating system development
- Linux operating system development
skills
- Various programming languages including
- ISO C/C17
- ISO C++/C++17
- Fortran
- JAVA
- JavaScript
- Pascal
- perl
- REXX
- PowerShell
- 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 (e.g.
UTF-8 , GB18030 , ...)
- localisation(=l10n)
- internationalisation(=i18n)
- realtime programming
- regular expressions in various flavours etc.
- Identity Management Software ("IDM"), including APIs and protocols like...
- Unix system programming, including inner workings of libc and system interfaces
- Unix adminstration
- Windows programming, including
- Userspace
- Kernel
- Generic kernel APIs
- Win10 filesystem driver APIs (RDBSS)
- cdb/WinDBG kernel debugger
- NFSv4.1 filesystem, including
- Windows NFSv4.1 filesystem driver, including
- Kernel driver
- Userland daemon+utilities
- Test suite
- Release management
- Creation/maintenance of documentation written in DocBook/XML
- Languages:
- German
- English
- Ukrainian (currently learning)
experience
- ROVEMA - Software Engineer Embedded Real-Time systems
July 2021 - present
- Eckelmann AG - Senior Software Engineer Embedded systems
February 2018 - June 2021
- 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
|