return to Team Bios

Longer bio of Duane Sand

My first computer experience was a 1961 book about computers and logic in the grade school library. It included a detailed schematic for a 10-bit desktop adding machine made from discrete transistors. The input device was pulses from a rotary telephone dial. I couldn't afford those transistors. In middle school I found a magazine article about how to make flipflops from cheap neon indicator bulbs instead of transistors. I tried that, getting some exciting explosions in the basement from 120-volt over-driven bulbs. But they don't switch reliably at uniform voltages. I found a programming book teaching assembler via a fictitious decimal computer TUTAC, much like Knuth's MIX and the early drum computers. In 1966 Scientific American ran a special issue about computers. That was full of exciting ideas about languages, grammars, CDC supercomputers, logic, transistors, graphics, games, communication, and AI. That sparked my career!

I began programming on an IBM 1130 and small S/360 in high school in 1968. At University of Washington, I learned Algol and XPL compilers on the Burroughs B5500 and XDS Sigma 5, and computed lots of prime numbers on the CDC 6400. I discovered how to compile and run CDC programs in zero seconds at zero cost to my student account. I did not share that secret with my competitive friend. All via punched cards. I earned money writing a text editor and graphics terminal in assembler for the Imlac PDS-1 display computer, and writing log measurement apps for plywood mills in PDP-8 (paper tape) and NOVA assembler. Attending classes and paying tuition was the price we all paid for getting access to computers back then. I earned a BS in math and a masters in Comp Sci.

I was then hired as an "Automatic Programmer" at Burroughs in Pasadena CA, working on compilers and on extensions to their decimal Cobol-optimized B2500-B4700 line. Those systems were developed in response to IBM's 1401 ! Automatic Programmer was Burroughs' quaint payroll term for someone writing in newfangled languages other than raw machine code. I worked on Cobol, Fortran, an Algol-inspired systems language, and linkers. I also rewrote some microcode, investigated caches, and got a patent on a simple branch prediction scheme.

Burroughs was clearly past its prime. I moved to San Jose in 1980 for bigger prospects. I couldn't imagine clocking in at 8am at Intel, so I instead joined Four-Phase Systems. I worked on a document formatter, then on a project to build a new VAX-like minicomputer system. My friend Peter and I lusted after the new M68000 based home systems that could maybe run Unix, but they could not yet do that. Four Phase was also now past its prime. It could not evolve its VLSI-based machines all on lease, and could not move from a very centralized architecture to one using cheap microprocessors in each terminal.

I joined Tandem Computers in 1982, working on Cobol and Ada compilers for a new VAX-like minicomputer that was entirely incompatible with Tandem's first T16 fault-tolerant systems. That of course went nowhere. I then worked on Pascal, C, and system languages. I looked at ways to evolve the T16 instruction set. But MIPS and other RISC vendors had arrived, and it was no longer effective for smaller computer companies to design their own custom VLSI chips. So we instead adopted the same techniques published by Hewlett Packard in their similar migration from HP3000 stack machines to risc processors. We used compiler techniques to statically recompile old object code onto the new target, for all customer apps and all system software. And evolved the systems language to become portable, machine independent. 

This migration worked so well, that Tandem did this again and again when SGI collapsed and stopped developing further MIPS chips. The next target was Intel Itanium. Then Dec Alpha when Merced was late. Then Itanium again when HP acquired us and Dec and killed Alpha. Then x86 when Itanium finally died, the last stop. Dizzy making! Tandem was originally a fantastic company. I was in the same good group of people for 25 years . Tandem's products survived but did not grow. Now the best way to achieve scaling and fault tolerance was in massive clusters in warehouse-sized computer complexes spanning the globe..

I joined Google in 2007. working in support tooling for their Linux-based cluster OS group. Most of my code was in Python. My "20% project" was helping in the initial design of Google's in-house PCIE-attached flash storage. It was fun to be surrounded by so many brilliant people and led by fellow programmers.

I moved to Mips Technologies in 2011. Initially on migrating Android applications' ARM machine code onto Mips cpu chips, via object code translation. Then on adapting Android OS source code changes to work on Mips chips. Intel tried this also, Both companies found it infeasible to run ARM-compiled applications on incompatible chips at competitive speeds. I retired in 2017, when MIPS's parent British company Imagination Technologies lost its lucrative GPU partnership with Apple and MIPS lost its competition with ARM.

In retirement, I muse about the technological challenges of the computer industry back in simpler days.