Michael Hope
Curriculum Vitae
michaelh@juju.net.nz http://juju.net.nz/michaelh/ +64 3 341 6648
I am interested in a research and design heavy project, such as embedded software for the integration of fuel cells into power systems or the implementation and performance of large, real time control systems. Career wise I am interested in a company that can help me grow as an Engineer through design, good practice, and a varied set of tasks.
C, C++, Java, many assembly languages, Perl, Python, XML, SGML.
Customer relations, including commisioning, training, certification, on site consulting, and sales roles.
Internal relations, including maintaining good relationships between groups and mentoring.
Deeply embedded software in control and safety systems.
Multiple protocols, including NMEA, CAN, TCP, PPP and their implementation.
Server and servlet development, including performance and architecture considerations.
Compiler design and porting, processor level emulation.
Clearcase administrator, Subversion, CVS, Unix, Linux, OpenBSD, LaTeX.
Understanding of SyncML, WAP, WTP, GSM, CDMA, GPS and their concepts.
Controls Enginner for a waterjet manufacturer providing support to the regional offices, maintenance of the existing product line, and addition of new features and systems to complement the existing system. Engineer in the New Products group from mid 2004 onwards developing next generation control systems. Specific accomplishments include:
Introduced automated hardware release testing and improved the basic software engineering practices.
Development of Windows based hull performace estimation software from specification to user support.
Research and development on a new control input including physical modelling, simulation, and implementation on the existing limited system.
Research on and implementation of a Voyage Data Interface between the existing system and third party recorders.
Off-site commisioning and initial rollout of new products at the customers base or shipyard.
Development of distributed control system for waterjets
Software Engineer, specializing in the device level, kernel, and protocol layers until 2001. Senior Engineer in the Professional Services division from 2001 onwards providing software engineering solutions to a wide variety of Wireless Carriers, Software Infrastructure Providers, Enterprises, and Device Manufacturers including IBM, Motorola, AOL, Vodafone, PeopleSoft, and H3G. Specific accomplishments at Starfish include:
Implemented and refined a Motorola specific communication protocol.
Designed and implemented a complete device-centric TCP/UDP/PPP implementation including a BSD style sockets interface and executive integration.Ported a Motorola specific hard real time executive from the ARM7 to the Intel i186.
Implemented the protocol and support required to interface to Motorola GSM phones.
Adaption of an XML parser and sequencer for XML based server communication
Acted as the device expert. Maintained the device port of the project.
Maintained and updated the low level device programming tools.
Designed and implemented a Java based cross platform synchronization client. Implemented a common Swing based UI for the new data type and Palm synchronization. The emphasis in this project was design and maintainability.
Technical lead on a server to server synchronization product. Designed and implemented the component modules including testing framework, API documentation, example implementation and performance evaluation.
Technical lead on a desktop to server synchronization product. Took a buggy project and through improved testing frameworks, methodologies, communication, and release process increased the quality of the product, improving the customer relationship. Rounded out the product for sale to future customers and handed off to another group.
Represented the company at a SyncML Organization certification event. Successfully certified a customers SyncML device, including performing real time debugging. Acted as a liaison between the customer's group and other groups at the event.
Provided off site development consulting to major customers.
Authored and presented off site operations training to major customers.
Provided last minute off site performance testing and evaluation to a major customer.
Provided local development training for multiple customers on the TrueSync Plus SDK.
Acted as the local Clearcase administrator for a large, multisite repository.
Designed and implemented a QA automation interface.
Designed and implemented under contract a remote graphical console system for the Nintendo Gameboy allowing it to be used as a cheap, portable graphic display by another system. Designed and built prototype hardware cartridges.
Designed and implemented under contract a Java based Internet Cafe management system including the user interface, web based management interface, and backend.
I am a firm believer in the OpenSource model and its concepts. Below are some of the significant projects that I have worked on.
Contributor to and now sole maintainer of the Gameboy Development Kit (GBDK), a set of free development tools for the Nintendo Gameboy. Ported to Linux, optimized the linker, replaced the non-free, slow lcc compiler with sdcc, retrofitted documentation to the libraries, and provided support to the Gameboy community.
Added a Zilog Z80 and Nintendo GBZ80 backend to the existing Intel mcs51 Small Device C Compiler (SDCC). Abstracted the backend by decoupling the mcs51 parts, which has now been successfully used to re-target to the Amtel AVR series, the DS390, the Microchip PIC series, and the i186. Added a comprehensive automated test suite and nightly integration and build systems.
Implemented a Palm based front-end for a serial SiRF based GPS, providing simple absolute location and trip information.
Adapted the cross platform IBM PC emulator pcemu to Linux/PPC. Added support for i186 instruction set and added a console based VGA emulation. Profiled and extended to include a just in time code translator.
Implemented a re-targetable Java compiler for the Z80 processor, including host and device side components and a full test suite with ahead of time compiler, a compiler directed conservative garbage collector, and Java to C interface.
A Java based, single threaded non-blocking HTTP server, designed for high performance and graceful degradation. Used to experiment with new technologies, engineering methods, and tools including project specification, UML, eXtreme programming, testing frameworks, automatic site maintenance tools, and continuous integration.
University of Canterbury (1995-1998)
BE Hons. (Electrical and Electronic Engineering)
BSc (Math)
Marlborough Boys' College (1990-1994)
Blenheim, New Zealand. Prefect, awarded Proxime Accesit.
St Mary's School (1981-1989)
Blenheim, New Zealand
References are available on request.