Lead jgroups-raft |
2014-2023 |
Red Hat, Kreuzlingen, Switzerland |
-
Designed and implemented jgroups-raft.
This is a complete Raft implementation in Java based on JGroups.
-
Worked with the Infinispan team to integrate this for their CP part (currently: counters).
|
|
Lead JBossCache |
2003-2006 |
JBoss, San Jose, California and Kreuzlingen, Switzerland |
-
Designed and implemented JBossCache. Uses JGroups to replicate and
distribute its contents to a cluster. Included JTXA support, security, encryption etc.
-
Used by JBoss Clustering (JBoss Application server).
-
Predecessor to Infinispan).
|
|
Lead JGroups |
2003-present |
JBoss (2003-2006) / Red Hat/IBM (2006-2016/2019) / IBM (2025-present), San Jose CA and Kreuzlingen, Switzerland |
-
Lead developer of the JGroups project, used for clustering in the
JBoss application server, cluster communication in
Infinispan and Keycloak.
-
Interactions with the Infinispan and Keycloak teams to advise on their use of JGroups, performance tuning
-
Designed RELAY-X suite of protocols as basis for Infinispan's
cross site replication.
-
Designed
IRAC
used to replicate data modifications across geographically separate sites. Eliminates the disadvantages of
synchronous replication (latency) while keeping most of the advantages (reliability).
-
Created a performance testing framework to test
replicated/distributed caches. Run periodically on different clouds for Infinispan.
-
Consulting with customers regarding their use of Infinispan / JGroups and performance tuning.
-
Mentoring, both in-house and externally (universities).
-
Evangelization, speaking at conferences (JavaOne, Jazoon, JBossWorld, Red Hat Summit etc).
-
Holder (single or shared) of 17 patents
|
|
|
|
Principal Software Engineer |
2000-2003 |
Fujitsu Network Communictions, San Jose, California |
|
Network Management Systems |
|
-
Design and implementation of a management framework for Network Management
System (NMS). Includes activation, monitoring and restarting of (failed)
servers. Project based on CORBA/Java.
-
Design of High Availability (HA) architecture for NMS. Involves data replication
and failover of crashed management servers to geographically distant backup
server(s). Co-lead for overall project.
-
Used and further developed the JGroups open source project
|
|
|
|
Post-Doctoral Researcher |
1997-1999 |
Computer Science Dept, Cornell University, Ithaca NY |
-
Designed and implemented a reliable group communication toolkit (JGroups)
(Java). Implements fault-tolerance through redundancy: service requests
are sent to a logical group of servers instead of a single server. As long
as at least one server in the group is functioning, the service as a whole
is available.
-
Focus on reusable object-oriented building blocks for group communication,
especially for protocol development
-
Advisor to several student projects using JGroups: distributed whiteboards
including chat and video/audio streams, RMI extension (modification of
rmic to broadcast requests to groups instead of single servers), Multi-User
Dungeons, total order protocol
-
Teaching CS courses
|
|
Researcher |
1994-1997 |
IBM Research Laboratory, Zurich, Switzerland |
Network Management Group |
-
PhD thesis on CMIP/SNMP/Corba based network management
(C++). Use of various different management models (SNMP, CMIP, Corba) through
a Corba-based unified model (client side). Implemented by parsing model
definition (e.g. SNMP MIB, CMIP GDMO/ASN.1) into a metadata repository,
dynamic access at runtime by metadata use and adapters (e.g. Corba's Dynamic
Invocation Interface).
-
OSI TMN/6000 CMIP agent development toolkit (C++). Implemented saving an
agent's MIB to persistent storage using ObjectStore's OODBMS. Collaboration
with ObjectStore on implementing very large MIBs (hundreds of thousands
of objects). This work resulted in an IBM product (TMN/6000, part of NetView/6000).
-
Conducted performance study on how the TMN/6000 agent scales to multiprocessor
systems (SP2, SMP). Suggested improvements to development division (IBM
Networking Division, Raleigh).
|
|
Knowledge Engineer |
1992-1994 |
Intelligent Systems Engineering AG, Taegerwilen, Switzerland |
-
AI-based configuration management software product (C++). Guided user-performed
configuration of complex products by capturing configuration rules/dependencies
as AI rules. Final configurations are correct in that they satisfy all
rules.
-
AI-based error diagnostics software product (C++). User is guided through
fault-trees in diagnosing a problem and correcting it.
|
|
Co-op |
1989-1992 |
IBM, Zurich, Switzerland |
-
Design/implementation of a dealer commissioning system (C++, DB2). Data
is entered into local DB2 database and periodically uploaded to MVS DB2
database. Implemented GUI (OS/2 presentation mgr), DB2 database access
and host access (HLLAPI).
|
|
Assistant Teacher |
1988-1989 |
Detroit (MI), St. Cruz (CA) |
-
International exchange program, teaching German at HS level
|
|
Programmer |
1985-1986 |
Swiss Army |
-
Replicated databases for intelligence-gathering (MS SQL Server, C++, Visual
Basic). Intelligence (flight tracking data) gathered at various outposts
is replicated into central DB, where data mining extracts essential information.
Implemented entire system, replacing old Access-based system with MS SQL
Server.
|