I have over 30 years experience in embedded systems design. Primarily a software/firmware engineer, I have a strong hardware background, and have designed many complete HW/SW systems. I work equally well from a software only perspective using existing/specified hardware.
My realm of experience includes many processors/control complexes and widely varied interfaces. I am particularly strong in packing a high degree of functionality into small/cost-sensitive designs. I have a reputation for high quality and quick turnaround time. On several occasions I have been called in to "rescue" a project where a larger team has failed to meet the required timelines.
I also have a great deal of experience with systems software, real time schedulers, languages and development tools (my company "Dunfield Development Services" markets my own line of C compilers, assemblers, simulators, debuggers, interpreters and other tools for embedded work).
Owner and operator
Contract services provider
Dunfield Development Services (DDS) provides system software/firmware development services. Projects range from multi-year contracts covering a complete system design, to a few hours to develop a device driver or interface. I am the primary software engineer at DDS, specializing in low-level and real-time system design.
DDS is also known as a vendor of software development tools for embedded systems. I believe in the value of software tools, and have developed *MANY* of my own tools over the course of my career including C compilers, assemblers, disassemblers, simulators, debuggers, communications, utilities and other related softare packages. Many of these tools have been developed into commercial products sold through DDS and its distributors.
Director of Small Data Products Development
and Senior Software Engineer
Responsible for the development of a line of small data PBX's and statistical multiplexors. These were small systems with a line size ranging from eight to fifty six ports. These systems began as my independent designs which were acquired by Newbridge and became the switching component of their "MainStreet" line of desktop networking systems.
Developed low level drivers and application library routines for the interface between a unix based computer system, and a modern digital PABX.
Designed and developed the operating system and control software for an automated multi-point to multi-point interactive television network over satellite channels.
Responsible for the design and implementation of the operating system and applications software for a self contained automated PABX feature exerciser and workstation. I was also responsible for the implementation of related development tools on Mitel's VAX host computer system, and software load generators residing in the PABX system under test.
Data Communications Software Specialist.
Performed software design and maintenance to Northern's SL-10 packet switched data networks.
1978-1981 Computer Science
University of New Brunswick
Cobiquid Vocational School
1976-1978 Academic High School
Cobiquid Educational Center Truro N.S.
1982 Microprocessor Interfacing
I have a very wide range of experience, including the construction of a number of complete hardware/software systems "from the ground up". I am as comfortable designing device drivers, schedulers, APIs and file systems as I am at developing high level languages and end-user applications.
I am a firm believer in the value of tools, and often spend significant time at the beginning of a project developing tools specific to the needs of the project. This always pays off in the long run. I use tools to:
I am also a big fan of automation. When you automate a process, you not only make it easier and faster to perform, but you also remove variability in the execution of that process. This means fewer procedural errors, a faster development process, and a more stable and reliable product.
My reliance on tools and automation means that you will see me sitting in front of a command line interface (easy to automate) more frequently than graphical one (difficult to automate).
Everyone puts "problem solver" on their resume, but in my case, I go above and beyond the usual definition.
My clients involve me in high level discussions regarding their system design, and place a high weight on my recommendations. This is part due to my years of experience, and also due to my having a very logical and methodical thinking process. I have a high success rate of "getting it right the first time".
I have been described as having "an uncanny ability figure things out". I am often called on-site to find a problem that has been eluding other developers. I employ tools to find difficult problems, and often spend more time on the collection of information regarding a problem than the actual solution.
Here are some sample projects that I have done.
I have posted some of the tools and utilities that I've developed over my early career on my DOS Widgets page.
I maintain a collection of "classic" computing hardware. Have a look at Daves Old Computers.