I haven’t posted in awhile, you know being summer… and also had a few other things going on…
This post actually took me awhile to write. I’m not sure at this point how long it will be to read but let me just start by getting to the point… just in case.
I actually just finished reading The Element (in blinks) and it kind of sums up this post.
The Element is the intersection between one’s aptitude and one’s passion.
Well, I seem to have an aptitude for solving problems, figuring things out. This pretty much explains why I like puzzle games like Sudoku and why programming for me is more than “just a job”.
I also have a passion for using technology. I’ve always liked playing with new toys, some more than others. But I can very quickly pick them up and start using them.
So the short version goes something like this:
- I like solving problems and using technology
- Thus Solving problems with technology is my Element
- Coding is one way (and a very useful and efficient one) that lets me utilize my Element
Now you can just stop reading here or you can follow along as I reminisce a bit on the journey I’ve had so far.
The following will be mostly tech-focused autobiography of a random, deaf guy in his 20s.
How It Started
I took an interest in computers at an early age. My dad was a programmer and back then also a technology enthusiast.
When I was 3, he bought a PC, with:
- an orange CRT monitor
- less than 64MB of memory
- an A and B drive
- Windows 3.1
I vaguely remember we had a box of floppies that contained the installer. I watched him set it up. He then showed me Paint, File Manager, maybe Notepad and command line.
I don’t remember playing with it much. I probably quickly lost interest given there wasn’t much I could do with it.
Now fast forward to 1995, I was now 5. Yes it’s pretty easy to remember my own age. We moved to a new neighborhood and bought a new computer. This on had:
- a color monitor
- a CD-ROM drive
- a 1GB hard drive
- a modem
- 256MB RAM
- Windows 95
So to me, it was a shiny new toy. It even had 28 kbps dial-up Internet (My dad’s brother was studying at a university and they provided free access).
I definitely remember spending a lot of time playing Minesweeper, FreeCell and Solitaire and a bit of web surfing.
And so when my school got computers in the classroom with Internet, I was already the geek.
Hey look! This is how you get a free (25MB) Hotmail account!
After another year, we had a computer lab and computer lessons!
One session, the teacher introduced the whole class to MSWLogo.
For some reason I always remembered it as Visual FoxPro… but when I just fact-checked/Googled for “microsoft program a turtle to move 1995” I learned actually it was this.
The teacher gave us some simple commands. Most kids had some trouble getting it to work. On the other hand, by the end of the class, I showing everyone how I could make the turtle move and draw squares.
I guess the teacher told my dad and soon after, he was sitting me in front of our computer and showing me how to write Hello World in Visual Basics 4.
Then he gave me a copy of this:
It was love at first sight! I guess the idea of making the computer do stuff just clicked with me.
Look at me! I can make computers do cool things and whatever I want! Can you? Yep, I guess I was a true nerd/geek.
Afterwards, maybe around 1997, he bought HotDog. I forget why but I played around with it a bit.
Then around 1998, we moved again. This time to the US as companies were hiring in masses to prevent Y2K.
In 2001, I made it to middle school. After we averted Y2K, it was now Web 1.5? AOL, AIM, and Xanga, Neopets
That’s also when I learned some JavaScript, via copy paste… so I could make some posts with simple games like (a text-only) Battleship. It’s so old I can’t find an example. I also made a personal site on Geocities.
So by the time I was 11 years old, the foundations were set and the next stage would soon begin.
From Toys to Tools
In professional-speak, at this point I had about 6 years of experience! But all my programs were pretty small. For example, I made a simple calculator and some media player that was built using the Windows Media Player COM object. I forget what that was for…
I think I picked up a bit of QBASIC as well and so made a few text-based DOS games like Guess the Number.
My dad was also doing some more web development. He made some friends who wanted to make a bit of cash in the early web advertising boom.
He got me on board with our own project. He asked me to our own specialized eBay-clone! So I picked up ASP .NET 1.0, C#, and CSS (mostly changing the colors)! I spent months modifying the code from a template project we found online, and I learned about web hosting (GoDaddy), FTP, SQL, user accounts/security.
It was a flop but now I was a real web developer… and more significantly a real developer. I learned C#, a stronger language which didn’t have the strange quirks of VB. And though I didn’t know until after getting my first job… 10 years later, I sort of also learned Java.
Also, soon after starting middle school, my teachers quickly realized “this kid knows his stuff” so I was setting up and installing programs on all the Mac II’s they just got in the classrooms. A few got iMacs; I set those up too.
Next, I entered high school. These years weren’t as eventful. They had a computer and AV club/department so I was basically out of a job.
So these were sort of lull years. Just get good grades to get into a good college.
I did do a few projects though, if you can call them that:
- One year, I discovered Yahoo Stocks so wrote a program that could scrape all the price history for thousands of tickers… just because it seemed fun… and maybe I could find a pattern that could make me rich! Of course once I had all the data stored in the database, I had no idea what to do with them
- I also did some BASIC programming on my TI-86… I might’ve used some on some tests…
Finance: An Unfortunate Detour?
Around 2005, it was time to pick some colleges. Banking was hot and while originally I wanted to do CS, my parents reasoned that since I already knew how to code, I didn’t need it.
Finance is all the rage now! You can make LOTS OF MONEY!!!!! All you need to do is go to a great school and get good grades!
Well a 16 year old that “hasn’t seen the world” can’t really argue with Asian parents, especially if they’re paying the college bill. So the college picks were like this:
- U Penn (Business)
- Carnegie Mellon (Business/CS)
- New York University(Business)
- Rutgers (Business, CS maybe)
- Some others (Business)
And the results were…
- Rejected
- Accepted for Business, not CS
- Accepted
- Accepted
- Accepted
So the thinking went something like this:
- Well since I didn’t get into CMU’s CS department, I guess I’m not really meant for tech like I thought I was…
- NYU is a top business school so seems like that’s the most logical decision
- New York City vs New Brunswick (and having parents like visit every week)… NYC! YOLO!
And after that, 4 years went by… It was pretty fun but the curriculum was basically worthless, a lousy ROI OK I picked up some business terms…
I did a 2nd major (business school majors are basically 4 courses each) but switched it from Accounting to Information Technology…
The thought of reading financial statements all day AND having to take more tests after graduating put me to sleep and sort of turned me off.
IT classes were more interesting.
But come graduation time, around 2011… Finance was no longer hot… and I still had no interest in business. So going to a top school ended up getting me a total of 0 offers for business positions.
ZERO! I (my dad) spent $200,000 for 4 years to learn “from the best” and I couldn’t get a job! Even with a GPA that would put me in the top 20%.
Even the IT classes didn’t pay off! To do stuff like data science or algorithmic trading, you need math, statistics, or economics.
Well no academic adviser ever told me that when I was talking to them about switching majors…
Oh you can pick whatever major you want, it doesn’t matter!
Well it does actually…
One day though, in my mail, I got a letter from a bank: “Join our Technology Super Day!”
At that point, hopes of getting a tinance position were dead so this was the only option left. Getting a job was pretty much now or never.
Well it turned out, at least for me, it wasn’t very hard. None of the technical interview stuff. All I really had to do was talk about the tech things I had done before.
But basically 4 years in business school and all I get is a job I probably could’ve gotten right out of high school.
I came to a few conclusions:
- You better really want to do business… otherwise business school just kills brain cells
- Textbook knowledge is the bare minimalum; you need to get real, relevant experience
- You are not your parents and you’ve got to do your own research because they are not you and they can be wrong
- I should’ve just gone to Rutgers and saved all that money for a house…
Going All In
So this is where it all starts actually…. Maybe this should be a post by itself…
At this point, I was starting to lose my hearing. In fact during senior year, I started using an amplifier in classes.
It’s lucky I got a job at all to be honest.
I started working in 2011 but 6 months in, I needed a major surgery to remove a deadly brain tumor. At that point I was pretty much incapacitated: blacking out every few days, mostly in bed all day, and had memory issues.
I couldn’t concentrate or remember what I was doing 10 minutes ago. Coding was basically impossible.
We actually held off on having the surgery until then as we knew this surgery would be very risky and I would be fully deaf when I came out of it. But by this point, the latter didn’t really matter and if we didn’t do it, I’d probably die.
So we went ahead and overall it was OK. I guess it helps we got the best surgeons in the world…
I had to take a few months to recover but one thing was certain now: we all agreed programming was my thing.
At that point, there was no way I could do finance. Client facing roles would be impossible, thus being an investment banker or an financial adviser was pretty much out the window.
This is actually still a problem, especially with recruiters that want to discuss everything via phone… I actually state on my LinkedIn that I’m deaf and to contact me by email... but they still call or all to discuss over the phone…
At a certain point you just have to learn to live with it. And that’s also why I’m not as much a workaholic as most people my age.
Career for me is what pays the bills. My goal is to maximize the amount of time I can enjoy… before it’s too late…
On the the other hand, I guess because of my experience and natural passion for solving problems, I was able to do my job very well and tended to be very proactive. I did/still do a lot of “side projects” whenever I see a way to automate/streamline processes.
And because of my medical problems, my viewpoint sort of shifted. I think value work/life balance probably a lot more than most people. Career was secondary, what’s most important is taking care of myself and doing what I want to do as much as I can. Basically enjoy the moment while I still can.
I will admit, at times it isn’t 100% sunshine, but now I fully embrace, express, and develop my own interests.
I am now free to be me rather than living up to other people’s expectations
Basically, I was sort of back to the old me with a few improvements.
Whenever I come across a personal problems, I look for ways to fix them. And it’s a bit of a cycle:
- The more I look for problems or learn some new tech, the more problems I find
- But then I just go ahead and solve all (most) of them
- Once again, I feel empowered by being able to get precisely what I want (out of a computer). Moreover, it’s one portion of my life that I can control which is great as there are also a lot that I can’t…
Some Examples
So what does this look like? Well, once I went all in, I started creating more tools that address my problems and make things easier.
Every weekend and some weeknights, I am usually coding something to solve some problem that is bugging me. And when I solve one, it is very satisfying.
These are like the best apps. I have others but (most of) these I use so much, I installed them instead of just running them out of the IDE.
There are a few here I don’t use nowadays as they have outlived their purpose but others, I use daily/weekly and tweak whenever needed.
Below is a brief tour for the “Best of the Best”. I think you’ll see their benefits.
The big theme though is:
They save me a lot of time
Watcher
It’s basically an RSS reader but rather than aggregating from feeds, I can write plugins that check for updates from any source. If there is one, it will add it to the list which I check at my convenience.
No more manually refreshing web pages and picking out what’s new and interesting! I just need to read the titles of each item.
AnimeDB
OK I watch a lot of anime.
I cannot remember sometimes which one’s I have seen and if they’re good. I can’t even remember which ones in the current season I’m watching, at least at the start.
This app remembers for me! It’s basically the same as writing things down.
DailyDilbert, Comix
I wrote the first version DailyDilbert when I was in high school.
Comix is like Watcher but for web comics.
devRant++
This is more just a project for fun. When devRant first came out there were some features I wanted but were missing in the official and existing apps. So I built my own by reverse engineering the API calls.
I don’t use it much these days other than checking for notifications. For some reason they don’t show up on my phone unless I open the app…
TED Transcripts
What I find is that a lot of TED talks, if they don’t use visuals much, are basically speeches, so most of the time is just spent listening to them talking.
Being deaf, I need subtitles which lets me watch at 2x speed but sometimes I miss the important parts and need to rewind. Other times, I wish I could skip forward.
Well with this app, I can easily “preview” the talk: quickly skim over it, get the gist and decide if it’s worth a full watching. I can also jump around and focus on certain sections.
Blissful Reader
I like to read and that affects my Inbox a lot as I sign up to different newsletters. However, for each newsletter I received, I found myself reading the whole thing before then going opening the next.
You can imagine then how hard is and how much time it would take to reach Inbox Zero. And you know I have other things I should be working on.
And I sort of realized actually I would prefer a sampling of each. I don’t need to read the whole thing. It’s just that when I see a good article name I go
Ooh! This looks interesting, can’t skip this one!
I think you can see in the below why that would be a problem.
Basically what the app does is it my email and for each unread message, sees if it’s a newsletter that it knows how to parse. And if it can, it will parse and store each item in the database. Then, it deletes/moves the original.
Then when I want to read something, it shows me 10 articles at a time and I just pick from the page any that I want to read.
It’s sort of a psychological thing actually. This TED Talk goes into the details.
But basically, with all the newsletters, it’s like an infinite feed. There’s no reachable stopping point. And the mini-stopping points (1 email) arekind of long too.
In contrast, the stopping point is like 10 articles and they come from different newsletters too.
So it’s more like a tasting menu where I can get a bit of everything, but don’t feel overloaded.
TLDR: Ignorance is bliss!
innouvous.Utils
One last thing. As you can see from the screenshots, the UIs to all these apps look fairly clean and similar. That’s because I found myself rewriting a lot of this code so created libraries that I just reference in all my projects.
This obviously saves me a lot of time and I can get to the meat of the problem, the fun part, very quickly.
What Now? So Many Choices…
I think all this gives you a concrete idea of why I code. Basically, I leverage coding to make my life easier and filter out the value-less noise.
Basically I get my cake and eating it too.
One thing though is, now with all the tech hype it feels like I’ve missed and am still missing the party… Big data, AI, hard to do on my own. I don’t have a few million bucks to buy the hardware and don’t really feel like paying AWS, Google Cloud just to play around with this stuff.
I do have one machine learning project I’d like to do but hard time getting started… There’s a lot’s of things need to discover and learn… and not sure if I’ll be able to get what I want…
Then there’s the Web and Mobile, seems now it is/going to be the next platform/language. There are now so many frameworks so I’m interested in learning Electron
And I may take a look at algorithms again and try once again if I can find a way to get into Google, Amazon. But it seems maybe I going after an empty dream.
I’m kind of leaning towards the first right now but haven’t had time yet to think much about how/where to start…