My name is Bertrand Delacrétaz and I am currently working for Adobe‘s Basel office in Switzerland, as a Principal Scientist in the Adobe Experience Manager and Adobe Experience Cloud teams.
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.
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 am a long-term Member of the Apache Software Foundation and currently (2021-2022) also a member of its Board of Directors, on my tweflth term. I’m an active committer on the Apache Sling project. I’ve been involved in many projects there since year 2000: Cocoon, FOP, Solr and as an incubation mentor for (at least) Wicket, Pig, Tika, ESME, ACE, Clerezza, DeviceMap, Flex, Unomi NetBeans and OpenWhisk. I have some projects on GitHub as well.
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. Slides at http://www.slideshare.net/bdelacretaz/, some with linked videos. More info, video recordings, interviews and guest blog posts are linked from my virtual pressbook at pinboard.in.
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 a recording of one of my talks.
Mail bdelacretaz () codeconsult (.) ch works and I’m @bdelacretaz on Twitter.
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 former Director of the Apache Software Foundation, active committer on the Sling project, and involved in a number of other Apache projects as a committer, PMC member and incubation mentor.
PGP key fingerprints
5EFF 2565 85AC 5FB6 07F6 D46A 77B6 B69A 9E4D CC6B
email@example.com – CODE SIGNING KEY – created 10/2009
9E2F 96C6 40A0 731D 93BF 548E 37F6 8FF5 015A FC8A
firstname.lastname@example.org – old key, still valid but deprecated
My current work
People often ask why I went back to employee status after being independent: the main reason is 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…
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.
- 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 virtual press book 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.
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.
If this was a resumé there would be a “hobbies” section so here we go:
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.
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.
1989 to 2006 – working as an independent
Here are a few projects that have been milestones in my career as an independent.
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
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.
Articles, talks and workshops
The most current information about this is at https://pinboard.in/u:bdelacretaz/t: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.
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.
http://www.nouvo.ch, Cocoon-based CMS
Launched in September 2004 for the Swiss national television , www.nouvo.ch (available in French only) is backed by a lightweight content management system that I designed and implemented with a small team, based on 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.
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 my weblog. The system has been running very reliably from day one, people are happy!
300-user planning and workflow system
From 1998 to the present 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.
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 also teach regularly at comem.ch: XML, XSLT, Cocoon, web technologies, content management and student’s diploma work coaching.
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.
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.
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.
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.
That’s it – thanks for reading!