Unifi Communications, originally Fax International, was a fax delivery company using their own worldwide network of communication lines to deliver faxes. The (at the time) artificially high price of telecommunications into and out of China made this a very desirable location for them. However, fax delivery was still a protected government monopoly, so they needed an excuse to open a Chinese office. They decided to open a software development center here, providing custom software for the Asian region as well as assisting the core development group in the US when necessary.
OO design and programming Java C Visual Basic Perl Sockets and TCP/IP Networks CORBA
I was hired to be lead developer, as well as manage the Asian development group, which eventually encompassed people in China, Hong Kong, and Taiwan.
At first core development did not pay us much attention. However, they started taking notice of us when by analyzing the public system logs we began diagnosing and predicting network problems worldwide before the network management group, with all their custom software, did.
My first real project there was a gateway into the company's network to allow other companies to send their faxes over our wires. The first one was needed just 2 weeks from the day I was first informed. Therefore, though I preferred Java as better suited to the task, I chose C for this because I felt more confident in my ability to design, write, and debug a C application in the given time constraints.
I am very proud of the results of this project. It was finished on time, was highly complimented by the VP of Development during the design review, and went into operation on schedule. It was used for over a year, both for the original company and slightly modified for a second one, and during that time never lost a fax or had any down time due to software failure.
Once that was in operation I had time to rewrite the application in Java. I did this, and was again pleased with the result. There was a very logical GUI front end, and a general gateway object that could be extended easily to read or write to any network, both ours and other companies'. This was unfortunately never used, due to the success of the C gateway - though I argued for switching over due to its greater adaptability and better user interface, management would not replace the other software that was working so well.
I also had a chance to write that same project a third time, with a third entirely different language and architecture. One partner was using X.500 directory services. The company was already using a third-party software product to interact with this, and instructed me to make use of the same thing. This was perl based, using a queuing-based system to invoke various perl scripts. (I do not recall the name of the software, but it was a standard one put out by CDC)
The opportunity to write the same application 3 times, using 3 different languages and architectures (C and procedural, Java and OO, perl and queued) was a good laboratory in design, more valuable than another few graduate courses would have been.
Unifi hit financial troubles with telecom reform, and pulled out of China in 1997. However, due to the impression I had made on them while working there, they moved me to the main development group, telecommuting to the main office in Lowell, MA. Most of the work I did then was working on the upgrade of the company protocol to its new CORBA-based design. We had regular reviews, and the company was pleased with the arrangement.
I remained there until the company went bankrupt in early 1999.