Jonathan Coxhead

San Carlos CA 94070
+1 (650) 594-1769

A software engineer and system architect who excels at the design and coding of large or complex software systems, particularly with a mathematical content, either alone or as part of a team; and who has a record of developing imaginitive ideas and taking them from conception to completion based on a tenacious commitment to satisfying the project requirements.

Skills

20 years of experience covering all aspects of software engineering: gathering of requirements, design (OOD), implementation (OOP), debugging, testing, documentation (formal and informal) and support.

Many languages including C, C++, perl, sh, Java, Tcl/Tk, SQL, UML, FORTRAN (66/77/90), TriMedia assembler, ARM assembler, HTML, awk, sed, TEX, Pascal, yacc/bison, make/gmake. Systems including UNIX/Linux, Windows (Win32), COM, VMS, VxWorks, pSOS, X Window System, RISC OS. Computer aided software engineering utilities including cvs/rcs, emacs, Doxygen, dot, Continuus, Code Manager, Toolpack/1.

Highlights of accomplishments

Education

MA in Mathematics, 1984 (University of Cambridge, England)
2-year entrance scholarship to Peterhouse, Cambridge
4 A levels; 2 S levels; 11 O levels

Nationality

British citizen and permanent resident of the USA with right to work (“green card”)

Employment history

Philips Semiconductors, San José, CA (1998–present)

Philips Semiconductors is the part of Philips responsible for the TriMedia DSPCPU, which is used in Philips and Magnavox digital media consumer electronics. Software development is done against a background of multithreaded systems involving multiple asynchronous communicating hardware and software components communicating in complex ways in an embedded environment, so there is the continuing challenge of avoiding deadlock, data loss, high or unpredictable response time, race conditions, re-entrancy problems, maintaining awareness of possible priority inversion, memory, reference-count and other resource leaks.

Responsibilities

My main task was the development and maintenance of TSSA. This included: deriving formal specifications (formulating pre- and postconditions and UML descriptions) from existing code; proposing new developments by writing detailed design documentation for management approval; levelising, refactoring and redesigning existing code; and implementing new features. I also wrote introductory documentation, introducing new users to the concepts involved.

Design and coding of test software, with an emphasis on “completeness” in some appropriate domain. This led to some interesting use of certain integer sequences, (eg, 1, 3, 13, 75, 541, ... the “preferential arrangements” of n objects). Designing and providing a suite of makefiles to run all tests as regression tests without user intervention. Performance testing.

System libraries I designed included

Design contributions and some maintenance work on ...

Preliminary conceptual design work on

Ported various 3rd-party software to the Philips TriMedia DSPCPU, including: operating system pSOS, networking (TCP/IP), device driver software, Personal Java, DNS, PPP.

General helpfulness—eg, a C comment stripper, a utility to move source files under source control from SUN Code Manager into Continuus, a LOC counter and differencer.

Contributions to Philips-wide guidelines on issues such as coding conventions, error handling and good style.

Travelled for work to Eindhoven (Philips Software Conference), Toronto (client support and training), Hamburg (team communication).

Origin (1995–1998)

Origin is a software consultancy company, and is responsible for my move to the US. During one particular year, I was the engineer who attracted the highest billable revenue.

Responsibilities

Set-top box browser development—table layout, input and textarea controls, audio rendering.

Design and coding of an audio device driver to play audio files in various PCM formats, concurrently with web downloading.

Acorn Computers Ltd (1989–1995)

Acorn was a major player in the UK Personal Computer market, competing with Microsoft and Apple. They designed the chip (ARM), wrote the OS (RISC OS) and system software, and a few applications too. They no longer exist, though their spin-off, ARM, has been very successful.

Responsibilities

Design and coding of applications and system components: a fast renderer for the standard graphical data format, a dialogue box and library for colour selection, a HyperCard-like application, internationalisation facilities.

Design of a new application suite (to replace the somewhat cobwebby offerings then provided): an editor for mixed text and graphics, a personal organiser application, a small cardbox-style relational database, and a world map for timezone selection.

Consultation with other software engineers on design, maintenance and coding problems.

Supporting the developer support department (particularly in the area of graphics); offering technical advice to customers at trade shows; and responding to problems and enquiries from our users.

FEGS Ltd (1984–1989)

FEGS (“Finite Element Graphical Systems”; now TranscenData Europe Ltd) was in the CAD/CAE market. Their key product, FAMBUILD, was an interactive finite element preprocessor containing many CAD-like features in addition to its main capabilitiy of “meshing” a 3-dimensional model into the large number of finite elements which are then used by a structural (or other engineering) analysis system.

Responsibilities

All my software projects at FEGS were concerned with FAMBUILD. It is written in portable FORTRAN-77, and any new machine or operating system dependencies required implementation on a variety of model hardware. I contributed to the design and implementation of:

Design of:

Management of maintenance of the product, including bug-fixing and code support.

Management of FEGS’ computer systems.

Training

Interests

Folk music and dancing; science fiction and fantastic literature; mythology; current developments on science and technology; the theory and practice of programming languages (especially functional languages); character coding.

Résumé of Jonathan Coxhead