The team was using commercial, off-the-shelf telephony hardware that plugged into a standard PC to create a highly-specified digital telephone exchange. A key goal of the project was to make a fully configurable system, easily adaptable to different customer needs.
Telephony systems traditionally rely heavily on state machines, so we decided to create a "soft" state machine that could be reconfigured without modifying any code. With design assistance from my team leader, I created a state machine language and processor for advanced state machines. Another colleague created a graphical user interface for designing and debugging these state machines.
I demonstrated the system to an important customer, showing how the fundamental operation of the telephony system could be reconfigured with a few mouse clicks.
This experience showed me the benefits (and pitfalls) of replacing traditional techniques with configurable, soft implementations.