Networks of Life
Throughout a life full of constant moving and changes, computers provided a consistent passion.
I was the youngest of four, five counting the brother adopted out before I was born. We were fairly poor, and much of my childhood was spent packing and unpacking as we moved every year or so. It was junior high school before I went to the same school two years in a row, and I had graduated university before spending a second year in the same home, although I lived with my step mom off and on throughout high school. She is one of many whom I owe a debt that I cannot repay.
In telling this story, I had to choose what to include and what not to. There is so much detail left out, and in looking back over my life, I could tell this story 50 ways, and depending on what I included it would sound like a different story. I hope you will forgive my imprecision. I was born somewhat gifted in math, and some of my earliest memories were of my oldest brother (six years my senior) letting me help him with his math homework. By the time I was allowed to start kidergarden at four, I had a pretty solid handle on math. On my first day the teacher handed out a worksheet, which I completed before she returned to her desk. Waiting patiently for her, upon her return I explained that I was finished. She graded it only after I insisted, and was surprised that I got them all correct. I don’t remember exactly what I said, but I’m told I precociously replied that of course I got them all right, I was a genius. They sent me off for testing, and wanted to place me in second grade, but my parents would not allow it, since I might end up a nerd. This story repeated a few times, but despite repeated refusals to allow my early advance, I still ended up a nerd.
At some point I started playing with simple Vigenére ciphers and around the age of 10, sometime around 1976 or ‘77, I can remember wanting to buy a computer. I did not know what I would do with it exactly, but I simply had to have one. To my father’s credit, his response was not shock. At least not that I could tell. My father was an extremely intelligent blue collar worker, who drove locomotives for the railroad. His response was simply, if you save half, I’ll cover half. I suspect he felt safe, but off I went, determined to save half of $5,000. I should mention that my father, unbeknowst to me, had used computers in the 50's. He was signal intelligence in the Army. It sounds really cool to say my dad was a spy, technically he was, but really it meant he listened to morse code, wrote it all down, fed it into a computer, and did crypto work on it. I still don’t know exactly what he did, we never spoke of it. But I like the sound of saying “I had a strange childhood, my dad was a spy.” I have no memories of talking to my dad about crypto, or math, at least not until after high school. I did learn a little morse code from him before I started school, but I don’t remember doing anything with it, and I needed to relearn it as an adult.
The next year, 1977, I worked at whatever odd jobs I could find, taking out the neighbors’ garbage, shoveling snow, babysitting, pretty much whatever I could find. That Christmas my father bought me a book on mainframes and online services, and a kit to make a computer from manual switches. I spent quite a bit of time playing with it, and continued my quest to raise funds. As time wore on, I got older, and a number of interesting things began to happen. Some of my father’s friends found my efforts endearing, and began to offer advice. One of them, Charles, gave me a well worn book “How to Live Like a Millionaire on an Ordinary Income.” I learned a lot about marketing myself, budgeting and how to carry myself. A title of “Millionaires Live Frugally” would be more accurate, but probably would have sold fewer copies. Bartering professional services, cash flow, budgets, all of that, at some simplistic level, started to enter my view of the world. In addition, he gave me advice on making my business cards look professional, and more. My father gave me some great advice on budgeting as well, but he seemed unable to follow his own advice. There are some sad stories I am glossing over here, my father found religion when I was four, and passed out in Church one day. They took him in for observation and he was given electroshock therapy. He later more or less recovered and got into every eastern or new age religion that came down the pike. I was steeped on mysticism as a child. I still wonder what would have happened if they never scrambled him. I was four, and my memories of all this are vague.
But I digress. Soon I met another person, a man who would influence me more than any other person in my life. He owned a body shop, and he let me work for him.
Now understand, when I started, I was quite literally a 5'5" 115 lb waif. I fed the dogs, mowed the lawn, cleaned toilets and swept the bondo dust from the floors into 55gal drums. Those drums outweighed me. One day, I was inching a drum towards the dumpster, when another worker Mike, asked “Why don’t you just drag it?” I explained that it outweighed me, and was nearly my height, and when I pulled on it I moved instead of it moving. So, I picked it up, moving it inches at a time. I can only assume Jon kept me around for amusement, because it was surely not for my work output. Eventually I became more productive, but during those years I learned a lot about work ethics, and what it takes to succeed. Hint, it takes a lot of repetition and effort. Things you did crappy one day, became your go to skills later. Years later, Jon asked me to remove some paving stones from in front of his house, they were holding water where it could drain into the basement. I explained I could remove them without breaking them and use them to pave around the pool, stopping much of problems we had with sand getting into the pool. He looked at me in shock, and asked if I was sure. I said yes, and he said “Do it.” When I was done, he explained that this was what he wanted from me from the first day I worked for him. He was really busy, and he wanted me to see things, and either fix them, or suggest how to fix them. A lightbulb came on that day. Up until then, I had been doing what I was told. Initiative had seemed risky, and to some extent in my family it was.
This was a lesson I would see play out over and over, as my entrepreneur friends would complain of a lack of initiative in their employees, and I would explain that they needed to arrange for those employees to have this experience. Further, they need to make initiative safe. If the employees fear punishment more than they crave praise for initiative, they will take the safe route. Employees need care and nurturing. Success comes from continuous effort. It is very hard to tell which skills will come in handy later. Another thing to consider, is that despite my father having a decent blue collar job, he was horrible with money, and we were always broke. He was good at dispensing advice, but his ability to follow it was limited. Long before this time, my mother and father had split up, and I was doing the divorced parent shuffle between TX and MI. We also moved around a lot, which made it hard to find a place to work on things. Life improved quite a bit when my father married my step-mother, and although we still moved around town, whenever he got kicked out temporarily, she let me use her address and I finally was able to attend the same school for more than a year, spending all four years in the same high school.
It was also at this time, just before high school, that I finally saved enough to get my computer. A TRS-80 with 4K of RAM, a cassette drive to store programs, a TV set to watch it on, and a 300 Baud modem. High school was an interesting time for me. This was the early 80s, and only upperclassmen could use the computers. So, I socially engineered access to the computers by trading games to the janitors in exchange for access after school. The teachers found out, and I was allowed independent study. While on independent study, I wrote a number of graphics programs. I wrote a program that did spirographs, that animated a space shuttle taking off, and so on. My teacher entered one of my programs into an art contest, and it won first prize. This was not the last time my programs did things for me when I was not around. At university one of my bots would play MUD for me, MUD being a multi-user-dungeon role playing game, but that story comes later. My teacher also would occasionally give me problems to work on. When the school districts merged, she had two lists of employees and she asked me to turn them into one list and sort them. One of her students suggested bubble sort, and I looked at them, asked if they were sorted, and when she responded ‘Yes’ I said, why not just keep track of where you are in each list, and move the correct name into the combined array. You are finished when both lists are empty. She seemed rather shocked, and it was only later when I had a data structures class at university that I realized not everything was self evident to other people.
Our high school, like many, had a service called MOIS, for students to learn
about career choices. It was accessed via dialin modem to a mainframe. I later met the sysadmin, who had a roleplaying game installed (text only) and would run it at night. Since I had a modem and a computer, and I knew the dialin numbers, I spent an awful lot of time dialed in at night playing “Wizard” the role playing game my friend installed on the system. I also attended some vocational training in electronics, which came in handy later in life.
After graduation, I moved to TX to live with my oldest brother, since I was raised to have no value for education. I worked at a gas station, and the owner was a maternal family friend, who suggested I might be happier
using my talents, so I got a job at the Radio Shack near NASA and met
a lot of neat people. While there, I met people who were doing all of this
cool stuff, and I would help them find solutions to their problems or at
least find the parts they needed. I spoke with them about doing what they do and they told me flat out, without a degree this is not going to happen. So I applied to U of Houston and was accepted. Once accepted I told my dad, who informed me that I had been accepted a few years earlier to the honors program at Western Michigan University. When I asked why he did not mention it, he said he thought I did not want to go. Then he told me that if I moved back to Michigan, he would pay my way. I moved back, but once I signed up, and presented him with a bill, he said he had no way to pay for it.
So now, with no job, no money, and no savings, I had no way to start school. This was where Jon, you remember Jon from my youth? Jon stepped up and split my first semester with my grandmother. If not for Jon, I would probably be digging ditches. Although I got my financing in order, I can never really repay that first semester. I only hope that someday I can help someone else.
The first few years were uneventful, I made the Dean’s list my freshman year, and I accepted an ROTC scholarship. The scholarship covered my expenses, and I lived with my dad and stepmom. It was somewhere around this time, I forget exactly when, that my friend and I made a wireless network. I think it was around 1986. The first project was to receive morse code on an old AN-GRC R392 shortwave receiver.
He wired the squelch relay to an external connector, and I connected it to a joystick and wrote the software. I could get 18 words per minute on a 1MHZ processor with 16K of RAM. The algorithm was simplicity itself. You listen for a moment, and determine the average length of dots and dashes. Then you know dots are shorter than average, dashes are longer, and letter gaps are much longer than a dash. I arranged the alphabet in a tree, with nothing as the root, and dots to the left and dashes to the right. You start at the root, and move down the tree on each dot or dash. Once you get a long pause, if you are on the root, do nothing, if you are on a letter, print it, and move back to the root.
The second project was to wire an AN-GRC-PRC-9 transmitter into the TRS-80 cassette port, and have the computer sit in a loop loading a single record. If you entered a sentence on the keyboard, it would key up the transmitter using the cassette motor relay, and save the single sentence record to the cassette as audio. The other computer, in a loop listening, would receive and display it. Then both computers resume listening. It was a 1500 baud chat network, almost a crosstown LAN, without the overhead of a real protocol. Not bad for a kid in 1986. After a year or so, I decided to live near campus, and I got my ham license, and we rebuilt the same system using ham radios and high gain Yagi antennas. A nice little 25 mile chat program running on 250mw ham gear. But I am jumping ahead.
In the end we disassembled it, and just spoke in morse code because it was
easier, but I had a lot of fun with that system. Later I would learn digital signal processing techniques, and perform this on much more powerful machines as FFT (Fast Fourier Transforms) and the like. During my tenure I ended up working for Technical Computing Services, where my boss John taught me cabling, phone wiring, LAN wiring, and other basic networking skills. I learned a lot at that job. There was also a neat story where my ForTran professor asked me not to show up to class. In exchange, as long as I turned in my assignments and met with him once a week, he would warn me of exams, and ensure I had all the reading assignments. On the first day of class, I was asking a lot of questions, and he thought it would be better for everyone if I was not around distracting the other students.
Somewhere in here, I took a break from school. My father had gotten into a cult and since I was living with him, I got into it too. I learned some interesting things, but I also dropped out of school, and lost my scholarship. With a lot of help I got back into school, but I really messed up how I handled this. In the end, with a lot of help, I returned to university and graduated. Another lesson I learned, is that nobody is ever really self made. We certainly do a lot to ensure our own success, but success also includes the society we live in, the land grant university that made classes at least somewhat affordable, and the support of the people around us.
After graduation, I worked in a medical lab for a year as a temporary programmer. One day I arrived and they were all gathered around the results printer. I asked ‘What happened?’, and they said ‘Jerry almost killed someone. He had a hard coded exception to not check the results before sending if the age was 0, and someone who was 100 had some results done, but the lab gear was out of reagent. The result was insane, but went anyway.’ Jerry had used 2 digit ages, it was like watching a sneak-preview for Y2K. They were not sure what to do, and I just replied, ‘Why not use Hexadecimal, humans don’t live to 256.’ They seemed pleased, but then asked how they would change 250 programs. I looked at them blankly and said ‘Why on earth are you editing 250 programs when you can write a program to fix your programs?’ It was only a moment later that I realized I had volunteered to fix 250 death traps, with software, using software I had never seen.
This did not seem like something I wanted to be responsible for. It was also disconcerting that the job was on a mainframe, and seemed to be headed nowhere. The system used a Wang VS-64 and Wang had filed for Chapter 13 bankruptcy. I was hired to convert the BASIC programs to C, move them onto a Unix machine, and help with the Novell LAN. Jerry refused to move to Unix complaining that $5,000 was too much money. I tried to explain that Jerry was using a terminal on a mainframe. Even though I cabled him a second terminal to improve his speed, he would still be so much faster on Unix running X Windows, and that the money represented 2 months pay. Jerry was a lovable drunkard, who embraced the Peter Principle with all of his might, and did not want to be promoted past his level of competence. He was good writing BASIC and COBOL on an obsolete mainframe and did not want to change. So I moved on, finding a job with a small company called ANS in Ann Arbor, MI.
ANS was Advanced Network and Services. We had the contract running the US Internet core under NSFnet contract. I started on the helpdesk, in May 1994 and learned networking. While there I learned all sorts of things and used my scripting talents to triage problems, convert man pages to HTML and all sorts of other tedium. Eventually two of us were offered promotions and we could not decide who got what job. So we flipped a coin, and I lost and became the senior engineer from operations for the world’s largest modem pool, with 612,000 modems. And my friend became a second level network engineer.
My time in dial was fantastic, I met all sorts of people and had all sorts of experiences. I spent a lot of time trying to hire people and I wrote an 80 hour curriculum to teach new dial engineers. I taught the first class and then taught the best of them to train the following classes. In time, we had a dozen second level engineers, and 30 or so first level engineers, all providing premium support. The initial support and engineering was all provided by AOL. We did not deal with end users. Our first level engineering staff all worked on the dial gear itself. In addition to hiring and training, I also provided third level engineering support, and I worked with software developers to develop anomoly based outage detection. We would track usage by time of day and day of week, and when a node was below average we would investigate. I also developed triage tools to look through the raw data and find problems. We had some brilliant developers who would also do amazing things for me.
Soon after this, ANS was purchased by AOL, and then sold to MCI/WorldCom and merged with UUnet. I had just switched from dial engineering to capacity planning, and ended up in EMEA Engineering, living in Amsterdam and responsible for Europe, Middle East and Africa. We were rolling out the STM16 MPLS network, and I was working with Juniper and WorldCom to make the STM16 router interfaces work with the European SDH gear. STM16 is the European equivalent of SONET OC48. It was at this point that I was not allowed to do physical work, and I was kind of bored, so I left for a small company who was purchased by Cisco, where I tested routing code for what would become the CRS-1.
This was a fun job, and involved more automation. Around this time I hit a rough patch in life, got a divorce, lost a few relatives, and my father had a heart attack. So I decided to take some time off work. When I was ready to return, things has changed and the dot bomb had exploded. But a friend of mine who worked for the University of WI, Madison scored me a nice job as a network engineer doing deployments. I ended up doing a few deployments, but mostly I wrote automation code, and upgraded the backbone. I also redid the core routing, and set up BGP peerings with various internal customers who we needed to keep at arm’s length, and helped facilitate the peering with Google. This was the first job where sexism was a large issue for me. My fellow network engineers were awesome, and my boss was awesome, but a lot of the old guys would second guess my work. I had bumped into sexism before, but it was always external.
When dealing with phone companies as a dial engineer, sexism was rampant. It was often useful to have a male colleague repeat what was just said, in order to get the BellHeads to listen. But here, I would tell field services to install a card in a router, and they would ask me to confirm with one of the guys it was necessary. I was senior by both job title and pay grade, but that was how it was. I enjoyed working at UW Madison, but at one point, my director pulled a dick move, and my boss at the time was this nervous guy, who blindly did as instructed without asking about what happened. The folks who admin the unix hosts said I had some MP3 files in a tarball, and the backup failed. The director ordered me reprimanded, and my boss wrote me up on paper and sent it to HR. Except the tarball was tiny, and the MP3 files were my own. I had backed up my workstation to the server before moving between offices. I mentioned it to a friend casually, who asked for my resume, and the next thing I know I am working at Microsoft in Silicon Valley.
The work was kind of boring, but it was a good company. The thing is, the system was set around rank-stacking meployees, and my manager was new. We were also not from Redmond, so I knew I would either move to Redmond or leave the company. So after my first year I moved to Berkeley and worked for the University of California System. Working at UC Berkeley was surreal. In the interview nobody asked me any questions, and I was told I had the job by my old manager who guessed based on the reference check. I felt I had bombed the interview, why else would they ask so few questions? Nobody really interacted with me much, and in the end, I knew the homeless people better than my coworkers. After about a year I was told I was not working out. So I called around and the UW wanted me to return so I agreed.
It was at this point that they wanted to change passwords. I mentioned I was leaving, but they seemed OK with that. They asked if I was going to be malicious and I explained my philosophy, that network engineering is a small world, and if you screw over your employer you are effectively unemployable. So even though I had no hard feelings, even if I did have hard feelings, there is no way I am going to screw them over. So it comes time to divvy up the password change, and the first person takes a dozen Junipers, the next person takes a couple firewalls, and I volunteer for the Cisco routers. They looked at me blankly and one of them asked, “You do realize there are 1,500 routers?” I looked back at him and replied “Yeah, it should take me half an hour, let’s say four hours just to give me some margin.” It was pretty clear they did not believe me, but the day came, and well, with a little automation I was done in 20 minutes, but 30 devices failed. I found the failure, let them know I was investigating a fix. By the time they had gathered around, I had deployed a fix, and the remaining machines were fine. They seemed genuinely surprised I had succeeded, and they seemed to think that maybe they were hasty with me. I still don’t understand why I did not work out. I really do believe it was something about me, but they insist it was just that I was not a fit.
Since then I have returned to the UW, Madison, where I write automation software, and help with networking. Now that I have done a lot of automation, I am looking for some way to make my mark on the world. One of the things I considered doing, was building a high performance computing cluster (which I’ve done) and using it to solve some scientific problems. I’ve spent a lot of time reading, trying to find a suitable problem. In my reading I have discovered that scientists are broken into narrow silos, and are often unaware of work that could help them. My goal is to write a computer system, that will help them discover interesting content, work in other fields, that will help them with problems they have. I spend a lot of time thinking about how information flows, how research gets done, who is doing interesting research and how to find it. I like to think about weak Artificial Intelligence, and how it might help with this problem. Over the last few years, I have stumbled upon others working on this problem, although they do not talk about it much.
Reflecting on my early life, I can see all sorts of inflection points where different decisions would result in me being in a different place. I am happy with my life and my results, and I would not change anything, since lacking perfect knowledge, who can say what the results would have been? What would happen if I was allowed into second grade at 4? How about living with my mom, and not getting my first computer? How about all sorts of things. Life is chaotic, and it is impossible to say what side effects changing the smallest things would have created. I am happy with my life, and I want to help other people be happy with theirs’. I want to ‘pay it forward’ and in one area I have done this. My brother helped me get through university by working on my car. After university, I helped him learn network engineering and get his current job. None of us are an island, and nobody makes it alone. If reading my story teaches anyone anything, I hope it inspires someone to keep trying, even if they failed, because success comes only after failing a lot. I also want to encourage people to help each other in small ways. Those small things people did for me, made a huge difference in my life. You can never know what side effect you create when you are nice to someone, or you help someone, or you teach someone something.