Bertrand Delacrétaz

Bertrand Delacretaz, picture by Stefan Wieland I've been working since 2010 for Adobe‘s Basel office in Switzerland, as a Principal Scientist in the Adobe Experience Manager Sites team.

Links

This mostly means acting as an internal consultant on software architecture, implementing prototypes and proof of concepts and helping define the future direction of our products. I’m also heavily involved in promoting Open Development and Open Source internally.

Since late 2022 I'm spending a good portion of my time explaining and promoting the Web Platform. My Web Platform is Back blog post explains why, and most of my prototypes and example are available as part of the Adobe Web Platform Zoo.

I am a long-term Member of the Apache Software Foundation and spent 14 terms on its Board of Directors between 2008 and 2024.

I’m a somewhat active committer on the Apache Sling project and have been involved in many ASF projects since the year 2000: Cocoon, FOP, Solr and as an incubation mentor for (at least) Wicket, Pig, Tika, ESME, ACE, Clerezza, DeviceMap, Flex, Unomi NetBeans, OpenWhisk and Baremaps. I have some projects on GitHub as well.

More about myself - if you care

I joined Day Software in 2007 and that company was acquired by Adobe in 2010. Before that I was independent for 18 years, see below for a summary of what happened in that period (spoiler: lots of fun things!).

I’m a regular speaker at tech conferences and have spoken at ApacheCon, adaptTo(), FOSDEM, Devoxx Paris, Paris Open Source Summit, BlendWebMix Lyon, Berlin Buzzwords, Transfer Summit and various CQ-related conferences, often on topics related to how open source communities work, on software simplicity and quality or on technical topics around Sling, OSGi and JCR.

Until I move them here, you can find slides at http://www.slideshare.net/bdelacretaz/, some with linked videos. More info, video recordings, interviews and guest blog posts are linked from my pressbook.

I live in the French speaking part of Switzerland, on the South coast of Lake Neuchâtel.

If you are wondering how to pronounce my name, you’re not alone and you can hear me say it at the beginning of the "shared neurons" video below.

Contacting me

  • Mail bdelacretaz () codeconsult (.) ch works.
  • I'm @bdelacretaz@fosstodon.org on the Fediverse, which is my primary professional network.
  • And also @bdelacretaz on Twitter, which I'm just using for broadcast-style announcements nowadays. Twitter is dead, right? It's not even called Twitter anymore.

Photo and short bio

A resolution headshot of myself, by Stefan Wieland (many thanks!) is available here.

Here’s my current “official” bio, for conferences and the like.

Bertrand Delacretaz works as a Principal Scientist in the Adobe Experience Manager R&D team in Basel, Switzerland, using open source tools to create world-class content management and digital marketing systems. Bertrand is an active member and Director of the Apache Software Foundation, PMC member and incubation mentor.

PGP key fingerprints

5EFF 2565 85AC 5FB6 07F6 D46A 77B6 B69A 9E4D CC6B
bdelacretaz@apache.org – CODE SIGNING KEY – created 10/2009

9E2F 96C6 40A0 731D 93BF 548E 37F6 8FF5 015A FC8A
bdelacretaz@apache.org – old key, still valid but deprecated

My current work

People often ask why I went back to employee status after being independent for 18 years. The main reason was the opportunity to work on much larger projects at Adobe than I could do before in a small team. And the team that I’m part of is quite a challenging one to work in, in a good sense: those folks are great and keep you on your toes! Even if many of them are half my age…...well, sometimes even a third of that nowadays.

Another recurring question is what does a Principal Scientist actually do? I suspect there are at least as many answers to that question as there are Principal Scientists, but to give you an idea here are the kind of things that generally keep me busy these days:

  • Helping define software architecture, mostly by creating specifications, prototypes and proofs of concept. I consider myself a hands-on software architect, being a fan of working (even if vastly incomplete) code over slides. Along with the Edward Tufte style of diagrams that help describe complex topics and being a big fan of simplicity, which takes work and a willingness to burn the extra baggage along the way.
  • Coding framework or library modules, typically small/focused server-side modules that help make other developers more efficient. The Apache Sling Repository Initialization module is one such example, where I wrote a large part of the code and designed the domain-specific language that it uses. Getting contributions from several people to whom I only had to give minimal explanations is very rewarding and a good validation of a clean design. Design in which the Sling community was involved of course, that’s the power of such projects!
  • Writing technical documentation and blog posts for these modules, leaning heavily on readable tests to communicate the details. I believe in documentation that focuses on the high-level concepts, along with automated tests for all the detailed information, as a way to create accurate and sustainable documentation.
  • Participating in industry groups. As of 2023 I'm focusing on the Web Platform and starting to be more involved in related activities.
  • Coaching teammates in terms of software quality, code readability,
    automated testing that makes sense etc.
  • Presenting at conferences as well as customer and user group meetings – my pressbook has more info about that. For the tech-oriented topics I often use this as an excuse to try wild experiments and report on their success or failure in a way that helps others learn from that.
  • Enjoying all of it and aiming to remain a hands-on software craftperson. Attempts to turn me into a manager have been unsuccessful so far and I don’t think that will change!

A lot of this is about empowering software developers by helping them create robust and meaningful software.

As you can imagine by reading this list I am a generalist who likes to change gears and topics regularly, as opposed to someone who’s very deep in a single technology. I think you need both styles in a team and I’m happy to act as a liaison between specialists and take a more holistic view on things.

Interests

wordle-bd.250.jpgThis section was written around 2010 and, interestingly, it’s still totally relevant for me more than ten years later.

I like to design and write modular, reliable and meaningful software. Did you read the inmates are running the asylum? If not you should. Software and high-tech devices should be made for users, not the opposite.

I use Open Source tools and contribute to Open Source projects whenever possible.

I’m a firm believer in the Open Source development model as the best way to build reliable software. There’s space for closed software as well, but only in very specific situations, and even then the Open Source development model can be very successful, right here inside your company. Many of my conference presentations are about that.

I like to work with lightweight tools and systems, and make it as simple as possible – but no simpler (the quote is not from me).

Of course I have favorite technologies and tools as well, but they come second to the “primary mission” of creating useful things that actually work.

Apart from all that technical stuff, the diversity and multi-cultural aspects of our work are very important to me. I guess I'm into pragmatic diversity, ignoring barriers and refusing to be influenced by what could divide us.

Fun stuff

If this was a resumé there would be a “hobbies” section, right?

So here we go:

Musician's Institute graduation, Spring 1989

Back in 1988 I attended the one-year Percussion Institute of Technology class at Musician’s Institute in Hollywood, California. Studying with people like Joe Porcaro (the father of the Toto brothers) and Ralph Humphrey (who plays on Al Jarreau’s “This Time” album for example), among others, was an incredible experience. Improvising with a trusted group of musicians has lots of parallels with creative software development.

I currently play drums (a fantastic Whitney Drums kit) and percussion with the Joyful Buskers and since 2024 I'm working on fabricating kazoo that sound awesome.

In 2011 me and my wife climbed Mount Kilimanjaro with a group of friends, on the day of our 25th wedding anniversary! If you’re looking to do that our movie will give you a feel for what it’s like. Only one in our group of nine didn’t suffer, and it’s not me, but the whole experience was very worth it!

Later that year we cycled the Danube river, from Ulm in Germany to Vienna, Austria. A great cycling holiday, easy terrain, great scenery and very safe all along the way, you could even do it with kids. That movie is a bit tongue-in-cheek but gives an idea of what it’s like. I’m cycling all year using a fun and very efficient electric-assisted bike, and it’s my primary way to go places, combined with our fantastic Swiss trains. As someone said, cycling regularly makes you happier, healthier and with more money in your pockets, way to go!

I got my international sea sailing license (ICC) in 2015, sail regularly on Swiss lakes and at sea, including some occasional racing like on the historic Pen Duick II. Good design stands the test of time, there’s a lot to learn by sailing on a 50-years old boat that still keeps up with the best in terms of holding up to serious weather. I’m also involved as a skipper and flotilla master for a local association that organizes sailing camps at sea for young people.

Archeological section!

Working as an independent, from 1989 to 2006

Here are a few projects that have been milestones in my career as an independent, back in the days.

This stuff is getting quite old now, so unless you’re into archaeology I guess you can skip this section.

Solr indexer evaluation, customization and implementation

I have implemented a rich navigation system for videos using the Lucene-based Solr search server for a major Swiss media group.

This involves gathering data from various sources, transforming to a common XML indexable model (XSLT), writing glue scripts to trigger automatic index updates, extensive testing on a variety of search use cases, and coordinating a small team to make it happen.

Interface modules created for this project have been contributed to the Solr project.

Technologies: Solr, XML, XSLT, Linux scripting

Articles, talks and workshops

The most current information about this is in my pressbook.

I gave talks at the Cocoon GetTogether 2003 and at lots.ch in 2004, about how to use lightweight tools (bugzilla, CVS, mailing lists, wikis, weblogs) to efficiently coordinate software teams. They have been well received, people tend to agree that The Open Source collaboration model is very useful for all kinds of projects, open, closed or even not software related.

I’m the original author of the Supersonic Tour of Apache Cocoon interactive tutorial, which gives an overview of the Cocoon Power Trio: Pipelines, Flow and Forms.

In 2006 I wrote an Introductory article about Solr for xml.com.

My other talks at the Cocoon GetTogether 2004, 2005 and 2006, and at the ApacheCon EU 2006 conference have also been well received, slides and/or papers are available online, recent slide decks on slideshare.

Since 2007, I’ve been speaking regularly at various events, including the ApacheCon, Jazoon, and OpenExpo conferences.

Bioinformatics: validated interpreter for DNA analysis

In 2005, I worked as Java architect and consultant for a genomics and bioinformatics company.

Working in collaboration with biology specialists, I have designed, implemented and tested an interpreter for a domain-specific language, to derive drug resistance recommendations based on DNA samples.

This involved very extensive automated testing (using JUnit and custom testing software) to validate the results against tens of thousands of reference samples, with 100% coverage and success requirements.

Another part of this contract was the support of the R&D team in the use of collaboration tools: CVS, bugzilla issue tracker and wikis.

Technologies: Java, JavaCC, JUnit, Ant

Cocoon-based CMS for the Nouvo TV show

Launched in September 2004 for the Swiss national television , www.nouvo.ch was backed, at that time, by a lightweight content management system that I designed and implemented with a small team, based on Apache Cocoon.

The nouvo CMS is used by journalists to very quickly create and publish multimedia stories, easily managing different variants of media files to publish the content on both the web and on mobile phones (wap.nouvo.ch).

The development cycle was fairly short, about seven weeks of programming work in total, first myself for three weeks to do the infrastructure and then four weeks with three additional programmers. Using the lightweight team coordination tools mentioned below proved once again to be a lifesaver with such a tight schedule.

Cocoon has shown its power as a very powerful and flexible framework to build this kind of system, and applying the simplest thing that works principle all the way through translates into a very usable and stable system.

Development of this system and website is ongoing, including video forums as mentioned above.

Technologies: Cocoon, Java, OJB, XSLT, MySQL, Linux

Linux-based interactive movie theatre

In 2003 I designed an implemented a Linux-based interactive movie theatre for the exhibition L’Histoire c’est moi, which was still touring Switzerland in 2008. There’s more info about it on this blog. The system has been running very reliably from day one, people are happy!

Technologies: Linux, Java, Flash, BeanShell

300-user planning and workflow system

From 1998 to the around 2005 I’ve been working (on an off) as lead architect and programmer for a planning and workflow system for the Swiss Federal Chancellery. This is a 300-user system, not too complicated in functionality but requiring high availability.

It’s been interesting to evolve this from scratch in an iterative way, and seeing users and project managers convinced of the release early, release often principle.

This included starting the Open Source jfor project, an XML-to-RTF converter which was later integrated into FOP.

Technologies: Java, Enhydra, Cocoon, XSLT, FOP, jfor, SQL Server

Teaching software engineering

In 2002 I was contracted by EPFL for a practical software engineering class, where students worked in teams of five to design and implement a simulation game in Java.

It was very rewarding to see students open up to the world of real projects as opposed to textbook examples, and this started my interest for tools and techniques which make project teams work.

This followed another assignement at EPFL in 2000, where I taught web-applications modules and coached student’s projects as part of a postgraduate course named tools for PC and Internet applications.

I was also a regularly external teacher at comem.ch: XML, XSLT, Cocoon, web technologies, content management and student’s diploma work coaching.

verbalix

In 1998 and 1999 I was co-architect for this java-based audio recording, workflow and content management system, used by the Swiss Parliament to very quickly (while meetings are still going) publish the minutes of the Chambers on the web (“Amtliches Bulletin”). This system has received two prizes for its innovative design and functionality, and is still going strong with very little maintenance.

After that, I helped bootstrap the IT-Processing company, which is selling the system and has created lightweight derivative products based on the same technology.

Technologies: Java, RMI, XML, Enhydra, SQL Server

CuriaVista

In 1997, as Java was still in its infancy, I designed and co-implemented the CuriaVista system, also for the Swiss Parliament, to generate searchable HTML pages from a legacy database.

This included implementing a custom JDBC driver, page-generation servers and a custom multilingual query language (we speak four languages here in Switzerland), interfaced with a commercial search engine.

This is still running today, has required very little maintenance and has since been ported to a more modern database by the internal team.

Technologies: Java, JDBC, Servlets, Basis Plus, Microsoft Index Server

Wide-area data acquisition and visualization

From 1993 to 1996, I redesigned and did most of the implementation of a data acquisition and visualization system used for road management in counties, airports and sometimes whole countries.

This involved portable software (Unix and Windows) for data acquisition, storage and GUI, and the implementation of several data communications and network protocols.

This system has been installed all around Europe, and is still used in several installations, with minor changes and very low maintenance requirements.

Technologies: C++, Unix, XVT portable GUI toolkit

Punching machine for street organ music

In 1991, I designed and implemented the control software (and part of the electronics – I started as an electronics engineer) for this machine. Starting from standard MIDI files, this computes the required hole positions and punches the cardboard music roll to recreate the music when played on the street organ.

This was my first C++ project, and led to teaching C++ in companies and schools from 1992 to 1999.

Technologies: C++, Visual Basic (frontend)