My earliest computer memory was with my dad in his office at The Gap in Kentucky in the early 1980s. He would sometimes need to go in to work on weekends, and for reasons I don’t remember, he would bring me with him and let me sit in front of an Apple III (yes, three) and noodle on it with VisiCalc or BASIC while he worked elsewhere.

Apple III computer.

Later on, they started to get some IBM PC systems, and I would love to go in and play with Lotus 1-2-3 and make formulas and graphs. I think I was 7 years old at the time.

Lotus 1-2-3 on an IBM PC.

One day in 1982, a computer showed up at our house. I think my dad bought it and brought it home, but I don’t remember clearly. It was a Commodore VIC-20 – a popular PC at the time. It didn’t have its own monitor, so we plugged it into our little 13” TV. It could display 8 colors, but our TV was black and white – but that didn’t matter because my imagination could translate those shades of grey into full glorious color.

My first computer -- a Commodore VIC-20.

When you turned it on, you were greeted with a flashing cursor, an invitation to only one thing – writing programs in the BASIC language. The VIC-20 came with a great little spiral-bound manual with some examples of programs that could be written. I remember sitting down with my dad and that manual to type in programs.

The Commodore VIC-20 opening screen, but mine was on a black-and-white TV.

This computer had no way to “save” anything. You could type in a program, up to 4,000 characters in size (approximately one typewritten page of text), which may take all afternoon for an 8 year old with no typing skills. As long as the computer was powered on, the program would remain. As soon as someone (especially a dumb sister) turned the computer off, it was all gone. This limitation had two effects: 1) I got a little more proficient at typing, and 2) I usually would write smaller programs. But I was writing programs … nothing too fancy, but I explored some of this little computer’s capabilities like manipulating text on the screen, colors, and beeps.

My mom recalls a story that any programmer from any era can relate to:

I remember a day when you were probably 9 and Dick was working the night shift, the two of you sat at the Hoosier desk in the family room in side by side chairs trying to write a program to answer multiplication problems. You guys tried and tried, no luck. Soon it was time for Dick to go to work. After he left, you continued working for a few more minutes then, in disgust, you turned off the computer and stomped off to play outside. You were outside for maybe 15 minutes before you rushed back in, sat back down at the computer and wrote four lines of code that delivered the answers to all your multiplication problems. TaDa!

After a few months, my parents bought a Commodore Datasette, which plugged into the computer and allowed it to save and load programs from cassette tapes. This brought a lot of peace to the house, since dumb sisters could no longer spoil my hours of work, and allowed me to more easily experiment with improving programs. It was very very slow, and it had a little counter on the side, so if I was saving more than one program on a tape, then I would need to write down not only the program name, but the tape counter number to fast-forward or rewind before loading it.

Now I could save my programs onto casette tapes.

I had been in a computer class over the summer at a local college, and along with the normal suite of Apple II’s (turtle graphics was my jam) and Atari 400s and 800s, there was one Commodore 64. This was my favorite computer in the room, since I owned its inferior older brother. The college’s C64 was connected to a color monitor, and I would spend as much time as I could with it. Its 64 kilobytes of memory (16 times my old VIC-20) seemed infinite, and it could display 40 columns of text, instead of the 27 columns of the VIC-20.

One day for reasons that I don’t know, the VIC-20 stopped working. My parents put it back in its box and sent it back to Commodore for repairs. I’m sure it felt like an eternity to me to not have a computer. A couple of weeks later, a box was delivered to our house from Commodore. I opened it up and was shocked to see that it was a Commodore 64. I was stunned. I recall this being explained to us as a fortunate accident, and I didn’t lobby to fix the mistake.

Again, my mom’s memory is clear:

I remember being totally surprised when the Vic-20 was returned as a Commodore 64. I called Commodore to ask what they'd like us to do, since we had gotten a different computer than the one we'd sent in. They said, "It isn't worth it for us to send back a Vic-20. We always replace them with a Commodore 64 now. Enjoy it!"

Along with its increased memory and 40 column text, the C64 had some impressive graphics capabilities called “sprites” and a legendary sound chip that basically made it into a 4 voice synthesizer. Fun fact: there are some actual synthesizers sold in the 2000s that used this sound chip.

The C64 opening screen.

The C64 really uncorked my inner programmer. The sprite graphics were 24x21 pixels, and had to be defined by translating the bitmap image into numbers. I made a work board for this, where I could draw the image with a dry-erase marker on a piece of clear plastic that was atop a 24x21 grid, with each row divided into three groups of 8. I got really good at calculating the decimal representation of the binary digits of the image. By this time, we had a joystick connected to the computer, and I had fun writing BASIC programs to control sprite graphics on the screen with a joystick. This was around 1983 (age 9). I also started to develop an interest in making programs to make use of the sound chip, but spent more time on graphics.

I have one strong memory from 5th grade (in 1984) involving a different computer. Despite my lackluster grades, my mom lobbied my school to put me into an advanced program called “SPARKLE” (Students Performing At Remarkable Knowledge Levels Easily – the acronym creator themselves deserving of special recognition). Once a week, the kids in this program would be put on a bus and taken to a different school for some alternative education. This was usually super fun, with brain teasers and fun games. One day there was a guest teacher who had brought the first Apple Macintosh computer. I had seen photos of Macs before, but never seen one in person. It was absolutely stunning – with a high resolution monochrome display and a MOUSE. The guest demonstrated a simple programming language that allowed for easy interfacing with the mouse and graphics system, and wrote a quick program to draw circles on the screen with the mouse. This was so intriguing to me, but it was years before I would touch a Mac again.

The original Macintosh computer. Super inspiring for me.

We moved from Kentucky to California in 1985, and I recall still using the C64 every day.

I don’t remember when exactly, but at some point I got a “Super Expander” cartridge for the C64, which added some neat capabilities to the BASIC language on the C64, mostly around graphics and sound. I remember making a drawing program where the joystick would move the cursor around the screen, then you could press “c” to make a circle, “l” to make a line, or “r” to make a rectangle. It was my best work for quite a while, and I know that my earlier Mac experience had something to do with my motivation to make that program.

At some point around 1986, we got a printer – an Okidata Okimate 10, which could print in full color using four-color thermal transfer tape. Then we got a a Commodore 1541 disk drive, which could hold a whopping 170KB per 5.25” floppy disk (approximately 1/20th of a single photo on your iPhone), and the old Datasette went into a box in a closet somewhere.

Commodore 1541 disk drive. I had arrived! Fun fact: the 1541 was basically a computer in itself -- it had its own CPU and RAM.

I would save up money to buy games for the C64, and my favorite was Chuck Yeager’s Advanced Flight Trainer. I was always an airplane nerd, and this game let me fly legendary planes like the SR-71. I also played Skyfox, Congo Bongo, Jumpman Jr, The Great American Cross Country Road Race, Ghostbusters, Master of the Lamps, Buck Rogers, and Ace of Aces. I also had a subscription to the magazines RUN and Compute’s GAZETTE, which would have pages and pages of interesting programs to type into the computer. Fun(?)

In the summer between 5th and 6th grade, my mom enrolled me in a camp at Cal State Hayward (now Cal State East Bay) that was computers, photography, and swimming. Well two out of three ain’t bad … my calculator watch was stolen from out of my shoe next to the pool, further cementing computers and photography as my hobbies of choice. The computer section was basically an open lab with Apple IIe’s, which was always fun.

Apple IIe with one floppy drive and Apple's green monochrome monitor.

In 6th grade, instead of going to morning recess, I would go to the 2nd grade class and teach the kids there how to use the Apple II they had in their classroom. Definitely my choice!

One more nugget from my mom, that anyone who knows me today can certainly understand:

When you were helping the 2nd graders learn to use their Apple 2s, the kids called you The Computer Wiz. I was in the office one day, when a mom said to me, "Aren't you The Computer Wiz's mom?" I told her I was. She said, "Well, thanks a lot! My 2nd grader will only wear shorts to school because The Computer Wiz only wears shorts!" That still makes me laugh!

I would also sometimes hang out after school in the computer lab with Mr. Shupe and play Choplifter on the fleet of Apple IIs there. I also made a neighborhood friend whose dad had an Apple IIe in a custom wood chassis. We would play Zork and Hitchhiker’s Guide To The Galaxy all afternoon. One day he wondered aloud if I only liked him for his computer … well, we did have a lot of fun on that computer!

The first screen of Zork on an Apple II.

My dad started working for a computer company around 1986 called WYSE Technology. They were well known for their terminals, but they also had a line of PCs. He brought home a computer one day – a very nice slim design WY-1100. It had a 5.25” floppy drive and a 20MB Seagate ST-225 hard drive. I learned DOS on this computer, and for the most part stopped writing programs.

WYSE PC-1100 -- our first PC-compatible at home.

One day my dad brought home a floppy disk containing AutoCad version 2.18 (it fit on one 5.25” disk). This was amazing software and I spent many hours drawing houses, cars, and other objects to perfect scale. I got to know most of AutoCad’s commands, including geometric commands that would latch objects to other object centers, tangents, perpendiculars, etc. This is where I learned the word “orthogonal”. AutoCad supported writing macros in LISP, which was a completely different model than the BASIC language I knew. It was still fun to learn LISP in order to script AutoCad.

AutoCAD 2.18 (in color!). This Space Shuttle image was a demo that came on the disk, and took a minute or so for my computer to draw.

Around this time, I recall going to a Whole Earth Access computer store and seeing an IBM PC/AT with an 80286 processor and EGA graphics. It was running SubLogic Flight Simulator (later Microsoft Flight Simulator) and it was awesome. I had to have Flight Simulator.

SubLogic Flight Simulator in EGA graphics. Meigs Field in Chicago, of course.

The timing is a little fuzzy, but perhaps around 1987 my dad brought home a different computer – a WYSE PC286. This one had a 16-bit 80286 CPU, and the WYSE WY-700 graphics system. This thing was awesome – a white phosphor 15” monitor that could display an amazing 1280x800 resolution. Nothing else at this time came close to this level of graphics. AutoCad on this was incredible.

Photo from some marketing materials for the WY-700 graphics system.

Around this time, I got a modem card and entered the world of BBSing. BBS stands for “Bulletin Board System” and was the precursor to the consumer Internet. To use a BBS, you’d use your computer and modem to dial the phone number of the BBS, then navigate its text menu system to send messages, browse information, or download files. I learned all about file transfer protocols (XMODEM, YMODEM, ZMODEM) and terminal emulation (ANSI, etc). We only ever had one phone line at home, so while I was BBSing, our home phone was busy, and the Dumb Sister factor came back, since if someone picked up the phone in the house while the computer was connected to the BBS, that connection would get messed up. My favorite BBS was called F.A.R.T. – Fremont Area Remote Terminal (George, if you’re reading this, Thank you!). Choosing a local BBS was important, because calls even to fairly nearby cities could cost money and I was 12.

Typical external modem from this time. My first modem was on an internal card.

At some point, we got a free trial of the Prodigy service, but it was lame compared with the BBS’s. Cool graphics, but too corporate.

In my senior year of high school, I started my third job, working at the computer repair counter for $6.50 an hour at Fry’s Electronics in Fremont. My best friend Derek’s dad was a manager there and got me the job. I learned all about the ins and outs of PC-compatible computers there, aided by some old timers who made the service counter their career. I saw the transition to 386, 386sx, and 486 machines there, as well as MFM to IDE hard drives. SoundBlasters were all the rage, as were NEC MultiSync monitors. Some rich customers even bought fancy computers with 17” NEC monitors, and I got to assemble and test them. I ended up taking a few side jobs with customers who wanted to just have me come to their house and fix their computers or networks. That was good money – around $30/hour.

Fry's Palo Alto location. We would have a monthly meeting here.

I don’t recall how it happened, but I ended up with a full IBM PS/2 Model 30 setup when I moved out of the house when I was 18. I think it was some family friend’s extra machine, and I eagerly took it. This was also an 80286-based computer, but the PS/2 was built like a tank. It had a proprietary (“MicroChannel”) architecture, so none of the normal PC stuff worked with it. It was a good computer though, with 256-color VGA graphics, a 3.5” floppy drive, and the best keyboard ever. I kept that keyboard for almost 20 years and used it in my jobs after college.

IBM PS/2 Model 30.

Starting in 1993, I moved to southern California to go to community college. The PS/2 Model 30 came with me. I was making good money doing freelance work and in my normal job doing IT stuff for a corporate travel agency. I saved up for a Gateway 2000 486-based machine with a sweet 17” “Crystal Scan” monitor.

Gateway 2000 slim desktop system.

A friend who went to UC Irvine shared his university Internet login with me, which allowed me to be on the internet for the first time. I configured the SLIP software (Trumpet Winsock) in my Windows 3.1 system to use the modem to talk online, and had a blast getting to know the UNIX command line, GOPHER system, IRC, and eventually using the Mosaic browser. I remember when Mosaic started supporting inline images in web pages in 1994. This was the beginning of the Internet revolution!

Trumpet Winsock configuration on Windows 3.1.

I took a detour through OS/2 Warp in the 1994-1995 timeframe. What an futuristic operating system! It was leagues ahead of anything else at the time. The way it handled multitasking was far better than anything I had used, and getting it on the internet was very natural, especially compared with all the hacky stuff that needed to be done with Windows 3.1. I was into IRC (Internet Relay Chat – a system of public chatrooms) at the time, and made some cyber friends. I met up with one guy I’d chat with since both of us thought we might need a roommate, but he was a better cyber friend than IRL friend.

OS/2 WARP desktop in VGA graphics.

In 1995 my world changed when Windows 95 was released. I found a bundle to purchase that combined Windows 95 with the CorelDraw 6 suite. It even came with a novelty CorelDraw inflatable hot air balloon. CorelDraw allowed me to take my freelancing a lot farther, and I started to get more jobs doing graphics and page layout work.

CorelDraw 6 on Windows 95.

My job at the corporate travel agency was still going strong. There, I supported their 50-person phone system, IBM Token Ring network, all PCs in the office, and wrote reporting and automation software which integrated MS Excel with the IBM AS/400 computer in the office. Not bad for a 20 year old with a couple years of community college. But eventually I was done with community college and was accepted to transfer to Cal Poly, San Luis Obispo. I let my job know and they made me a wild offer that I’m glad I refused. They told me they would pay me $75K/year (I was making less than half that at the time) and pay off my car if I stayed. I’m glad I didn’t.

AS/400 marketing materials. I think ours was a Model B30 or B40.

I moved all my stuff to SLO and started at Cal Poly. Starting from scratch was a fun challenge. The first thing I did was to make a flyer to advertise my freelance services, but I never needed to use it. I got a job at the university doing tech support. They didn’t even interview me – the person doing the hiring heard me talking with someone in the hallway before the interview about troubleshooting an internet problem, and they offered me a job right there. I was to be one of the campus Level 2 support people. In the three weeks I had that job, I think I fielded one call. The rest of the time I was just in a room hanging out with a fancy IBM PS/2 Model 80. It was dusty inside, so I took it apart one day to clean it. My boss came into the room when I had it in pieces on the floor and fired me right there. Easy come easy go! :)

However, another group at the university had been talking with the IT people about a need they had, and so I got connected with Judy in the Multimedia Reference department at the university library. This was a much better job for me – I was to build a comprehensive website as part of a project the library got a grant to do. I learned all about HTML, Javascript, and web servers as part of this job, and made good money along the way ($17/hr). This connected me with other opportunities to work for “grant money”, which ended up being over $100/hour a few times. One of my favorite professors, Barry Floyd, hooked me up with a freelance job for a local NASA contractor to help them write some TCP/IP-based cluster infrastructure software in Visual Basic 6. I was totally over my head, but struggled through the task and made a few thousand bucks along the way. This was my introduction to state diagrams, and I didn’t appreciate them as much as I should have at the time.

As I got closer to graduation from Cal Poly, my good buddy Derek again came through with the job hookup. He was one of the first people to work at Yahoo (employee number 6, IIRC), starting in 1996. By the time I graduated at the end of 1998, Yahoo was the powerhouse of the Internet, and had grown to several hundred employees. My other dear friend Mona (who also was friends with Derek) was also working at Yahoo as a “Producer” which is the equivalent of a Product Manager today, and had good things to say about the place.

An early Yahoo! homepage.

Derek thought I should be a software engineer, which I scoffed at. I was a business major, with an IT concentration, not a CS major. I thought I’d be using software to solve business problems or maybe be a product manager. Derek connected me with JohnR, who was managing a team of developers at Yahoo. I went into Yahoo to have a conversation with JohnR, and left more convinced that my future was not in software engineering, but perhaps as a product manager. He felt otherwise, and asked me to come in and interview for an engineer job. I thought I flubbed the interviews, but two days later had a job offer. It was a good offer, and so I closed my eyes and dove in headfirst to a field that I have grown to love.

It’s been 22 years since then, and I have never had a single regret about taking this path. Software development is a fantastic combination of creativity, discipline, problem solving, communication, and relationship-building. It works for me, and I’m thankful to everyone along the way, especially my dad and mom who saw my potential early on and supported it with their time and money.