Clients
The following are projects I have implemented for clients:
MusicID SDK for iPhone and Android
:
Gracenote : Emeryville, CA
The MusicID SDK project involved implementing a developer friendly
interface for both Android (Java) and iPhone (Objective-C). The goal
was to provide easy access to Gracenote's
MusicID
media recognition technology on
mobile devices.
To make life easy for developers creating both
iPhone
and
Android
apps,
great care was taken to ensure that the APIs were identical across the two implementations.
My role in this project was to interface with team members to design
and evaluate the APIs, then implement the Android and iPhone SDKs
and test to ensure that the code was production quality. This contract
required 8 months of implementation effort.
Data Center Monitor
:
Undisclosed Client : San Jose, CA
The dcmonitor project consists of a Linux server running a LAMP stack
along side an Arch Rock server and an array of hundreds of
temperature and humidity sensors. The dcmonitor system is implemented
in PHP and makes use of a REST interface to pull live node data
and store it in a MySQL database. This database can then be queried
via a series of administrative interfaces. For example, one interface
displays the temperature of each sensor in the data center using color
coded dots on top of a floor plan image.
My role in this project was implementing the monitoring server
and administrative interfaces. This contract required 2 months
of implementation effort. This system is currently live and in
continuous use.
Label Server
:
Signature Wines : Hayward, CA
The label automation print server processes print jobs from a web-based
label customization tool implemented in Flash.
The label server is implemented entirely in Python and makes use of COM
to automate Adobe Illustrator. The label server generates a PDF from a
predefined label template and prints the label on a high-end printer.
The label is then affixed to a bottle of wine and is shipped to the customer.
My role in this project focused on implementation of the server and preparation
of Illustrator label templates for automation. This contract required 12
months of implementation effort. The label automation server went live in
2004 and is in continuous use.
|
+
|
|
|
User
Customized
Text
|
|
|
|
High -
End
Printer
|
|
|
Tcl to Java Compiler
:
Advanced Micro Devices : Austin, TX
One Moon Scientific : Newark, NJ
TJC is a Tcl to Java compiler
for
Jacl
that converts source code written in the Tcl
scripting language into Java source code.
TJC makes use of the
Janino
embedded Java compiler
to convert generated Java source code into Java bytecode.
TJC compiled Tcl code will execute from 10 to 30
times faster than interpreted Tcl code.
My role in this project was to design and
implement the compiler, design and implement a regression
test suite, and provide documentation.
This contract required 14 months of implementation effort.
|
Tcl Source
|
|
|
|
Java Source
|
|
|
|
Java Bytecode
|
Quercus Application Validation
:
Caucho Technology : La Jolla, CA
Quercus is a 100% Java implementation of the PHP
scripting language. Quercus supports an interpreted PHP execution mode and also includes
support for execution of PHP scripts that have been compiled to Java bytecode.
Quercus is available under the GPL license and is supported by Caucho Technology.
An end user would install Quercus along with a web/application server like
Resin, in order to run a PHP application like
MediaWiki in a 100% Java environment.
My role in this project was to validate existing PHP applications to ensure that
they execute correctly when running under Quercus. Each PHP API used by an
application would need to be verified and throughly regression tested.
Any defects uncovered during the validation process would then be addressed
in the Quercus implementation. This contract was 6 months in duration.
Call Center Monitor
:
Spanlink Communications : Minneapolis, MN
The call center monitor is a client / server application
that displays live call center information and statistics.
The client is a Win32 GUI application that displays information
on a manager's desktop. The server is a C program that
interfaces with a Lucent PBX (Private Branch Exchange)
and an Oracle database. A PBX is a piece of computer
telephony hardware that connects to multiple agent
phones and routes incoming calls to the next available agent.
My role in this project was to implement the client / server
programs and the Oracle DB persistence module. This
contract required 8 months of implementation effort.
Webcall Computer Telephony / Web Integration
:
Spanlink Communications : Minneapolis, MN
Webcall is a Computer Telephony platform that can
be integrated with an existing web site. Webcall was
initially developed in 1995 while the web was still
in its infancy, and was quite novel. Webcall
provides a means to implement a web enabled call
center that can link a live agent to a customer
via the existing phone network. Webcall could also
automatically process credit card numbers over
the phone, instead of sending them over the unsecured
network.
My role in this project was to implement the C code
that interfaced a web server (CERN) with computer
telephony hardware. This project required 6 months
of implementation effort.
Tcl Blend Threading
:
Scriptics / Ajuba Solutions : Mountainview, CA
This client needed Tcl Blend to be rewritten to take full
advantage of native threads and avoid lock contention.
Because the original Tcl Blend 1.0 release lacked the
ability to make full use of native threads, every Tcl Blend
call into the JVM had to grab a global monitor, so code
executed slowly. My role in this project was to implement
a new locking approach and then test and validate the new
code. This contract required 2 months of implementation effort.
The results were made available in the Tcl Blend 1.3 release
Itcl port for Jacl
:
Advanced Micro Devices : Austin, TX
Itcl is a widely used Tcl extension that implements object oriented
functionality for the Tcl scripting language.
Jacl
is a Tcl interpreter implemented entirely in Java.
This client needed to be able to execute Itcl code in
Jacl which was not possible because Itcl is a C Tcl
extension.
My role in this project was to port an existing library
of 15K lines of C code to Java. Itcl's regression
testing framework was also ported to Java.
This contract required 1 month of implementation effort.
Namespaces port for Jacl
:
 
HMS Software : Boston, MA
The original
Jacl
1.0 release lacked support for Tcl namespaces, which
provide a handy way to avoid procedure and variable
name clashes. The client needed to run code that depended
on namespaces in Jacl. My role in this project was to
port all namespace features from the C version of Tcl 8 to Jacl.
This contract required 1 month of implementation effort,
the results were made available in the Jacl 1.2 release.
Internationalization
:
Native Seeds/S.E.A.R.C.H : Tucson, AZ
Native Seeds is a conservation organization that saves
agricultural seeds for American Southwestern and
Northwest Mexico crops. The
Native Seeds
website supports a shopping cart and a small database
back-end. My role in this project was to add support
for internationalization to the PHP modules and
dynamic web pages. This contract required
1 month of implementation effort.
|