Howard Abrams |
Senior Engineer |
uXcomm, Inc. |
uXcomm created a service-oriented architecture for network management. A front-end web page or other client would submit a "service request" and a "service definition" (essentially a scripting layer) would answer it using pluggable Java components. The resulting XML data could then be transformed into a web page as a response.
When I arrived with this startup, the core engine was a mess. I cleaned up the APIs and then cleanly separated code sections. Helped to get the code working within Eclipse's architecture to make automated build and tests happen on the developers' computer after every code change.
Another deficiency was the "service definition" scripting language. Using a JavaCC grammar, I gave the product a more intuitive language and added expressiveness, for instance, you could easily create and then traverse Java lists, maps, and other POJOs.
The services layer was extended by plugin components using a terse, unintuitive API. I re-engineered the API and migrated the compoents, and then wrote many more, for instance:
Built and instituted automated builds (using CruiseControl) with automated test runs. The test architecture spanned all product layers from white-box JUnits on up. Developers, from their IDE, could easily run tests associated with the code they modified.