Russell Young
Purple Jade Villas, C-12, Apt. 1A
Chaoyang District, Beijing
People's Republic of China
phone: 8610-6489-4290
email: resume@young-0.com
web page: http://www.young-0.com


STRENGTHS:

Software development involving communications, graphics, compilers, OOP, diagnostics, i18n and l10n, porting, systems, optimization, GUIs, and more.
Project management, system support, education, systems management.
HARDWARE SOFTWARE LANGUAGES
 PC UNIX (Linux, AIX, 
Solaris, HP/UX)
C
 HP Prism   Windows Java
 IBM RS/6000 RSX-11M+  C++
 SUN SPARC DOS Perl
 IBM PS/2 OS/2  Lisp
 VAX  EMACS Visual Basic
 PDP-11 X-Window Assembler
  Motif Pascal
  HTML Bliss
  XML  


EXPERIENCE:

3/09-present  Software Architect, GUI, Inkspin1
Solely responsible for technical design of GUI for television-based Skype client. Also managed 4-man team doing implementation.
3/08-2/09  Senior Developer,
Exoweb
Part of team developing server applications using Python and Django using agile programming management.
3/06-1/08   Developer,
Catharon
Returned to do more language development work. Rewrote the regular expression parser (description here) and wrote journalling, indexed file system.
6/04-3/06   Build Manager, Siemens Mobile
Responsible for build process of device layer mobile phone software. Position involved isolating problems maintaining code quality, and assigning responsibility to the developers.
Worked in Java porting and support group.
11/01-4/02   Consultant,
Precom
Designed and wrote an interpreter in Java to apply queries writtem in XQuery language to virtual XML (XML or SQL) databases.

7/99-6/01   Developing Consultant, Catharon Productions Inc.
Contributed to design and wrote major parts of a multiplatform web development language and environment, TenCore©. My parts included:
 
  • The language compiler: Solely designed and wrote the program to compile the TenCore source code.
  • The language executor: completely reworked existing opcode interpreter to make it faster and more maintainable.
  • Kernel internals: made and implemented major design features, debugged and improved existing multiplatform kernel.
  • Linux platform-specific kernel support: wrote Linux platform drivers for graphics (both raw X and VGA) and file system interface.

  • More detail...
    10/96-11/98   Principle Software Engineer, Unifi Communications Beijing
  • Worked with central development group in the US on internal development projects.
  • Wrote general gateways for connecting arbitrary fax systems directly to company's internal network.
  • Troubleshot and analyzed company's internal data network.
  • Managed Asian development group (5 people in 3 countries).
  • Company went bankrupt and is no longer available.
    More detail...


    2/92-2/96       Senior Development Engineer, Concentra (formerly ICAD)

    Worked in development, maintenance, and platform support of Knowledge Based Engineering CAD system written in Lisp.
     
  • Ported the product to the HP-UX and Japanese Solaris platforms.
  • Integrated HOOPS as the 3-D graphics driver.
  • Completed and then supported a remote access interface (similar to CORBA) to the product during its immediate post-development stage.
  • Supported EMACS as product working environment, including adding OTS ATOK7 character input to Mule.
  • Provided platform support for HP 700, Sun JLE, DEC (MIPS), HP 300 (M68000), and IBM RS/6000 platforms.
  • Acted as project manager for several projects.
    More detail...

    6/89 - 11/91    Systems Engineer, IBM China/Hong Kong
    Led team of four engineers providing technical support for the introduction of the RS/6000 in China.  Directly responsible for all issues with the system, requiring work in communications (TCP/IP), graphics (X-Window, GL, PHIGS), and UNIX system programming.

    Provided support for porting, benchmarking, marketing, installation, troubleshooting, and both internal and customer education.
     

    2/88 - 6/89  English Teacher, Beijing Agricultural Engineering University

    3/87 - 10/87   Programming Consultant, HiTech Electronics

    Wrote a real-time graphics mapping subroutine based on a recently published mathematical algorithm for use in custom hardware for a flight simulator.


    9/84 - 12/86 Research Assistant/Teaching Assistant, University of Minnesota

    Wrote a graphical combinatorics experiment environment for use in an undergraduate course in combinatorics.  Work was in TurboPascal under DOS on a PC.


    9/83 - 9/84     Consultant, Digital Equipment Corporation

    Wrote boot/diagnostic ROM for micro PDP-11 Wrote document for use as a DEC standard for booting micros based on the experience gained from the above project.


    9/82 - 5/83     Consulting Programmer, Cynapse Inc.

    Consulted at several companies for small projects. These included writing a disk formatter, device diagnostics, and an object-oriented screen handler.
    9/80 - 5/82     Programmer, Freyberg Systems Inc. (later Logica Inc.)
  • Debugged and enhanced a publicly available C compiler for internal use.
  • Solely responsible to customize and improve to specs a different pre-existing funds transfer system.  This was written in MACRO-11, and required improvements to be made in the bisync communications driver.
  • Worked as part of a three-man team to develop and install a funds transfer system for a major international bank. Project was in C on a PDP-11, and included applications, communications, and system programming.

  • OPEN SOURCE:

    2004   IC (Interactive C)
    An interpreted C-like language with object extensions tightly coupled to Java. The language is written in Java, and supports all C-like features except pointers, including for/while loops, switch, ?:.... (like in Java, object support replaces the need for pointers). Objects can be defined using IC, can be Java objects written to support IC, or can be arbitrary Java objects invoked from within IC. The language was written to support custom output for a photo organizer (below), but quickly became a larger project. Besides features of both C and Java, it also borrows from other languages, including typing which can be turned on and off from Perl, and strong macro support like Lisp.

    I found after writing it there were similar languages (Rhino, Jacl...), but in ability, size, and speed it compares well with them.

    2003 Abcd (no link yet):
    This started out as a photo organizer, but turned into a general data organizer. It was started when I could not find an existing organizer that did what I wanted to do: besides the standard features, allow photos to be cross referenced in different directories. Since it is written in Java, once finished it was easy to provide objects for sound, doc files, and so on. For output, it generates web pages in a directory tree for burning to a CD. Each object (photo, etc.) is included only once, but can be referenced in multiple places in the directory tree - for instance, a photo taken of my son and his cousin Christmas 2004 can be accessed under /Family/Young/Aaron/", "Family/Lucey/Meghan/", or "/2004/Christmas/".

    Output is controlled by a template language. The templates are written in a language that is written in IC (above), so output can be controlled by either filling in a form in the application, replacing the standard template, or writing IC functions to do the writing.

    2002 SchoolSite:
    My son's school, NSCL, had paid a professional to design their web site. His site looked good but ws all static, meaning they were not able to change anything. I wrote a package in PHP that gave them dynamically generated, flexible pages, along with administrative functions.

    Pages are designed on flexible templates, where each page starts as an empty XxY grid, and each grid is assigned a role: either text, image, vertical or horizontal continuation, frame, or PHP function.

    Since these cells can contain uploaded PHP functions, it makes adding extra functionality: login and logout, user admin, menu generation, site map, statistics, and more. In fact, a short function for implementing templates provides the standard site look, so the entire site can be redesigned by changing the one template definition.

    My own personal site is also written using this package. By visiting the site you can create your own web page on my site by using a trial version of the package (however, you cannot upload pictures or save your page).


    EDUCATION:

    9/84 - 12/87    University of Minnesota
    M.A. in Mathematics with a minor in Computer Science
    9/76 - 6/80     Princeton University
    A.B. cum laude in Mathematics.  Thesis topic was Classification of Arbitrary Non-compact 2-manifolds.

    PERSONAL:
    Hobbies include running, Ultimate Frisbee, and literature. I have lived and worked in China for 15 years, and speak and read some Mandarin. I have also studied Japanese, Spanish, and German.