Peter Bernard West

4/20 Livingstone Street
Qld, Australia
+61 7 3848 6029
+61 4 3166 5100 (m)

Open Source Development

I have invested considerable time and effort in developing Open Source software, primarily in implementing the W3C Recommendation XSL (Formatting Objects) with Apache FOP, Folio and HyFo, but also in a Linux printer driver and a core task contribution to Apache Ant.

Work History

2007/11 to present NEHTA, Brisbane. Software developer. Permanent
Work on implementation of Web Services standards for e-Health and ancillary support functions.
· WSDL-based Web Services implementations using Glassfish and Metro.
· Generation of Word 2003 documents from Enterprise Architect using Saxon XSLT 2.0.
· Ant build and Subversion source control support.
2007/07 Sun Microsystems. OpenJDK contributor. Implemented RFE 6410729 Add BitSet.previousClearBit, previousSetBit. These additional methods in the class java.util.Bitset will be available in Java 7.
2006/02 to 2007/02 H-P Labs, Bristol. Software developer. Contract
Work on the text layout and PDF generation components of the experimental Document Description Framework. <http://www.hpl.hp.com/techreports/2005/HPL-2005-223.html>. DDF is written primarily in XSLT 2.0, with integrated Java components. Redesign of paragraph layout based on my Folio design notes. <http://defoe.sourceforge.net/folio/knuth-plass.html>
· Rework existing code.
· Design of paragraph layout component based on Knuth model.
· Implement text layout component around Java 2D facilities.
· Integrate existing open source Java libraries.
· Creation of special-purpose fonts with FontForge.
· Integrate Java components with XSLT 2.0..
· Integrate font processing between Java 2D and PDF using iText and PDFBox.
· Evaluate iText, PDFBox and FOP Transcoder for PDF output.
2006/02 to 2007/01 Folio Project, HyFo sub-project. Software design and development.
Design, development and release of HyFo <http://defoe.sourceforge.net/hyfo/hyfo.html> hyphenation module for Folio <http://defoe.sourceforge.net/folio/folio.html>.
· Develop an implement re-spelling hyphenation model.
· Introduce full XML hyphenation pattern and modifier definitions, extended from TeX hyphenation patterns.
· Introduce Darcs as the primary Source Code Management system for Folio.
2006/01 to 2006/02 Folio Project, Knuth line-breaking. Software design.
Design of Java2D-compatible general paragraph line-breaking algorithm. <http://defoe.sourceforge.net/folio/knuth-plass.html> The design builds on the Knuth-Plass line-breaking algorithms of TeX. This design was later implemented as part of the Data Description Framework. (See above.)
2005/11 to 2005/12 Gandlake Ltd, Newbury, UK. Document developer. Contract
Business process consultancy & PDF production from XML. Redesigning the workflow to incorporate iText PDF manipulation and reduce design time for complex form layouts.
· Write XSL-FO stylesheets.
· Evaluate iText.
· Business process re-design introducing iText for PDF merging.
2005/10 to 2005/11 Folio Project, Persistent configuration. Software design and implementation.
Re-design the configuration of Folio to use the Preferences API.
· Provide persistent configuration profiles.
2005/07 to 2005/09 Folio Project, Random access to serialized objects. Software design and implementation.
· Design and develop tools to provide random access to serialized objects. Primarily for use with a single session, this provides for the recovery and reprocessing of object streams which have exceeded in-memory buffer capacity.
2005/06 Standard & Poor's, Melbourne (Brisbane based). Document developer. Contract.
PDF production from XML.
· Design XML input format.
· Write XSL-FO stylesheet.
· Generate PDF.
· Evaluate Apache FOP, Antenna House XSL Formatter & RenderX XEP.
· Conducted by tele-commuting.
2005/02 to 2005/05 Redesign of XSL-FO property processing in Folio. Software design and implementation.
· Redesign properties handling around typesafe enums.
· Rename Defoe to Folio. Make necessary changes to repository and HTML support documentation.
· Introduce BitKeeper as Source Code Management software.
2004/10 to 2004/12 Defoe Project, Fork from Apache FOP. Software design and implementation.
Fork Project Defoe from Apache FOP Alt-Design branch. Convert from Java 1.4.2 to Java 5.0.
· Set up SourceForge repository.
· Convert from Java 1.4.2 to Java 5.0.
· Revise code wherever possible to make use of Generics, Typesafe Enums, and other Java 5 language features.
2003/07 to 2003/09 Typéfi Systems. Sunshine Coast, Qld. System designer. Permanent.
Page layout system design and Linux administration.
· Set up and maintain Linux server.
· Set up Bugzilla bug tracking.
· Set up CVS repository.
· Set up XPlanner project management environment.
· Investigate Scarab issue tracking.
· Set up MySQL environment for Bugzilla, XPlanner and Scarab.
· Set up Samba for Linux XP network integration.
· Investigate Microsoft Word 2003 XML facilities.
· Investigate Xml Schemas and Relax NG.
· Develop Relax NG schemas for layout system data transfers.
2001/02 to 2003/06 Apache FOP, Properties re-design. Software design and implementation.
Re-design the property processing front-end of FOP.
· Condense representations of many property elements.
· Design and implement pull-parsing for front-end XML parsing. This implementation pre-dates the general introduction of StAX parsing by more than 4 years.
· Demonstrate 50% decrease in property processing time over main branch.
2001/08 Apache Ant, fixcrlf core task re-write. Software design and implementation.
Design and implement a Ghostscript driver to enable Lexmark 5000 use with Linux.
· Fix problem with tabs embedded in Java string constants.
2000/07 to 2000/11 IONA Technologies, Dublin. Build engineer. Contract.
Porting Orbix 2000 for Java to Tru64 platform.
· Trouble-shooting migration of C++ and Java components of Orbix 2000.
· Use of Clearcase development environment.
· Adjusting imake build environment.
· Shell (bash) and perl scripting.
1999/11 to 2000/04 Linux distributions, Lexmark 5000 printer driver. Printer driver design and implementation.
Design and implement a Ghostscript driver to enable Lexmark 5000 use with Linux.
· Reverse-engineer Lexmark 5000 protocol.
· Develop, release and support driver with associated configuration scripts.
1998/08 to 1999/04 CITEC, Brisbane. Systems Administrator. Contract.
Unix tool development and Systems Administration.
· Tools development in ksh, perl and expect.
· Documentation systems development in SGML using sgmltools package.
· Retro-fit of Solaris Enterprise Volume Manager 2.5 to production system.
· Solaris 2.6 installation, administration and tuning.
· Frequent hardware upgrades.
1995/12 only Department of Family Services, Aboriginal & Islander Affairs, Brisbane. Contract.
Development of Domain Name Service tools
· Design of tools in perl on Solaris 2.3 to assist in the transition of the FSAIA network to DNS.
1995/06 to 1995/07 A-Z Tech Pty Ltd, Brisbane. Software developer. Contract.
Software development
· Design and development of Microsoft Access Basic 2.0 modules for the synchronisation of initially identical Access databases independently maintained at unconnected sites.
· Manipulate existing databases to transparently create, maintain and delete synchronisation databases, using the Data Access Object facilities of MS Access.
· Create full help system using ForeHelp 1.0 .
1994/02 to 1994/10 DEVETIR, Information Technology Branch, Brisbane. Systems management. Contract.
(Department of Employment, Vocational Education, Training and Industrial Relations)
Systems Management Consultant
· Set up initial Oracle configuration item database for UltraComp Red Box configuration management, change control, help desk and problem management software.
· Migrate Red Box software.
· Plan migration of help desk facilities to Red Box.
· Develop and install comprehensive procedures for UltraComp alert management software.
· Liaise on software version control.
· Evaluate Athene capacity planning software for use in both long-term capacity planning and short term capacity troubleshooting on Unix servers.
1993/04 to 1993/12 CITEC, Brisbane. Systems Administrator. Contract.
Unix tool development and Systems Administration
· Writing and maintaining administration scripts in sh and perl.
· Development of a cross-platform general-purpose performance graphing package.
· Development of embedded documentation systems for source code.
· Development of revision control mechanisms, compatible with quality standards, for various forms of text files, based on rcs.
· Developed and delivered training programs on Unix basics and Unix utilities for other new and existing members of the Unix support group.
· Cross-platform Unix systems support.
1990/08 to 1993/04 DEVETIR, Information Technology Branch. Systems Administrator. Contract.
Unix systems administration & network consultancy
Division of Workplace Health and Safety
· Unix systems support for a state-wide Oracle application and development environment, supporting up to 100 concurrent users.
· Support of developers using Xterms.
· Definition of framework for source code version control of large application development environments.
Finance Branch
· Support for implementation of a new client/server on-line revenue system.
Information Technology Branch
· Provided consultancy to the Branch on strategies for enhancing existing IEEE 802.3 (Ethernet) 10base5 backbone and various 10base2 sub-networks.
· Suggested fibre-optic backbone with the just-defined 10baseT for floor systems.
· Developed a model for saturation 10baseT wiring based on small zones with wiring redundancy.
· Drew up detailed plans, and supervised the installation of 10baseT wiring.
· The planning method I developed was adopted for subsequent refurbishments in the Department.
1990 Telecom Australia, Brisbane. Analyst/Programmer. Contract.
· Low-level C code for in-house SCADA (System Control And Data Acquisition) systems on PCs.
1989 to 1990 Alcatel-STC, Brisbane. Senior Analyst/Programmer. Permanent.
· Development in C on Golden Casket Gold Lotto project for the primary contractor.
1989 Bell Page Pty Ltd, Brisbane. Analyst/Programmer. Contract.
· Multi-thread communications protocols for message paging system.
1988 to 1989 Elpro Technologies Pty Ltd, Brisbane. Project Leader, Analyst/Programmer. Contract.
· Defined, and lead the team developing, the first Unix implementation of Elpro's remote telemetry systems using C.
· Defined graphical interface and high-level hardware control and monitoring logical expressions language.
1987 to 1988 RSM Research Pty Ltd, Brisbane. Analyst/Programmer. Permanent.
· Designed a report generator and designed and coded custom extensions in C to the control system for intelligent cash registers.
1984 to 1987 Incitec Limited, Brisbane. Technical Programmer. Permanent.
· Implemented ICL CO3 bi-sync communications protocol on NEC APC II microcomputers, primarily in C and assembler. This product supported multiple terminal screens.
· Wrote VDI device drivers for H-P plotters.
1974 to 1984
Ampol Refineries, Brisbane. Analyst/Programmer. Contract.
QP Business Machines, Brisbane. Software manager. Permanent.
University of Queensland, Department of Animal Production, Brisbane. Analyst/Programmer. Permanent.
Adler, Brisbane. Programmer. Permanent.
Nixdorf Computer, Brisbane. Trainee Programmer. Permanent.