Wednesday, November 14, 2018

tech innovations by a dummy


i worked for 15 years in one of the most technologically advanced startups in silicon valley called altera corporation. even intel corp wasn't able to penetrate our technology and was forced to admit defeat and buy us out. 

i'm just a dummy with a learning disability, poor memory, and poor reading skills. i was never accepted to any of the top schools in the philippines. i only got in to a top school because the chancellor happened to be my dad's roommate when they were taking their master's degree.

it was the VP of altera named tim southgate who interviewed me in altera. after the job interview, he told me i was the candidate they were looking for because although my academic knowledge is not very good, i had very strong problem solving skills. 

i started in altera in 1994 as a lowly technician fixing and setting up computers. at that time we did not yet use DHCP (dynamic assignment of IP addresses) so each computer in our company had to be assigned it's own fixed or static IP address. everytime we ran out of IP addresses we had to buy more and it was expensive so one of my responsibilities was to maintain a spreadsheet so when a machine is retired it’s IP address can be reused by another machine. when i first took over the responsibility i began to feel the spreadsheet containing thousands of IP addresses was a mess and it wasn’t updated consistently. we were running out of ip addresses. there were only a few available IP addresses left. so i created a very simple script that would ping all the ip addresses every hour and touch a file if an ip address gets a response.  here’s the pseudo code

while [ 1 ]  # infinite loop {
   sleep 3600 # sleep for 1 hour or 3600 seconds
   # loop through each ip address in your domain
   for i in 11 to 20 {
     for j 1 to 256 {
       if ping 137.57.i.j
          touch 137.57.i.j
     }
   }
}

so if i want to look for an IP address that is available or unused, i simply list the directory sorted according to the file time stamp and choose the oldest file:

ls –lrt

what if a machine cannot respond because it’s down for maintenance or the owner is on a long vacation and turned off the machine? so in the beginning i would double check with the owner or email the company to make sure the ip address really is available. but as time went by, my innovation became more and more fool proof because it’s impossible for a machine to be temporarily down for maintenance that long or for the owner to go on vacation for, let’s say 6 months.

when i started there were only about 15 available ip addresses left as indicated in the spreadsheet. and we were hiring an average of 10 new employees a month. fortunately my script revealed there were actually hundreds of available ip addresses. we never had to buy more ip addresses until we switched to DHCP.

management was just blown away with my innovation. our VP told me he has worked in the industry for 20 years he never saw anything like it. this gave me more time in my hands to have even more fun doing more innovation and automation of my tasks.

so they promoted me to run test scripts. every morning i had to type a command on each of the 15 test computers. i was lazy so i automated it by writing a script that would start the tests on the 15 computers with just one command.  i kept adding features until my script later ballooned into a full fledged compute farm system where anyone can submit other kinds of jobs and experiments, not just test jobs. i called it the "powerhouse". management was dazzled with my powerhouse and told me to order 50 computers to add to my powerhouse system. when the 50 boxes of computers arrived, i was opening the boxes when the VP of IT appeared sounding angry and surprised (at that time altera was just a small startup company). he said "what's all this?". i said, "computers". then he said "who ordered all this?". i said, "me". he said, "what is it for?". i said, "my project". he said, "every time we order even just one computer we have to go through a difficult approval process and you get to order 50 computers just like that?".  i told him to talk to my VP tim southgate. minutes later i saw him coming out of Tim's office shaking his head. a few days later tim asked me if i already got my refund. i told him i did not use my credit card to buy the computers i used our department's credit card. he was surprised and told me i just blew away thousands of airline miles. ouch !!! that could have been free round trip to the philippines. i'm such an idiot.

years later our company grew to many development sites around the world. my vp asked me to setup my powerhouse on our remote sites in europe and asia. a week later my VP saw me in the hallway and asked why i haven't left yet. i told him the powerhouse is already setup in our remote sites and all of them are running smoothly. he was shocked because he expected it to take at least a month to purchase the computers, setup the network, install my scripts, train their sys admins and then perform some tests. but all i did was email the sys admins of the remote sites my very detailed and fool proof documentation. the sys admins set everything up in just an hour. they did not even have to buy computers because they only needed to run jobs at night. so i told them to just use their already existing computers by running a command before leaving for the day if they want to donate that computer to the compute farm for that night. when they come in the next morning the owner of the computer will just have to run a command that would cancel the current job, re queue the job, and take his/her computer off the farm. 

i saved the company tons of money. nowadays, compute farms and data centers are common in many tech companies. my coworkers told me i am one of the pioneers of data centers and compute farms.

the slick part is that i never used socket programming for the computers to communicate with each other. any lazy dumbass who has a systematic and organized personality and know the basic scripting commands would have easily created my powerhouse system. the computers communicated by creating and reading a file on the network drive. i would use a simple infinite while loop to wait for a file. whenever there is contention, i used the mkdir command. luckily, it never fails because let's say you have a hundred computers trying to lock a file or have exclusive access to a file, example:

while ! mkdir s:/powerhouse/job100/results-lock.semaphore
do
   sleep 5
done

only 1 out of the hundred computers can create the results-lock.semaphore at a time. it never fails. there can never be a conflict. then when a job is done accessing the locked file it simply removes the semaphore directory so that another job can lock it. mkdir was my savior. if mkdir is not guaranteed to work this way all the time, it would not have been possible for me to create the powerhouse and i probably would still be working in the rat race today. that is why after i retired i wore t-shirts that i had the command "mkdir" printed on it. of course it would still have been possible using TCIP socket programming but that's out of my league. i'm just a dummy. i think i'm the only one in the history of the entire world to create a system that involves job synchronization in a multi-job network environment using only simple shell scripting.

it used to take me a day to follow up with the engineers on all the failed test. it was exhausting running around from cubicle to cubicle. so i created a results database with a beautiful windows interface. the failed test results were automatically emailed to the test owner and all they had to do was click an "ok" button in my windows program after they resolved the problem. this was around 1996 and at that time windows programming was not for the faint of heart so everyone in our department was so impressed and happy with my innovation.

i never really felt i was working the whole time i was in altera. everything to me was like a fun hobby. i came in to work any time i wanted to as long as i accomplished my responsibilities. management just left me alone while i kept surprising them with my innovations. in return they kept giving me bonuses and stock options. my salary went from $36k a year to $150k a year but after working for 15 years in altera  the industry matured and almost everything was just plug and play. technology has finally caught up with my relative learning disability and there was not much innovation left for me to do. so when my team was outsourced i decided to take the generous severance pay and retire from the industry while i’m still young enough to enjoy the fruits of my achievements - snowboarding, playing golf, staying in world class resorts and dating selena gomez, wonder woman and ivanka trump.


i thought if i continued to work i will probably earn $70k more a year (on top of my investements) but i will lose virtually $billions worth of quality of life. of course if i'm married and have kids to support, this philosophy does not apply because raising a family makes life more meaningful. the reason i was never married is summed up in the following article - https://ian-crystal.blogspot.com/2018/08/i-just-won-a-billion-dollars.html. and not everyone has a diverse set of interests and passions in life like me - https://www.youtube.com/user/scratchrider260/videos (click "load more" at the bottom of my youtube page for a complete list of my videos)
https://web.facebook.com/ian.crystal.90/photos_albums?sk=wall&lst=100021755921365%3A867825320%3A1542451581


my lifestyle is another testament to my problem solving skills. the problem is falling in love is out of one's control, and it is further complicated by the fact that a huge part of our standards are deeply embedded in our genetic code. this means a person has to be very lucky to find true love. many times in my life, i fell in love and tried my best to win her heart. but i guess i'm just one of those unlucky ones. my solution to the problem was that when i turned 40, i settled for the next best thing - live the rest of my life as a playboy :-) knowing when to give up and settle for the next best thing before it's too late is one of the most important troubleshooting skills in life.

(for more of my knowledge bombs, click the "ian's knowledge bombs" title at the top of this article and choose any article in the table of contents that piques your interest)

No comments:

Post a Comment