I write programs that test electronic hardware. And I design, model and debug them, too!
I do hardware test program development and engineering as well as diagnostic software & firmware engineering.
The users of my test programs are typically technicians in manufacturing, field service and the engineering lab. Occasionally, company customers use them. Often hardware design engineers use my programs for doing the bringup (debug) of their prototypes and later, the verification of their design. Depending upon the company and the job to be done, I may be located either in software design engineering, hardware design engineering, or in a test department or a new products introduction team within operations.
My programs have targeted all kinds of electronic hardware for testing purposes: semi-conductor chips, electronic circuit boards and complete systems ranging all the up to digital central offices switches, PBXs and automatic test equipment (ATE) systems. Sometimes they use a great deal of external instruments to perform test measurements and sometimes they use only resources embedded within the electronics under test.
My programs are usually embodied as computer software that runs online with the operating system just like any other application. However, they may also be embodied as firmware embedded on a circuit board as is the case for power-on self-tests (POST), the kind of diagnostics you see when you power-on your PC. POST runs just after the power is turned on but before the operating systems is booted up; if it detects something wrong, LEDs will blink and the PC (or bot) may beep at you in a very unhappy way.
My specialites include:
- Engineering prototype bring-up code with or without LabView
- Mixed-signal multi-media test programming for audio and video
- Built-in on-line testing as well as off-line and pre-boot testing for mfg and field service
- In-band, remote access diagnostics using the Common Diagnostics Model (CDM) via networking for field service and customer IT admins and help desks
- I/O device drivers and calibration routines
- ATE application software written in Image for mfg test
- Testing of SOCs on Teradyne's 1000-pin, mixed-signal, full-functional, hi-speed Tiger Catalyst
- Porting real-time, POSIX-compliant applications
The technologies and methologies have used include: C/C++, Image, UML, SPC, Six Sigma, Perl, Forth, Tcl/Tk, SystemC, Tiger Catalyst, UNIX, Linux, SLED 10, ClearCase, ClearQuest, MacOS, DOS, Windows, SCSI, PCI, VMEBus, JTAG, Unix I/O Drivers, UltraSPARC T1 & VF, TMS320C, MC680X0, MC5600X, MC68332, MPC8260, i808X, MicroChip PIC, ARM, MIPS, 6 Sigma
Most recently I have studied model-based testing (MBT), aka model-driven testing (MDT), Alloy and some B, Z and OCL. Click here for some sample code of mine in Alloy.