Steve Colwell: Career Details

Notes to accompany the tabular summary of my career.


Projects

Contracting at CodeWell ('97 - present)
Have done projects ranging in size from two days to fifteen years. Note that some were done under confidentiality agreements that preclude naming the client.
  • Developed dynamic pricing engine for Amazon sellers.
  • Technology investigations to assist startups seeking the best direction: watch wearable, space operations inventory system, natural-language personal assistant, virtual meetings, telepresence, many more.
  • Architected small AWS server farms for several different clients, as well as an on-demand 1000-server system for CG movie clips.
  • Mediated sale of Paracel's genome-search technology.
  • Principle architect of compressed text index for X1's award-winning desktop search product.
  • Principle architect of UI for X1's award-winning desktop search product.
  • Achieved 16% further speed improvement in Paracel's (company since acquired by Celera) hardware text search.
  • Sped up BLAST genome search for Paracel 2x through assembly-language optimization, now their principle product.
  • Principle architect for innovative video conferencing compression for idealab (project cancelled due to dot.bomb).
  • Architect for a whole-web Google-style internet search engine project for Snap, fitting the entire web into a smaller number of servers to reduce cost.
  • 3-D game programming.
  • Web server back-end development.
  • Business software development.
  • Innovative VOIP product design for Idealab (project cancelled due to dot.bomb).
  • Vision object recognition algorithm development and optimization for Evolution Robotics products.
  • Principle developer for the TypeWell text-interpreting typing accelerator.

This work covers 70 projects for 25 companies, ranging from requirements to emergency rescues to full product development to maintenance to executive decision support.


Internet Virtual Reality at Worlds ('95 - '97)
Designed and led the team that developed the Java-based 3-D virtual world engine.  Provides a fast and attractive interface for moving in 3-D virtual worlds, and lets one see other users by communicating over the Internet to a central multiuser server.  Included work on sound, music, image compression, motion compression over limited bandwidth, and custom behaviors.  Designed 3-D world-creation UI for easy construction of sophisticated worlds and avatars.

Multimedia Language at KA ('93 - '95)
Developed a multimedia programming language and development system enabling efficient production of Knowledge Adventure's products.  It was used to develop most of KA's award winning products until 1996, including Dinosaur Adventure, Space Adventure, My First Encyclopedia, Speed, and Jumpstart 1st Grade. 

The language includes tools used by content developers, as well as a programming language designed to make easy the spectrum of multimedia operations.  It automatically performs optimizations: for instance, Accomplish programs that specify the motion of sprites or 3-D objects are automatically optimized and compressed into a minimal set of pixel updates.  It also has sophisticated subsystems for sound, CD-Rom layout, data compression of all sorts, movie playback, internationalization, and PC-Mac portability. 

I did strategic analysis, implemented a prototype, sold the concept company-wide, and created and led an 8-person team in the development of the system. 


Movie/Sound Compression at KA ('92)
KA makes multimedia products, which were shipped on diskettes, and thus needed the most compact image and sound compression possible.  KA's package costs and returns due to diskette errors were high due to the large number of diskettes per product, so that compression improvements translated directly into improvements in the bottom line.

I researched existing image compression approaches and developed one based on wavelets, optimized for KA's needs, that was 15% better than the best previously available (15% is a lot in the world of compression, where the best is usually only 1-5% better than its competitors).

As KA moved to CD distribution, the focus changed from best-possible compression to good compression with best-possible decompression rates, so as to enable real-time movie playback on the machines (slow 386s) of that era.

A teammate and I researched and developed a BTC-based technique with 10x faster decompression rates than the wavelet technology, suitable for use in high-frame-rate movie playback, along with an optimized movie-playback method.  The result was that for many years KA's movie playback was twice as fast as the competition's, a significant business advantage.


Packard-Bell Graphical Shell at Lotus ('91)
Packard-Bell was a Lotus OEM. To attract a contract renewal, Lotus offered to throw in a graphical DOS-based user-interface, to be installed on PB machines as the main menu and desktop. The focus was on attractiveness and ease of use for novices.

I designed the UI and did the product implementation with a coworker. It was well received by PB and said to be in large part responsible for the contract renewal.


Lotus Magellan 2.0 at Lotus ('90)
Magellan 2.0 provided many more features than 1.0 (see below). In addition to implementing many of the new features (such as backup/restore and faster disk scanning), I extended the core to work with zip-compressed files (so that their contents were in the text search indexes just as uncompressed files' contents were), and took responsibility for the compression subsystem, guaranteeing its on-time delivery.

French and German Magellans at Lotus ('89)
A teammate and I handled the rework of Magellan for translation into other languages. Additionally, I implemented a translation tool based on a customized word processor, that presented context for and organized the presentation of text fragments to translators; as a result, the translators applauded Magellan translation work as being easier and going more smoothly than for any previous product they'd done.

Lotus Magellan 1.0 at Lotus ('88)
Magellan is a utility to help users find, view, and use files spread across their hard disks. Its instant-viewing and fast cross-drive indexed text search were acclaimed innovations (various awards such as PC Magazine product of the year) that were rapidly copied by competitors.

Magellan's was developed principally by three developers; I handled the indexing and text compression and search subsystems as well as chipping in where needed in the other modules, for a total contribution of about half the code in the product.


Speech Recognition at SRS ('84 - '87)
SRS sought to implement continuous speech, speaker-independent, large vocabulary speech recognition, with high enough accuracy to build a speech typewriter.

I led the programming and orchestrated the research on speech recognition, leading an 8 person hardware/software team in the development of tools for the research. This included digital signal processing (FFT, digital filters, LPC, polynomial root finding), speech recognition algorithms (DTW, Viterbi, HMM, Baum-Welch reestimation), a graphical speech analysis environment, and distributed computation hardware and software. We used a phonetic approach to achieve better than state-of-the-art recognition accuracy.


Relational Database in Ada at TRW ('84)
TRW sought a contract to build a relational database for the government.

I designed and implemented a prototype relational database using one of the first Ada compilers, with a coworker, and wrote much of project proposal; TRW won the contract.


Text Search Hardware at TRW ('83)
TRW developed custom hardware for doing order-of-magnitude faster complex text-searches than could be done in software.

I optimized the logic design for the systolic text search cell, and worked in a team to implement a wire-wrapped prototype for the eventual VLSI implementation. The result won several contracts for TRW due to its superior performance and cost-effectiveness. During prototyping, I saw the need for and built an automated wire-wrap layout program that was used for years afterwards within TRW.


Spreadsheet for the IBM 5110 at SDS ('82)
A full-featured spreadsheet written in 5110 assembly language. This also involved writing the floating point library and memory management routines, as the machine had none. I designed and implemented it. My share of the sales paid for the rest of my college tuition.

64-line Phone system at Caltech ('81)
Blacker house (70 students) had a system of rotary-dial phones with a mechanical switch that wore out. We replaced the mechanical switch with a custom-built microprocessor-driven PBX with advanced features such as call waiting and wake-up alarms.

Two housemates and I designed and built the replacement from scratch; I did all the software, in 6502 assembly language. It was well received, as only top-of-the-line PBXs offered a comparable feature set, and was used for many years.


Printer Converter Device at SDS ('81)
The IBM 5110 used an EBCDIC current loop (an incompatible standard) rather than ASCII RS-232C. Connecting a 3rd-party printer to the machine therefore required a microprocessor at the interface, for converting between EBCDIC and ASCII.

I designed, built (including PC-board layout and power-supply design), and programmed, and manufactured a 6802-based interface device.


Hard Disk Device Driver at SDS ('80)
The IBM 5110 was a diskette-only machine. SDS appended a 3rd-party hard disk drive to the machine through custom interface hardware attached to the external floppy port, similar to today's products that work through the printer port of the PC.

I reverse-engineered the specs of the external floppy port and the system device drivers, and designed and built the interface hardware and a hard-disk device driver, as well as setting up manufacturing for the interface hardware.


Word Processor for the IBM 5110 at SDS ('79)
A word processor written in 5110 assembly language, with such advanced features as footnotes, widow lines, and mailing list merging.

I designed and implemented the program, including UI design and necessary support subsystems like file management and swapping to disk for large documents. It was very successful, as it was much faster and smoother to use than competing products, due to its implementation in assembly language. Supported through 6 major versions.


Reverse Engineering the IBM 5110 at SDS ('78)
The IBM 5110 was programmable only in BASIC or APL; there was no access to the underlying machine language. As a result, business programs for the machine ran slowly and used a lot of memory.

I acquired access to the underlying machine language through the 5110's diagnostic subsystem, decoded the op codes, and built an assembler, editor, and other tools to allow full-fledged product development.


Companies

CodeWell, LLC ('97 - present)
The software development company, taking on projects in all areas of software development. All new clients are acquired by word of mouth from satisfied prior clients.

CodeWell is a federation of many skilled programmers across the country and world. As a result CodeWell has a superior base of experience, with unexcelled scheduling flexibility. CodeWell can handle projects small or large, on short notice. In most areas of software development CodeWell has a range of capability and can design a team suited to the scheduling and pricing needs of the client.


Worlds, Inc. ('95 - '97)
Worlds has about 70 employees and builds multiuser virtual environments. Their award-winning product Worlds Chat is based on a license of the Accomplish platform. Their future plans hinge on the Gamma platform.

Knowledge Adventure ('92 - '95)
KA is an educational software company of about 70 employees, with tens of products such as Dinosaur Adventure, Bug Adventure, My First Encyclopedia, and the Jumpstart series. Most of these products are based on the Accomplish multimedia programming language.

Lotus Development Corp ('88 - '91)
Lotus is a large company that builds shrink-wrapped business products. I worked on Magellan, and some products for OEM development including a custom graphical shell.

Speech Recognition Systems ('84 - '87)
SRS was a 15 person venture-capital funded company attempting to develop speech recognition for a speech typewriter. It went out of business in '89.

TRW ('83 - '84)
TRW is a large defense contractor; my department worked on text search hardware and an Ada RDBMS.

San Diego Software ('78 - '82)
A two-person company that developed machine-language business software for the IBM 5110, the precursor to the IBM PC; I did all development. This involved reverse engineering the machine language, then building the word processor, hard disk device driver, printer converter, and spreadsheet. Royalties from the sales of these products put me through college.

Blacker House at Caltech ('81)
My dorm at school at the California Institute of Technology, for which I and some housemates developed a PBX (phone system).
 
 
Substantive changes:
    December 30, 1996: created.
Home page, Email: use my name, at, codewell, but .net not .com.
2265 Las Canoas Rd, Santa Barbara CA 93105