Curriculum Vitae
Name: Han-Wen Nienhuys
Nationality: Dutch
E-mail: hanwen@xs4all.nl
Objective
To simplify complex problems.
Professional interests
Software design and implementation, mathematical modeling techniques, numerical algorithms, linear algebra, music representation, digital typography.
Formal education
Engineering degree in applied mathematics (MSc equivalent, cum laude). Technical University Eindhoven, 1998. Graduation topic: analysis.
ASCI Course on Visualization and Virtual Reality, 2001. (ASCI is a Dutch graduate school)
Expert in: program design, coding and software engineering.
Programming language experience: C (1991-now), C++ (1996-now), Python (1998-now), Scheme (2000-now), Java (2000-2002) years, Quill (2004; Certified Quintiq Specialist).
Working knowledge of: Unix programming, Emacs, OpenGL, Java3D, Autoconf, Make, HTML, (Fedora) Linux, CVS, darcs, LATEX, METAFONT, Cocoa development, PostScript, Pango, SVG, PDF, LISP, Unicode.
Languages: Dutch (native), English (fluent, readingand writing), Portuguese (speaking fluently, reasonable reading) German (reasonable reading), French (basic reading).
March 2007-present
March 2005-August 2006
April 2004-February 2005
Consultant Advanced Planning & Scheduling and Software Engineer, at Quintiq Applications B.V.
Junior researcher at Utrecht University, Institute of Information and Computing Sciences.
Research assistant/PhD. student at Utrecht University, Institute of Information and Computing Sciences.
Intern at the R&D department of Océ-Nederland B.V., writing software to simulate heat diffusion.
Teaching assistant for undergraduate courses in imperative programming and data structures (1998-2001).
Refereed for Algorithmica, special issue on shape algorithmics (2002), IEEE Transactions on Visualization and Computer Graphics (2004).
Open source:
LilyPond, http://lilypond.org: automated professional music typography. Design, implementation (80kloc C++, 23kloc Scheme, Python, METAFONT), cooperative development, automated testing, quality assurance, user support, documentation, web-site design, and scientific dissemination.
2006
GUB, a cross-compilation environment under Unix for creating and distributing binaries for MacOS, Windows and Unix. Design, implementation, cooperative development, quality assurance. (Python, autotools, darcs, git).
1999-2002
Salmon, Bazzoen, Artisjokke: interactive finite element simulations for tetrahedral meshes using non-linear elasticity. Design, implementation (C++, OpenGL), and validation. Sole author.
A rewrite of a mark & sweep garbage collector for a Scheme interpreter (C). Accepted into GNU GUILE distribution. Sole author.
Meshugge: cutting in Delaunay triangulations. Design, implementation (C++, OpenGL) and scientific dissemination. Sole author.
Reimplementing Makefile function-calls (C), adding support for $(call) and $(if) functions. Accepted into GNU Make distribution. Sole author.
Rayce: a ray tracer. Design, implementation (C and C++) and documentation. Sole author.
Miscellaneous tools and patches: darcs2git (convert Darcs to git repositories), mftrace (trace Metafont bitmaps into scalable fonts).
2004
Adapting a prototype OO model for road-transport to a real world situation, and successful roll-out with a customer. OO Design, performance troubleshooting, customer contact, UI design. Work in cooperation with a Business Consultant.
Waddif: simulation of heat-diffusion in layered media. Design, implementation (C and LINPACK) and validation. Sole author.