3926 NE Hassalo St.
Portland OR 97232
(503)223-2285
wms@igoweb.org
2004, Self Employed. Brought "hobby" web application into
profitability
For many years, as a hobby, I ran a server at
http://kgs.kiseido.com/
where people could play the traditional Eastern game Go over the
internet for free. In late 2003, this server became too busy and
required too much time to remain as only a hobby, so I assembled and
implemented a plan for adding additional content that would be
accessible for a fee. In late October of 2004 I was ready to release
the non-free contont. In the first month it gained enough subscribers
to be profitable. In the future I intend to continue work on this
project as a part-time job. This server system includes a C backend
server, Java clients, with JSP-based web pages, and includes real time
audio streams, over 1,000 players connected simultaneously, and all text
translated into 15 different languages.
2003 (February through December), iMove Inc. Wrote video stream
control code, camera control system, and maintained device
drivers
Originally at iMove I was working on their spherical video
surveillance project, writing the code for the server that would
control the camera, assumble the images from the camera into video
streams, and route the assembled video streams to the storage
system. I also took over maintenance of the Linux drivers for their
camera control cards. Later I worked as team leader on a similar
system that was mounted in an autonomous vehicle and used the
spherical camera to collect and store video data for later replay.
2002 (July through December), Xyron Semiconductor. Wrote
Java-based simulator for CPU
Xyron was developing a custom ASIC that would include several
custom embedded MIPS processors. We had a very tight schedule, had
only a few months between tapeout and delivering a ready-to-use system
complete with the software. I wrote a MIPS simulator in Java that
included all modifications to the MIPS cpu that we made and included
the devices
that we planned to include on the ASIC. The Xyron software team
used this simulator to develop
software so that only debugging would be needed
once the hardware arrived. The simulator was completed and was able to
run at 4MHz. We booted Linux in full multiuser mode, were able to log
in, compile programs in the simulator, and start up X Windows. I also
provided assistance to the engineer porting Linux to this device.
2002 (January through July), Xyron Semiconductor. Wrote RTOS
library for custom CPU
Xyron Semiconductor had a MIPS-like custom CPU with a hardware
RTOS task scheduler. Working with one other engineer we put together
an RTOS library to utilize this CPU and its hardware features. For
this RTOS library, wrote device drivers to operate ethernet, flash
programming, audio in/out, and IDE disk access. All these devices were
on a single FPGA (with the CPU), with no outside IP used, so all were
completely custom and all drivers were written from scratch.
2001, Contractor from Axian at Intel. Wrote embedded Linux PCI Driver
Intel had a system that ran Linux on a StrongARM-based network processor
on a PCI card. At the time I started, communication between multiple
cards (or between a card and a PC-based host) was through the
network. The PCI bus was only used as a power supply. I wrote an
ethernet-over-PCI emulation system that
allowed the strongarms and the PC host to communicate with each other
over the PCI bus, eliminating the need for a common subnet connecting
them and reducing the amount of unnecessary network traffic
generated.
2000, Contractor from Axian at Giganet. Worked on Solaris
network driver
Giganet had mostly finished but buggy network clustering device
intended to adhere to the SAN/VIA clustering standard proposed by
Intel, Microsoft, and Compaq. They had
drivers for Linux and Solaris. I helped to debug their driver and
helped make changes to make the driver fit the standard, which had
gone through several revisions.
1999-2002, Axian Inc.: Instructor and Courseware Developer for
Axian/Red Hat Courseware
Taught the Red Hat classes (which were developed by Axian) for
Linux application programming and Linux kernel programming. In
addition, I developed the courseware for Linux GUI programming classes
in GTK+ and Qt, and co-developed a course on using Java to
web-enable a SQL database.
1999-present, self employed: Author and Operator of Kiseido Go Server
KGS is an internet server for the traditional Japanese strategy
game, "go". It is the largest Western-based go server, with over 17000
registered users as of January 2003. It uses a server written in C,
with Java clients, a SQL database to record server data, and a
JSP-based web application to provide dynamic web pages related to the
server. I also wrote a cell phone J2ME client for this server,
allowing people to play by their cell phones. I wrote all code and
perform the primary management duties, including managing the team of
volunteer assistant administrators.
1991-1998: Software Engineer, Intel Corporation
Relevant Projects:
1998: Contractor working for Midway Home Entertainment
Project was to write a web-based chat server. The chat server consisted
of a Java client in a web page which connected to a multithreaded C back end
running on Irix.
B.S., Computer Engineering - Carnegie Mellon University, Pittsburgh, PA,
1991.
Related Coursework: Compiler Design, OS Programming, Parallel Programming
Last updated December, 2004