I grew up in Beachwood, OH, a suburb of Cleveland, privileged with a mother who ensured that I had lots of books at my reading level, with support for my hobbies, and with dad who asked his kids to find square roots of four-digit numbers at the dinner table.
My first computer was mechanical. I received it in 1969 when I was eight years old. It had one three bit register and no storage. It was a DigiComp I, assembled from plastic and metal parts. I learned boolean logic from reading the manual and running the programs but the machine broke before my reading level allowed me understand how the programs worked.
Like many of my peers, I was into the space program, knew the various rocket names, and had plastic and cardboard rocket models. I built and launched model rockets off and on from ages 9-16.
I got into astronomy from age 10-13, drafting/architecture from age 12-14, and electronics from age 13-16, reading everything I could find, learning constellations, and building vacuum tube radio kits. I had a $3 Edmund Scientific Company cardboard telescope enhanced with a real eyepiece and started grinding a telescope mirror. I stopped reading the classics and read all the good science fiction I could find, especially Heinlein, Asimov, Blish, and Bova. I was a big Tolkien fan too.
New the Readers Digest Treasury for Young Readers, which had an article by Martin Gardner (p. 176) that described how to build an exhaustive decision tree evaluation machine for a 3x3 chess game called "hexpawn". It was presented as a "learning computer" because you played random moves and kept only successful paths. I built a simpler but equivalent implementation on paper and ran it through to each of 24 possible second-to-last states. Playing with this game opened my eyes to what a computer could be.At age 11, I read the
The only book about computers in the Las Vegas public library in 1974 was full of block diagrams and descriptions of specific systems but too vague to help me in any practical way.
I first saw real computers around age 13. My Dad, an early computer enthusiast, bought the first true programmable calculator, the HP65, when it first came out. It could store 100 keystrokes and had ten registers. He never had much time for programming but I learned all about it and wrote a casino-rules blackjack program to help with his card counting hobby. After that, I never stopped writing software for fun.
Around age 15 my Dad bought an IBM 5100, a 55 pound "luggable" computer that came with BASIC and APL and used magnetic tape cartridges. It had MSI (as opposed to LSI or VLSI) logic, was build in Boca Raton, and was the precursor to the IBM PC. He hired a programmer but I got to use it too. I was in heaven, learning both languages and typing in long code listings from magazines, having to adapt them to its somewhat unusual version of BASIC.
At the same time, I started hanging around my high school computer room, which had two model 33 Teletypes with 110 baud acoustic couplers that could be connected to the school district's mainframe or to the UNLV mainframe (via questionable accounts socially hacked by my peers with UNLV professor parents). There was no computer class but we played computer games at lunch and I wrote programs to help with math and chemistry homework.
That summer we started sneaking onto the UNLV computer building and were eventually adopted by the staff as unofficial T.A.'s. I took a UNLV FORTRAN class where we had to submit our first assignment (only) on punched cards. The staff let me use the special APL graphics terminal with a 300 baud acoustic modem and I got heavily into APL.
Meanwhile, my dad's $75/hour IBM 5100 programmer delivered an unusable mess with lousy performance because it read the tape drive after each action. I gave it a try and I provided a program that loaded all the data at runtime and had a much more efficient workflow. My software ran that part of his accounting for the next five years. This success got me permission to hang out at the IBM office and learn RPG II on a System/34 computer.
I also played around with a Kim-1 6502-based microcomputer board but I didn't learn much assembler and the cassette tape drive interface failed soon after I got it.
I competed on the debate team throughout high school. My partner and I became one of the top two teams in Nevada. From debate I learned a lot about the complexity of real-world issues, which has greatly informed how I see the world. Debate should be a required class.
I entered a combined college program designed for three years at Occidental and two years at Caltech. Oxy had just acquired a Prime 400 minicomputer with 9600 baud CRT terminals and I had a great time with my friends writing game programs like chess and a much enhanced version of the classic Star Trek teletype game.
During my first summer break I worked for Business Computer Consultants in Las Vegas. My supervisor was an accountant who knew some programming and he specified each screen for me to implement on the now familiar IBM 5110, an upgraded 5100 with dual 8" floppies (120 lb for the unit)
Back at Oxy I became a T.A. and technician, wiring up new terminals and fixing broken ones, and was a sysop for the schools IBM 360.
One evening a student I'd never met needed help using a statistical program I'd never used before, nor had I taken stats. I couldn't figure out his problem quicky enough and he got a kind-of despairing look on his face and left. I don't remember seeing him after that and he transferred to Columbia the next year, I didn't hear about him again until 2004 when he was the keynote speaker at the Democratic national convention. After a few minutes Claire, who had classes with him, yelled "Oh My God! That's Barry!". You can hear her tell it at 3:20 into this NPR clip. After awhile I realized that, 23 years previously, I'd failed to provide effective computer support to Barack Obama.
In 1981 I started working part-time at JPL conducting radiation dose analysis (Monte Carlo simulations) for the Galileo mission to Jupiter, which was really cool for a former space geek. My team had 3D models encoded in rows of numbers. Because I had access to the same type of graphics terminal I used in high school, I wrote 3D visualization software for the models, which helped considerably.
In 1982 I moved to Caltech and tested into a graduate-level computer graphics course taught by Jim Blinn, one of the pioneers of computer visualization. We had really excellent 68000-based HP 9826 microcomputer with 4-bit 600x320 graphics and each student coded a complete graphics pipeline down to the pixel level.
I also designed and wired a 6800-based board with an analog input chip and an LED display that showed left and right stereo channels or four frequency channels.
In my second years at Caltech I completed a VLSI class. I also took Blinn's advanced graphics course and wrote a chip design tool that I used to design an 4-bit multiplier chip. I had to write a lot of 68000 hand-coded assembler to make it fast enough. I loved the Motorola 68000 and hated the Intel instruction set with a passion until I later got interested in 80286 chip architecture.
Still at JPL, I moved to a group that calculated the intertial properties of each of Galileo's individual parts. This was needed because half of its 2500 kg rotated at 3 rpm. I got to go into the clean room a number of times to inspect and weigh parts. I was responsible for all of the cabling and share and office with two old-time JPL mechanical engineers in a rickety old building that had once been a spacecraft assembly bay but had been retrofitted with two floors of offices.
I stayed at JPL after graduating in 1984, enjoying the beach and music in LA, hiking in the mountains, and cycling seven miles to work.
Also in 1984 I bought a newly-released IBM AT, which was the first widely available 1 MFLOP computer (when overdriven to 8Mhz by swapping out the 6Mhz crystal). I ported my college graphics pipeline to the PC and spent many evenings writing programs of all kinds, learning C in the process.
I extended the graphics pipeline to allow pen tablet input for describing cable routing and tracking a complex cable's individual wire components (10% of the weight was cabling).
As Galileo wound down I also became system manager for the group's new network of microVaxes and CAD terminals and did some spacecraft configuration design too. I hacked together, in the days before GUI's, a superior secretarial word processing system using WordPerfect, a Microsoft mouse, and fonts on an HP LaserJet+.
In 1987 I moved to Ithaca NY to marry Claire, who was getting her master's at Cornell. We loved Ithaca and enjoyed the somewhat post-hippie granola environment compared to LA of that time. Over the next wonderful 26 years we learned from each other, raised two very excellent children, and became long distance cyclists on our tandem.
I worked for Ithaca Software on their HOOPS 3D graphics application toolkit, using many different hardware platforms and GUIs, and traveling to customer sites for custom implementations.
I moved to Bellevue and Microsoft in 1989 when my wife graduated. My new Microsoft team was just starting to design a kernel mode multimedia subsystem for a totally new 80386sx-based PC to be built by IBM as a consumer device. Before too long, the overall collaboration with IBM ended and that hardware project died.
My team was tasked with specing the hardware and software for the new industry standard Multimedia PC (MPC) specification for Windows PCs. We collaborated with lots of outside companies and as part of the new Interactive Multimedia Association. I wrote the Media Control Interface (MCI), and the CDROM and lasar video disc drivers. For the first time there was a standard PC with 640x400x8 graphics, a CDROM, a mouse, and a sound card. This was a really fun time for me when all of my colleagues were young, none of us had kids, Microsoft was just starting to make a splash in the world, and we all knew we were doing something new and special.
After we built the MPC we added a new content team and supported their creation of the Encarta CDROM encyclopedia and other cool stuff. The hybrid team also built a new prototypes for authoring systems that didn't go anywhere.
In 1994, after helping prototype what became the Windows Clockwork pipelined multimedia component, I joined a new 3D graphics and multimedia team that was tasked with writing Hollywood-level 3D software for new powerful set top boxes that were going serve up content for home customers on their TVs. The joke was that Microsoft wanted a nickel every time somebody ordered a pizza.
After a few months of home-grown design, Microsoft bought Softimage, a Montreal-based Hollywood-level special effect software company. My team wrote an IRIS GL emulator that let us run Softimage 3D's one million lines of Unix-based code uder Windows Open GL nearly without modification.
In 1996 I joined Splash! Studios, a new game company run by my old multimedia friend Patrick Ford. We shipped a first-of-its-kind live-action kids' game with good acting, original songs, 3D rendered backgrounds and the head Power Ranger as the lead. It was good-quality family entertainment. Unfortunately, the company shut down for business reasons less than a year after I got there.
I moved to Visio and worked on almost every part of it at one time or another, shipping three major releases up through Microsoft's acquisition of the company. I became the lead of a small test tools team that supported our transition to becoming an Office product. I also ran 250-computer test lab. I loved our new corporate headquarters built out near the Pike Place market and became a regular bike commuter on the I-90 trail from my house, sixteen miles away in Bellevue.
Around 2000 I became increasingly interested in math, especially math history, and I read a lot and worked through problems in topology, differential equations, and other textbooks. I volunteered for the previous seven years as a mentor in the Bellevue School District.
In 2003 I left software and earned my teaching degree from Antioch University certified to teach high school math or physics. I taught computer classes at Seattle's Cleveland High School for one year. I often learned Dreamweaver features just a few days ahead of my class but posted walk-throughs of each new lesson before every class.
I really wanted to teach math in Seattle but wound up teaching math at Woodinville High School for the next five years, creating lots of cool content. I loved working with the students. I was also a school-wide computer and A.V. tech and ran a small team of student techs. During this period I also learned LAMP programming, worked on a bunch of small programming projects, and learned a lot about the Semantic Web. I switched all my personal computing over to Linux in order to get good at the platform.
I joined Intentional Software in 2012 because of its commitment to semantic modelling. I worked on a graph layout projection, a really fun spacecraft control software project with JPL, and on Intentional's partnership with David Allen's "Getting Things Done" paradigm. I wrote drawing features for a Whiteboard precursor and then I was a program manager for awhile on Whiteboard and on a fun kidpix-like program. Since 2016 I've worked on the developer support team and for the last year have focused on building design tools.
Note: Logos and images are included on this page under Fair User provisions. No association with any of the associated entities is implied.