Share Knowledge, Create Synergy, Exceed Expectations
Jan writes his first programs at age 13 in 1981: Tic tac toe, Pong and a racing game on the Exidy of his physics teacher. During his final high school years, he works on bigger software projects such as a functional copy of Dino Eggs in assembly. Also during his studies Applied Physics (TU/Eindhoven) Jan keeps on programming and there he comes across the intriguing phenomenon of free software.
Near the end of his studies Jan writes several experiments with music notation software that finally spawn the renowned free software music notation package LilyPond of which he is core developer and co-founder.
Right after graduating he starts working as Software Engineer at internet startup DigiCash and continues his career at various software companies in different roles. Jan gathers extensive knowledge of Linux and free software, not in the least due to the continued development and professionalising of LilyPond.
In 1997 Jan is invited by Richard Stallman to join his venerable GNU project. LilyPond becomes part of GNU, the free and open reimplementation of Unix.
GNU LilyPond becomes unique and famous for its automated and high quality layouting and is highly praised. Talks on LilyPond are presented by Jan and other LilyPond developers at several computer music and open source conferences (LAC 2001, 2004, 2008, 2010; LSM 2003, 2010; CIM 2003; FISL 2007). The work on LilyPond has led Jan to write patches for 15+ packages in the free software stack and work with different open source communities.
Starting with SLS and Slackware Linux in 1994 and working professionally with various Linux distributions ever since, Jan has over 16 years of professional experience with IT architecture and software development, application use, integration and management and system administration. Later he also works as Software Engineer in a world wide team for Novell on Go-OO.org, the pre-LibreOffice community-friendly distribution of OpenOffice.org.
From working in different environments, from highly structured corporate software projects to internet startups and research environments, corporate open source projects and his own open source projects, Jan has gained a broad experience in software practises, procedures and processes.
As a SCRUM master (certified in 2005) and Agile team leader, Jan has found that Agile practises, especially eXtreme Programming and SCRUM fit very well with his experience from open source style of project management and they often complement each other.
Jan is good at and likes the challenge of producing exactly the software that the user or client wants and at the same time be time-efficient and create a flexible, maintainable code base. In his experience, when working with or in a team, great works can be made and most difficulties can be avoided by aptly directing attention to relationships and communication.
Team Leader/Project Manager: experience with open source (10+ years) and Agile (2+ years) project management: SCRUM and eXtreme Programming, user stories, task breakdown, burn-down graphs, generating GANTT charts, rapid prototyping, short and very short iterations (from one week to half a day), Test Driven Development (TDD), writing functional design, coding standards, steering code reviews and pair programming, handling code ownership
Process Manager: 12+ years experience writing and updating procedures from experience, scripting procedures, evolutionary process improvement, 2+ years in Agile retrospectives, changing team dynamics, team coaching and personal coaching (Non-violent communication)
Personal Coach: 6+ years as an Avatar® master delivering the 9-day world wide, life-changing consciousness training, guiding people in creating their preferred reality
IT Architect: 17+ years experience architecting music notation software, multitasking/multi threading, real time embedded and critical web applications
Quality Control: 10+ years making and testing software releases and regression testing, unit testing, micro testing, automated builds, version control systems
Software Engineer/System Developer: 23+ years experience in code design, implementation, ruthless refactoring and maintenance across many languages especially: C, C++, GUILE Scheme (lisp), Java, PHP, Python. Also: font design, language design, cross-build system setup, system admininstration and packaging
Assembly (1984--1992), BASIC (1981--1985), Bash (1994--now), C (1992--now), C++ (1994--now), Fortran (1987--1991), Java (2001--2005), JavaScript (2000--2005), Pascal (1985--1993), PHP (2000-2001), Python (2000--now), GUILE Scheme (2000--now)
See also Language Experience on Ohloh open source statistics.
Han-Wen Nienhuys and Jan Nieuwenhuizen, LilyPond, a system for automated music engraving, Proceedings of XIV Colloquium on Musical Informatics, Firenze, Italy, 2003
A.D. Schwarz-van Manen, A. F. M. Van Geloven, J. Nieuwenhuizen, J.C. Stouthart, K. Krishna Prasad and F.T.M. Nieuwstadt, Friction velocity and virtual origin estimates for mean velocity profiles above smooth and triangular riblet surfaces, Journal of Applied Scientific Research, vol. 50, nr 3-4, May 1993
Jan Nieuwenhuizen, LilyPond -- Running A Free Software Project, ATOS Origin TA/IPS, KLOS 5, Veldhoven, Netherlands, 2007
Nieuwenhuizen, J.C. and Nienhuys, H.-W., MPP, a MusixTeX PreProcessor, The LaTeX Graphics companion, 1996
J.C. Nieuwenhuizen, An object-oriented model for EPEP, Master's thesis, Eindhoven University of Technology, Netherlands, 1995