What is Embedded?

As technology advances, the term gets used in more and more contexts.

In its most simple context, the term means a device that is tied to a specific purpose. Most often in conjunction with other hardware such as sensors, and actuators. See the Oracle for a detailed explanation of Embedded systems.

Embedded software creation requires different techniques than that for application development on non-embedded computer systems.

By contrast, systems such as Raspberry Pi, Beagle Bone, and the Mars Board are not embedded systems. They are fully generic programming platforms.

Project Demonstration

Meet Phil Quaife, the expert

Philip Quaife: Embedded Specialist

Curriculum Vitae: Current (PDF)


  •             Super Programmer.
  •             Software Architect.
  •             Product Developer.
  •             Tutor.


  • Expert in software automation at both the user and system level.
  • Expert in System Analysis and Design.
  • Integration of complex disparate systems to form functional units.
  • A solid grounding in digital electronic design practices and techniques.
  • Project Management.
  • Understand SDLC and commercial realities.



Career Summary


Over twenty years in the computer industry in various analysis, programming, design, and consultancy roles resulting in a comprehensive range of skills in hardware and software design .

This allows me to utilize multiple disciplines to manage projects from start to finish. These skills are transportable across methodologies and development platforms.



      • Able to quickly assimilate new computer concepts and applications.
      • High aptitude for problem solving.
      • Able to communicate effectively with non-computer literate people.
      • Structured and efficient approach to software design and implementation.
      • Strong systems analysis skills. Able to translate user requirements into user friendly software.
      • Expert in Automation, including: scripts to reduce time required to perform repetitive tasks, automatic monitoring of equipment, driving applications to produce reports.
      • Good diagnostic skills.
      • Structured Test methodologies.
      • A Passion for quality software at the cutting edge of technology.




Operating Systems


Microsoft Windows.

I have used MS windows extensively from version 3.11. I have written applications as well as device drivers using windows API’s.


I have used numerous Unix systems, including Solaris, Ultrix , SunOS, OS9, Uniflex, and QNX. I have been system administrator of multiuser Unix installations, as well as writing utilities and applications  in C and assembly.


I have used Linux since version 2.0.  I use Linux as my base development platform. Using open source development tools to develop cross platform applications and to hack the kernel from time to time.


My own OpenBSD installation is used for application testing of open source cross platform applications that I have written.

Embedded Systems

Developed software for numerous bare-metal micro-controller systems as well as embedded Linux based systems.


Other operating systems I have worked on or have a working knowledge of are:

Plan 9




Languages: I am an expert in the following languages

  • C
  • PHP
  • TCL
  • Visual Basic
  • SQL
  • Shell Script
  • Assembly


I am competent to read and write code at a high level in any of the following languages:


            C++             Pascal
            Foxpro             Javascript
            Objective-C             Awk, yacc, lex


Internet Systems

Transport Protocols

I can interface to and write drivers for:

            Ethernet             Ppp
            Ip             Tcpip
            Icmp             Udp


Application protocols

I have written user level modules that have used the following:

            Smtp             Snmp
            POP3             Ftp
            SSH             Http
            https/tls             IMAP


Dynamic Html

I have performed server side web programming using:

            CGI Scripts             Databases
            Email gateways             Javascript
            PHP             Apache

Data exchange

I am conversant with the following data formats:

            Html             Xml






My software development has included testing of my own and other programmers code using:

            SDLC             RAD
            Peer Reviews             Structured Walk throughs
            IEEE 1012 & 830             Yordon & Demarco
            Requirements Specifications             Automated scripts
            Test Plans             Rational Robot



Development Tools

I have used or have an understanding of the following tools:

            PADS PCB             Spice
            Protel             ICE
            VHDL             Simulation
            IDE             Make
            Version Control  



I have experience in design of microprocessor interfaces for:

            A/D             Real Time


LCD/LED Displays





I have written both C and Assembly code for the following microprocessors and micro-controllers:

            MCS8051             Hitachi H8/300S
            AVR             Microchip PIC
            6805             Intel I386
            Z80             M6809
            LSI 11 (11/23, 11/73)             6502
            Arm – Cortex M3/4             Arm – PXA
            STM32F1/F4             LPC43xx



I have used the following systems to aid software and hardware debugging:

            Logic Analyzers             Embedded Systems
            ATE             GDB / RDB
            ICE             RS232


Employment Summary

Contract Programming and Electronic Design (August 1996 to present)

Systems Analysis and design.

Application development

Embedded software design and development

Web application development


Industrial Research Limited (formally DSIR)   (July 1989 – July 1996)

Research and development associated with government contracts

Conformance testing

Software development


Private Contractor  (June 1988 – July 1989)

Software development DBASE III.


Manukau Institute of Technology (MIT) (July 1985 To June 1988)

IT Support

Hardware maintenance

Software development


Hennessy Grading Systems  (March 1984 to July 1985)

Electronics Technician

Product testing


Auckland Technical Institute (Jan 1983 to March 1984)

Computer systems operator.


Educational Background


Auckland University of Technology

New Zealand Certificate in Computer Technology.


University Entrance Accredited.



Career Highlights (C Language)


Smart Home



A small start-up company had created a plan for a novel home automation system.  The principle designer had generated the overview of the system but had left the company. I took this opportunity to

re engineer the implementation in a more elegant way.


The design utilized 32bit embedded arm micro-controller touch screens, coupled by CAN bus to an embedded controller. Other input and output modules were also designed and developed using the same core architecture.


The control system is an embedded system running Linux OS using a novel interpretive controller. Control modules and functions can be implemented using simple ASCII scripts.


Date Involved: 2007 to 2013


Key Tasks:

Technical architect

Lead software engineer

Hardware design integrator

Oversee installation and testing


Significant Achievements:

Native high speed OLED screen driver.

Proprietary efficient CAN bus protocol.

Dynamically loadable C-language Firmware modules.

Web configuration tool

Remote monitoring and upgrade protocol.

Significant cost savings by choosing open-source development tools.

Highly configurable and adaptable TCL based control system.



Embedded Linux

32Bit Arm micro-controller

CAN bus



Web service

SQL and Embedded SQL.

Steaming music and audio.


TCL Language.

C Language.

Shell scripting.



Medical Device Hub


A company had embarked on a project to develop a microprocessor based IP enabled data collector using the resources from Massey University.

The project quickly overwhelmed the abilities of the Students involved and I was asked to step in and take the lead in developing the hardware and firmware.


The device was to collect data from a collection of disparate equipment connected to a patient in a hospital bed to monitor vital signs and present this data to a server in a standardized data stream.


This product now has an established market and I am working with the company on the next generation hardware.


Date Involved: 2009 to current

Key Tasks:

Lead software engineer

Assist in Hardware design.

Device driver developer.

Troubleshooting and


Significant Achievements:

Hardware solution to providing unique device identifier.

Relocatable device interface drivers (Desirable market feature)

Comprehensive Application interface.


32Bit Arm micro-controller.



C Language.

TCL Language.




POS Rewards Hardware interface


I assisted a company to develop a linux kernel device driver for their POS integration product. This was a piece of hardware that was inserted between a POS terminal and a parallel printer. Using an ISA interface it was connected to an embedded Linux controller to collect the receipt and to print customized customer focused rewards.


The Kernel driver required a high speed interrupt driven driver to capture the data and provide it to the waiting application.


Also the driver provided a virtual file system interface that allowed setting parameters and re-flashing firmware in the interface using ASCII based virtual files.



Date Involved: 2006 to 2008

Key Tasks:

Device driver developer.

Significant Achievements:

Hardware solution to providing unique device identifier.

Relocatable device interface drivers (Desirable market feature)

Comprehensive Application interface.


Embedded Linux.

Kernel device driver

C Language.

Pascal Language (Kylix).

Shell scripting.


Dual Level State Machine Controller

A power generator powered by a sterling engine required a new radical control system. As the engineers were not programmers and did not yet know the control system required, a new Domain Specific high level language was created that allowed them to create control programs and then evaluate the performance results.

An upgrade was implemented to improve performance by automatically trans coding the Domain Specific Language code into native C Language code to allow more sophisticated control algorithms and faster loop response.

This system went through three different hardware designs and has been distributed worldwide.

Date Involved: 2000 – 2005

Significant Features:


Dual Level State machine.

High level language.

Byte Code interpreter.

Field upgradeable.


Technical Architect

Lead developer.

Hardware design integration.



C Language.

Assembly Language.

Floating point code.


Virtual Machine.

Byte coded Interpreter.


Atmel 89S8252








Phil Quaife

 Phone Contact: 021 1441 805

 Curriculum Vitae: Current (PDF)


Download mp3