My main software development activity is my contribution to the OCaml language implementation. I try to help other contributors in the OCaml community have a good experience by helping with the triaging of bugs and review and integration of patches, or verifying the impact of new OCaml releases on existing libraries and packages.
Contributing to the OCaml project is deeply enjoyable as a free software programming experience. For me, it also serves two orthogonal purposes. First, it is a regular source of questions, discussions and ideas about programming languages in general, either theoretical and practical aspects, that is a source of inspiration for my programming language research. Second, it lets me keep in touch with the realities of developing a relatively-large project within a relatively-large team of contributors and relatively-rigorous engineering practices -- I believe that is a valuable source of inspiration to understand and improve the experience of programming in general.
Starting around 2013, I have become the de-facto maintainer of ocamlbuild, one of the build systems used to build OCaml projects -- see the Overview Section of the ocamlbuild manual for description and alternatives.
I am also one of the maintainers of the Batteries OCaml library, a community-developed extension to the (admittedly minimal) OCaml's standard library.
Interesting alternatives are Simon Cruanes' Containers library, and Jane Street's Base and Core libraries.