Joseph Chan BSc, CEng, MIEE - Software Engineer
Budding Engineer...After graduating from Manchester University with a degree in Physics and Electronic Engineering, I was employed by GEC Avionics Ltd., Rochester, Kent, as an electronics engineer. During the three years with GEC Avionics, I worked on several Air Data Computer systems - these are computers, installed in aircraft, which obtain information about the aircraft's airspeed, altitude, angle-of-attack etc. Working on the MSCADC project, I designed an ASIC to integrate the microprocessor's support circuits onto a single chip. As an electronics engineer, I gained valuable experience in designing and fault-finding digital circuits, using oscilloscopes and logic analysers and working in a disciplined environment where quality control is as important, if not more than, the engineering design itself.
Software Switch...In 1990, after three years at GEC Avionics, I decided to pursue a career in software engineering as computers and programming was my passionate hobby at the time. I joined Medelec Ltd, Old Woking, Surrey, as a software engineer where I immediately started work on implementing signal analysis algorithms on a Texas Instruments TMS32020 DSP. This was at a time when C was not viable for DSP software, so I was programming with TMS32020 assembly language. During this time, I learnt to design sofware using the Yourdon structured analysis and design methodolgy.
After about a year, I moved on to a project developing application software for a Motorola 68000-based system running the OS9 operating system. The software was written in C, on a UNIX server, and the source files downloaded to the target OS9 system where it was compiled, debugged and tested. During this time, I learnt about real-time operating systems and the software development life-cycle.
Back to the Hardware...I was still keen to maintain my electronic design skills and so I was given the opportunity to develop an accelerator circuit to double the CPU speed of the existing 68000-based system. The circuit used a single PLD and some discrete logic devices to interface a 16 MHz 68000 CPU to the existing motherboard.
Once this accelerator card was in production, I co-developed another accelerator card, this time for a system based around the Motorola 68030 CPU. For this circuit, I designed a DRAM controller using PLDs, in order to provide maximum memory access speed.
Software, Once and For All...In 1994, I finished electronics design once and for all and focused on developing my career in software engineering. Still with Medelec Ltd., I was selected to be part of a team working on a feasibility study for a new range of neurophysiology diagnostic instruments. I was responsible for the signal processing / analysis subsystem, initially using a Texas Instruments TMS320C32 DSP.
For the final design, the DSP subsystem comprised a DSP PCI card, fitted to a standard PC motherboard, containing 1 to 3 Texas Instruments TMS320C40 DSPs depending on the model of the instrument. I was responsible for designing the DSP software, ensuring it was scaleable to handle the processing of more channels of digitised signals according to the model of the instrument.
In 1996, my work on the DSP subsystem was completed and I began developing application software using Microsoft Visual C++ and MFC running on Windows 95 on an embedded PC. I was responsible for writing software to control hardware in the diagnostic instruments to stimulate a patient's sensory nerves and to acquire the resulting electrical nerve responses. It's during this time that I learnt software design using Object-Oriented methods, specifically using Rumbaugh's OMT (UML was only starting to take off).
At this time, I also obtained my Chartered Engineer qualification through the IEE (http://www.iee.org/).
Orac Is Born...
In 1998, I decided I wanted to start my own business and I left Medelec to set up my company, Orac Solutions Ltd. My first contract was with Cubic Transportation Systems Ltd - an international company which specialises in supplying automatic fare collection systems for mass transit systems all aound the world, e.g. the London Underground. I developed the software to integrate a credit card payment system into an automatic ticket vending machine which is now in service in the London Underground system. I also developed the GUI for the next generation ticket vending machine which will support the use of smart cards to replace magnetic tickets. I was with CTS for 3 years, developing software using Microsoft Visual C++ and MFC for an embedded PC running Windows NT. I used UML and Rational Rose for the object-oriented analaysis and design.
© Orac Solutions Limited, 2004