How I became a Techie #2

Fighting back tears, I ran into the garden to get away. To my surprise, I found some of my stuff! We deduced that the thief had collected the stuff in the garden and couldn’t carry all of it. I was still angry. He got away with my first computer and an external hard drive with a lot of the photos I had taken until then. He also stole all the peripherals and cables to my desktop which made it unusable.

The cops never found who did it. But my cousins stepped in to help. One of them gave me a netbook and the other gave me all the peripherals I needed to get my desktop running again. At that moment, I was immensely grateful that my family owned multiple computer stores.

This netbook proved to be a great learning tool. It was underpowered and struggled to handle my power user workload. I wanted to make it faster by trying Linux which was tricky since it didn’t have a disc drive to do the install from. The simple solution was to get an external disc drive or an USB drive. I had none of these and I didn’t want to buy them. Mostly because it was hard for my dad to afford it. It was this constraint on money that lead me to learn as much as I did.

Instead of buying new stuff, I always tried to use what I already had plus some cheap hacks to get the job done. So instead of simply burning a CD or making a bootable USB drive to install Linux, I rigged together a crossover Ethernet cable, setup a DHCP server and configured a TFTP server to send a bootable image over the network to do a PXE boot on my netbook. Each of these steps required a lot of research and the final process was extremely complicated. But I learnt a lot through it. By trying multiple linux distros on my netbook, I got pretty comfortable behind a linux shell.

One of my closest friends at that time was a gamer and a hardware enthusiast like me. Sushi and I would sit next to each other at school and spend all day talking tech and games. Once he mentioned that his dad had a room full of unused computer parts. With this, our hardware “smuggling” operation began. He would pull some parts from the storeroom and bring them piece by piece and I would then reassemble it back home. Processors, RAM sticks, motherboards, hard drives, power supplies and video cards, we smuggled the whole lot. Soon I had a complete 2004 era Pentium 4 machine built entirely out of his parts. I call this “smuggling” since our school prohibited electronics. I will never forget the tense day close to the end of the term when both of us had motherboards in our bags and luckily escaped the likely bag checks.

This machine became useful when my router decided to brick itself. Instead of buying a new router like a normal person, I set out to fix it. By this time I had ditched the casing entirely and I had both machines sprawled across a table. I found out that my router’s ROM chip can be re flashed through JTAG. Soldering a header onto the board and figuring out a way to use the parallel port to talk JTAG, I hooked the board to the old machine. After several days of troubleshooting loose wires and options on the flash program, I successfully brought the router back from the dead.

My desktop was now starting to show its age. Surviving several lightning strikes and random part swaps, it was a frankenstein of multiple failing onboard features and add in cards. Seeing the frequent BSODs, my dad suggested that I buy a new machine. I made the right choice by deciding to buy a laptop and picked out the highest spec machine available, a HP Envy 15 with a quad core i7 4700MQ, 4GB DDR3 RAM, a Nvidia 740M and a 1TB HDD.

Most people are careful when they buy something new. Not me. On the same night I bought it, I took it apart to replace the slow HDD with my SSD. Over the years I upgraded everything that could be upgraded, even the display. This machine is my trusty silver stallion to this day and I have learnt and created everything with it. With two screws sticking out to support the hinge, a random hole from drilling the wrong place, a dim strip on the display, loose USB ports and a fan that sounds like a vacuum cleaner at full load, my big boy has seen better days.

I was now entering 11th grade and questions about life after school were running through my head. I knew that I wanted to do something related to computers. With no concrete ideas in mind, I picked computing as one of my A Level subjects. Alongside piles of outdated information on computer systems, this my first dive into programming with Visual Basic. Not the modern Visual Basic .NET but the antique Visual Basic 6 from 1998 with Windows 98 style windows, forms and buttons. Ugh.

The exam for the computing subject included a coding project to build and document a software system from scratch. I decided to build an invoicing system for a photo studio owned by a friend’s dad. This was my first taste of a software project and it was tough. Unlike my classmates who “shared” their work, I was determined to complete the project on my own. After almost half a year of work, I proudly walked up to my teacher and handed in my project first. It featured a novel UI styled after the Windows “Metro” design with Windows 98 style components, documented in a 200+ page tome.

Gradually I got involved with the rising computer society in my school. I took on the task of teaching computer hardware to a class of 5th graders and older. It was really challenging to get them to behave but I managed to get something across to them. One event I remember very well is creating the ‘hardware’ section of a computing challenge for our school. We bought some used computers and disassembled them for the main challenge of building it again. I had to prepare a set of questions too and I threw in questions like “Name a model of a processor”. These questions were very easy to me, but judging by the failing marks they got, it wasn’t the same for the others.

Another pivotal event for me was Codefest, an island-wide, inter-school coding competition. I was initially devastated to miss the chance to be on the team when I missed the call. So our teacher suggested that I make my own team. All the top computing students were already in the other team. So I put together a B team of whoever that would join me. This was my first experience of running a coding team and I did a pretty bad job of it. I underestimated everyone else’s capability and exaggerated mine. It was a voluntary competition so I couldn’t get them to commit either. But the worst part was that I didn’t have a plan. I kept dreaming of cool features we could build and what it would feel like to win. I was living a dream and blind to the scrambled reality of the project.

Going into the presentation, I was certain that we had no chance. The other team seemed to have a much better project. Even though we didn’t know the result, my demoralized team decided to stop working. But a few weeks later, we were selected into the country finals and the other team wasn't. I guess I pitched all the ideas in my head to the judges and they believed that we would build all of them.

At the finals I got on stage in front of 100+ students and teachers from schools all across the country. A few minutes before we were desperately trying to manually merge all the codebases together without version control. To my horror, as I glanced back at the 100-inch projection screen I saw that the app had crashed. I tried to restart it and it crashed again. The murmur in the audience grew with some laughter breaking out. The judges were amused and started teasing me on stage. While I was too shocked to feel it on stage, this moment haunted me for months. The embarrassment, the shame, the error message on the huge screen.

My pride was hurt and I wanted redemption. I wanted to build something that really worked. So I got together with a friend and started building a student information system for a nearby public school. We only knew VB6 so we used that with an access database. The final product featured a table view with search, a data entry form and a backup feature. We thought this was the end but then we were given the mammoth task of computerizing 1000+ student records. We had piles of folders filled with handwritten forms and we had to type in every single one of them. The Sinhala and Tamil names were not easy to type either.

By now I was certain that I wanted to study programming in university. Nonetheless, I was anxious. I had good grades but I believed it was not enough. I thought my lack of extracurricular activities and unsportiness would hinder me. Regardless, I got into a software engineering bachelor's program without any incident. All my anxieties proved to be plain wrong.

In university I followed my previous principle. I ducked the “sharing” communities and always submitted work that was my completely my own. While the others looked for modules that were easy to do, I took modules that allowed me to earn something new. I tried to understand concepts from scratch rather than blindly copying code from tutorials and stack overflow.

It was here that I learnt Java, web development with HTML, CSS, Javascript and PHP, basic C# and basic graphics programming with OpenGL and C++. Knowing my parents’ ability to dismiss my achievements, I never told them that I sometimes scored the highest marks in my batch for some modules.

It took me almost 2.5 hours to get to university from home. My parents decided that it would be to move closer to university. After moving in, I built tech cave v2 with a wall covered in screens. Impressive as it looked, only I knew that I could only use one display at a time with my laptop. I still kept tinkering and my desk was still covered with computer parts.

Our curriculum featured a lot of group projects and I was elected the group leader for all of them. I never asked for it, they always voted me the leader. After being voted the Microsoft student ambassador for my University, I made it my duty to do some presentations to help my junior batch. One moment I won’t forget was getting a complete raise of hands from a class of 40 when I asked whether they would like to have another session with me about building IoT devices.

Once I started working as a Javascript developer in Czech Republic, I took on the odd jobs around the office that involved tech. I set up the dual touchscreen test bench for a real time production line system we were building and I took apart the lagging Mac mini in our office to fit an SSD. I still liked giving talks and I got the chance to do two of them, one about Javascript and the other about GraphQL.

Even though I have become a traveler, I am still a techie at heart. Moving forward, I am trying to increase my tinkering. I don’t see myself working for a company all my life and my goal is to build something on my own. What I realized is that instead of sitting on my ass thinking or planning it, I need to get to work. So my aim for the future is to start building small apps from the long list of ideas I have had on my mind. Maybe one of these might be my big break. I don’t know. What I do know is that I will always be a techie.


How I become a Techie #1

My dad was known by our extended family for his “I-can-fix-it” attitude. Whenever something broke, the car, the electricity in the house, the plumbing, the water pumps or any other electronics, he would take it apart, experiment and come up with a fix. I used to watch him do this as a kid and I developed a very similar mindset.

The fact that I was the only child influenced me a lot too. I was constantly by myself in our big house. I was lonely, with no one to play with or keep me company. My dad understood this and wanted to make me feel better. So whenever I developed an obsession, he tried his best to indulge me with it. In order words, I was spoilt. However, I had obsessions that were very different to other kids.

The earliest obsession I could remember was ceiling fans. I can’t explain why and how this began but I wanted to get a ceiling fan fitted to every room in our house. It was not because it was hot but more a sense of having a complete set. It was impractical because we didn’t many of the rooms in our house. But I still tried to convince my dad but he was struggling to make ends meet so nothing came out of it.

A lot of what I did as a kid was determined by the presents I got. One of these presents was an electronics kit with a breadboard and electronic components like resistors, transistors and capacitors. I was only seven or eight at the time but I got hooked on electronic circuits. After learning how to read circuit diagrams and trying out the circuit designs in the book that came with the kit, I wanted more.

So my dad got me more circuit kits and leveled me up to printed circuit boards. He taught me how to solder and I started soldering my own circuits. A lot of the circuit that I together didn’t work but that didn’t stop me.

It was now time for my next obsession and it was audio cassettes. I became obsessed with recording my own tapes, to transfer music from CDs into tapes. Like my dad, I developed a liking for English music, mostly 80’s and before. I used to convince him to buy CDs and then blank tapes for me to transfer them over. It was useless obsessions I had. We already had a CD player at home and in the car. However, the CD player in our car skipped every time we hit one of the numerous potholes in SL so tape was the only decent way to listen to music on the move.

One day whilst particularly bored, I noticed the VCR placed below our TV. I didn’t know what it was and what it could do. My dad had bought it during one of his trips abroad but then never used it afterwards. I plugged it in, pushed various buttons on it and looked behind it to see a variety of connectors. I knew those connectors were audio and video outputs that go into the TV. Eventually when I finally figured out that this could record VHS video tapes, I had just found my next obsession.

One of the local TV stations was airing Knight rider. I fell in love with that show and I now had a way to record it. I used to look forward to 9:00PM every Friday to fire up the VCR to record the episode. I didn’t have an instruction manual but through trial and error, I figured out most of the functions on this VCR.

Computers didn’t interest me that much until now. My parents decided to visit a relative they hadn’t see in a long time. The auntie there casually instructed her son to put a game on for me. When I asked him what the two disc drives were for, he said that one was for playing CDs and the other to record them. From the moment I heard that, I wanted a computer for myself.

But my dad could not get this for me. A computer was expensive and he could not afford it. I remember the pained expression on his face whenever I asked him and I felt guilty for even asking him. But I wanted it and I wanted it bad.

My passion for reading transformed into a need to learn about computers. I was a junior member of the British Council library in Colombo and most of the books available to me were fiction books. But I wanted to get the computer manuals that were in the senior section. Eventually I convinced me dad to get a membership and checked out 900+ page manuals on how to use windows 98 or windows 2000. The junior section of the library did have computers which you could book to use. This was my first dive into the internet and I tried to get a slot every time my dad took me to the library.

This went on for several years. Through reading I got to know a lot more about computers. I can’t remember how but one day my dad announced that he would finally be able to get me one. I was over the moon but my mum was against the idea. She was concerned that I might get addicted to computers like she had heard from other relatives and the media. The only way I could get her to consent was to promise that I would keep it under control. This was a promise that I repeatedly broke.

My dad decided to buy the computer from my cousin’s shop. For his budget, they offered us the most entry level machine they had. What bothered me the most was that it only had a CD writer and no DVD writer. I looked at the next modal but my dad’s budget was set so this became my first computer. An all in one from a manufacturer called Hasee with a Pentium M 1.8Ghz single core, 1 GB of RAM, 160 GB Hard drive and a CD writer running Windows Vista.

We went on a Friday to pick it up and my cousin said it needed more setup so he could get it to us next week. This drove me over the edge. After waiting years, I didn’t want to wait any more. Eventually we arranged to bring the computer back next week so that I could take it home today. I was never more eager to get home than on that day.

At home I set everything up and I couldn’t believe it. My own computer. But there was a problem. The sound was not working. My dad called my cousin and he guessed it was because of the incomplete setup. But I figured that the disc that came with computer should have something for this. I can still remember the surprise in my cousin’s voice over the phone when I told him that I fixed it. I was a 11-year-old kid who after one day with a computer was installing audio drivers on it.

My mom’s premonition came to be true when that computer became my ultimate obsession. I spent all my time on it, exploring the OS and all its features and finally being able to do all the things I had only seen in the books before. Soon I got internet via a USB ADSL modem and a 512 kbps connection with a monthly bandwidth cap of 1GB. I got hooked on flash games and then a cartoon series called “Code Lyoko” which had partly aired on TV before being pulled. I could now find the entire series on YouTube. This resulted in an internet bill that was 7 times the base price due to excess use.

I got more and more hooked on video games. Especially racing games like Need for Speed. I loved it and I spent a lot of time playing it. Many other kids had time restrictions on their computer use, their parents would only let them use it for a few hours every day. But my parents didn’t try to enforce this on me. After finishing need for speed most wanted, I hit a technical limit. The next game in the series, Carbon, need a dedicated graphics card which my PC did not have. To make matters worse, I couldn’t upgrade my machine since it was an all in one. The only way to get around it is to buy an entirely new desktop. I cursed my cousin for selling us an all in one but it did teach me a lot.

Buying another computer was completely out of the question for my dad and I knew that. So I started researching computer hardware in an attempt to force my computer to play Carbon. I learnt about the components and the interfaces inside and the various model of CPUs and GPUs. I tried various software hacks and even went as far as buying the PS2 version of a game to run on an emulator on my machine. None of this could overcome the basic fact that my machine didn’t have the right hardware

I can’t explain why but I was desperately wanted to play Carbon. Ultimately my grandpa turned out to be my savior and he agreed to pay for the second computer. Both my dad and my grandpa didn’t know the real reason I wanted a second computer. But this was how I got my second computer, a desktop with a Core 2 Duo E7400 2.8Ghz dual core, 4GB DDR2 RAM, 250GB Hard drive, a DVD writer and most importantly, a dedicated graphics card (Nvidia 9400GT)

My dad and I bought this secretly knowing that my mom would be against it, as she was to many of my previous obsessions. Indeed she was angry for weeks and initiated usage limits on the computer for the first time. I was frustrated but a few months later these dissolved away too.

I was content for a while. There were plenty of games I could play and that kept me occupied. I got really fascinated with networking so I setup a network in my room between my two machines through a router. My room was now filling up with computer hardware, with 2 computers, a printer, a scanner and many other random peripherals.

One day I was woken up by a shout. “We have been robbed!” I immediately ran to my room and I couldn’t believe what I saw. It was completely empty. There was only a cable left on the table. It was all gone. I was devastated. Everything I had collected over the last few years was gone.