Drawing on what I learned during my Tibetan computing apprenticeship, I created a Tibetan Document Processor that works with Tibetan and European languages in the Win/9x/ME/NT/2K/XP/Vi/7 environments. This program is now in a second edition, rewritten as a Unicode Document Processor that supports all languages including Chinese, Japanese, Thai, etc. as well as Tibetan, Dzongkha and European languages. It supports not only word processing and databases in multiple languages, but also faxing and "one-click e-mailing". Development environment is Win/2K/XP/Vi/7 using Microsoft C.
Maintained and enhanced the Web interface program for the Perforce Software Configuration Management System. Development environment was Win/XP and Mac OS X using C++. A publicly available instance of P4Web can be found at http://public.perforce.com:8080.
Maintained and enhanced the Windows GUI interface program for the Perforce SCM System. Development environment was Win/NT/2K/XP using C++ and MFC.
Co-designed and wrote a Tibetan dictionary program for the various MS-Windows environments. The program can be used to create and to display Tibetan/Tibetan, Tibetan/English and English/Tibetan dictionaries. This project involved creating a Tibetan keyboard driver plus Tibetan edit controls and listboxes because of the unique characteristics of the Tibetan written language. Because the program was designed as a multilingual tool, it can handle not only Tibetan, but also any other language that can be expressed in a 8-bit character set and reads left-to-right, such as all European languages including Greek and Russian.
Wrote console based embedded SQL programs communicating with the Oracle database as part of the SBO2000 mortgage banking software package.
Led a team of 3 in porting the 6.4 MS-DOS version of the INGRES relational
database tool set to Microsoft Windows. This project used both the Metaware
and Microsoft compilers as well as Windows style DLL's but with unique Data
Segments for each user of the DLL. Windows features added to the character
based tools included buttons, scrollbars, multiple fonts, drag-and-drop moves,
Team member porting OpenROAD (formerly Windows4GL
version 3) to Win/NT, Win/95 and Win/3.1. In addition to learning and
enhancing OpenROAD's object oriented environment, I did much of the thunking
necessary to run the NT version on Win/3.1 using WIN32S. Created a
user-friendly interface from OpenROAD's 4GL to the TUXEDO distributed
transaction processing system.
Development for these projects was on various 486 and Pentium systems running Win/3.1, Win/95 or Win/NT.
Before becoming a member of the Windows programming team, I was one of a
team of four responsible for porting the 6.2 UNIX/VMS minicomputer version of
the tool set to run in protected mode under MS-DOS. Among my major
responsibilities were being the liaison with Rational Systems, the maker of
the DOS16M DOS Extender; helping Rational debug their Virtual Memory Manager;
creating Dynamic Link Libraries for MS-DOS; creating a memory allocation
system tailored to the Virtual Memory Manager; building various porting tools
such as the automatic function prototyper; as well as porting and debugging
over 10MB of programs. I was also given an award for the performance
enhancements I made for the maintenance release of the product.
After completing the above project, I led a team of 2 in porting the 6.4
version of the INGRES tool set to MS-DOS. Noteworthy were the interfacing of
the Metaware Hi C compiler to the Microsoft C runtime libraries and the fact
that the 2 of us were able to do this port in 9 months whereas the previous
port had taken 4 people almost a year and a half.
Development for these projects was on various 386 and 486 systems running MS-DOS, DesqView 386 and PolyShell UNIX shell.
Responsible for 60 IBM/AT field systems with Vynet digitized voice response hardware. Designed, wrote and maintained "C" application software (including a digitized-voice/telephone-based human interface for an automated, interactive cable television channel); installed the hardware and software in the systems; did troubleshooting over the phone; made minor hardware repairs; arranged for major repairs; maintained physical inventory. Responsible for 12 IBM/AT office accounting and word processing systems.
Designed and wrote much of the conversational query language for the DataStar system; designed, wrote & maintained other database programs. Used IBM/PC and XTs, various 8-bit CP/M micros, a 68000 UNIX supermicro, "C" and 8080 & 8086 assemblers.