Dave Dunfield

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).
Carp, Ontario
Owner and operator
Software developer
Contract services provider
1990-Present
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. A numbers of these tools have been sold through DDS and its distributors.
Kanata, Ontario
Director of Small Data Products Development
Senior Software Engineer
1986-1990
Responsible for the continuing 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. Originally developed as a part time project on my own time, the switches were later acquired by Newbridge, and became the hardware component of their "MainStreet" line of desktop networking systems.
Kanata, Ontario
Software Engineer
1985-1986
Developed low level drivers and application library routines for the interface between a unix based computer system, and a modern digital PABX.
Ottawa, Ontario
Software Engineer
1985-1985
Designed and developed the operating system and control software for an automated multi-point to multi-point interactive television network over satellite channels.
This job was a "bail out" for a small company who had exhausted their funding in a failed attempt to produce this system. I was brought in, and given free reign to design and implement the system in a very short time period. The system was delivered on time and working in less than 6 months.
Kanata, Ontario
Software Engineer
1982-1985
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.
This position was actually created through my own initiative, I was originally hired to write test case code for the existing FTS-II (Functional Test System 2), and recognized that the system could have much more capability. I discovered that another department in the company had built a disk controller for a machine that used the same backplane, borrowed one, and spent several weekends of my own time writing a disk operating system and multitasking executive, which allowed the machine to perform far more complex tasks than had been done previously.
When demonstrated to management, this updated device was raised to an official project, and I was assigned to work on it full time.
Nepean, Ontario
Data Communications Software Specialist.
1981-1982
Performed software design and maintenance to Northern's SL-10 packet switched data networks. I was primarily involved with binary synchronous (BISYNC) and interactive terminal interface (ITI) protocols.
1978-1981 Computer Science
University of New Brunswick
Fredricton N.B.
1977-1978 Electronics
Cobiquid Vocational School
Truro N.S.
1976-1978 Academic High School
Cobiquid Educational Center
Truro N.S.
1982 Microprocessor Interfacing
McGraw-Hill Seminars
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) much more frequently than "pretty" 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.
Contact Information