2017 Year-In-Review

With the way the pace of my life is moving, I feel like I haven’t had much time to reflect on longer term accomplishments and lessons.  So I thought doing an annual review is a great chance for me to reflect on the past year and figure out what I’m doing right and what I’m dong wrong.

For as long as I can remember, I have looked back at my past self and realized just how stupid I was.  Okay, probably better to put it more positively, I look back at myself and realize how little I knew.  And I think that’s a testament to my learning ethos, and it’s something that I want to make sure I continue to achieve.  So I’m hoping that this annual review will help me with becoming less stupid.  Here’s to 2018!


I’m quite proud of my accomplishments in 2017.  I’m not sure the best format to describe these things so I’ve just grouped them into buckets.


I’m quite proud of the work I did at Rubikloud in 2017.  In the past year, I’ve built up a great team of data scientists and we’ve worked together with our incredibly talented product and engineering teams to ship some really cool machine learning products, which are making a huge impact at the businesses of our retail enterprise customers.  This is the second startup that I’ve been a part of and I’m still amazed at how much value a small team of motivated individuals can create in such a short period of time (although not without a ton of hard work and chaos).  We recently raised a $37M Series B round led by Intel Capital to scale out our business, so 2018 is definitely going to be an exciting year!

Technical Blog

I’m quite proud that I’ve been able to keep up posting on my technical blog (although not so much on my main blog as you can see).  I’ve written 8 full-length posts, most of them with some sort of implementation.  This has been my primary method for learning about non-work related technical topics.  This year I finally started getting into more deep learning topics with a particular focus on a bunch of the various flavours of autoencoders.  It’s nice to have an outlet to learn about non-work related topics.  It’s very seldom that the work you do at a job aligns precisely with the topics that you’d like to learn about.  And while one of the main tangible benefits is a public record of my technical prowess, the reason I can keep it up is that I actually enjoy it a lot!  It’s one of those things that I’d keep doing even if I didn’t need to work.  Hopefully this year isn’t too crazy that I can’t keep working on it.


I’ve been taking guitar lessons for a few years now with an amazing teacher, Ryan Carr.  At the end of 2016, we started working toward one of my goals which is to sing and play at the same time.  To give some context, when I started singing I had absolutely no sense of tone.  That is, I couldn’t match pitch, tell if one note was higher than the other, or otherwise have any “natural” talent that would be helpful when singing.  Despite my lack of talent, I kept practicing (which was especially painful for my wife in the beginning because she has much better tonality than me).  It’s quite amazing how far I have progressed.  From not having a sense of tone in the beginning, to now where I have at least some vague sense of what’s going on is quite an accomplishment for me.  It’s hard to describe it because a lot of it is unconscious and through feeling.  For someone like me who is used to consciously understanding things, it was (and still is) a big challenge.  The big leap of faith is that you keep working at it, knowing that you are making progress even if you can’t see it.


I’ve been taking Chinese lessons for the past year or so at this great Chinese school.  Some background: for the longest time I’ve had very basic Mandarin skills.  Growing up, I had heard it at home and half-heartedly learned it at Saturday school when I was younger but never was able to go beyond a very basic vocabulary, which revolved around things you do around the house (eat, sleep etc.).  But after going to this school (1.5 hours every week) for a bit more than a year, I’m quite amazed at how far I have progressed.  From barely being able to read 100 or so words, I can now read stories with a vocabulary of somewhere around 1000 words (as long at they’re the right words).  And even on the speaking front, I’m much more comfortable (barely) carrying on a conversation, whereas when I started I would frequently get stuck unable to find the right words to express myself (listening was never a major problem for me though so long as it was within my vocabulary).  It’s also very gratifying to get external praise.  My wife’s family is telling me that I’ve been improving (they speak Mandarin most of the time at home) and one of the Chinese teachers was jokingly saying that I improved much faster than her expectations as well (understandably, I’d have low expectations of myself if I was her as well!).  Just like guitar, language is something that is learned unconsciously.  At some point, you’re just able to recognize more characters, speak more comfortably, and feel more confident conversing.  Of course, it’s still a lot of conscious work reviewing characters daily, memorizing stories, forcing yourself to speak when you know what you’re going to say is wrong.  It definitely is a bit of a grind but it’s amazing to see how much one can progress in just a year.


Failures are always something that I haven’t had a habit of keeping track of explicitly (actually accomplishments I don’t either unless you count my LinkedIn).  But every successful person that I’ve read about says that it’s of vital importance to reflect on them.  It shouldn’t be hidden and covered up, rather it should be explicitly stated and encouraged so that we can then improve ourselves, a kind of “de-stupification” process.  It’s kind of like finding bugs in software, it’s a behaviour we want to encourage!  Finding more bugs, means fixing more bugs, means making the software better!  So with that, let’s hope this makes my “software” better.


Since 2006 I’ve been managing my own portfolio of stocks.  Although, I’ve done better than the index, I’ve also made a huge number of mistakes.  The 2017 year in particular has been quite challenging because everything looked quite expensive so my trigger finger was getting itchy (a great recipe for disaster).  I’ve know for a long time that activity for activity’s sake yields poor performance but knowing something and applying it are two different things.  A huge advantage that individuals have over actively managed funds or trading groups at investment banks is patience.  Individuals can wait years (since they’re saving for their retirement after all), while actively managed money needs to show results in months.  I recall Charlie Munger mentioning that he sometimes waits years just sitting on cash waiting for the right time to pull the trigger.

Recently, I’ve been dabbling with options in the past year.  In general, leverage is a great way to lose all your money.  However, I’ve been reading about a particular trade that involves long dated call options (LEAPs) that is closer to long-term investing rather than gambling.  Basically, you use the same logic as picking long term investments except with a bit of leverage.  The idea is you just hold the LEAP and roll it over as it comes to expiry to maintain your position in the company.  Anyways, over the past couple of years I’ve had a bunch of successful trades with options always buying when the price of a security is way below some rough calculation of intrinsic value for companies I’ve been pretty confident in.

However, I started venturing out this strategy a bit (again because of my itchy trigger finger) to binary outcome trades (using options or otherwise).  Basically when a stock is undervalued dramatically it’s usually due to some terrible news.  It could be that the news was overblown and the market will come realize this and the price goes back to a reasonable level, or it could be that the doomsday scenario happens and it goes to zero (or actually anything in between).  So I started betting (and notice that I’m using gambling terminology here) on a few of these trades sizing my bets using the Kelly Criterion.  So long as my estimation of outcome is in the right ballpark, if I do a lot of these trades, it should average out to a positive gain.

One of trades is working out (so far), the other I’ve taken a loss.  The one that I took a loss on was Chicago Bridge & Iron Company (CBI).  My reasoning for
going into the stock was not very well thought out.  It’s been a stock that has been much talked about on the stock board I follow and it suddenly had a big drop due to poor economic outlook due to a few factors.  So I made a bet that it would rebound.  However, even at the time it was an ill advised decision because I personally had done very little research into the company.  I didn’t even read the latest annual reports or conference call transcripts, all my information came from the stock board.  This was a big failure on my part.  It’s so easy to get lazy and just buy a stock, but this is exactly what you should be avoiding (especially in a concentrated portfolio like mine).  Thankfully, I didn’t bet a big amount because I was not especially confident in the turn around and the Kelly Criterion sizes the bet smaller.  I should do well not to buy stocks on a whim but only after thorough analysis (at the very least understanding the business model and the current state of a company’s business).

Connecting with People

Being an introvert, I have a harder time than most people connecting with new people.  When meeting someone new, it feels like it requires a ton of energy.  As a result, I frequently just avoid these types of situations because, quite frankly, they are exhausting.  It’s almost as if I have to force myself to be “on” to be able to connect with new people.  It’s a bit hard to explain the feeling if you’re not an introvert.

However, this doesn’t mean it’s not worthwhile.  I think I’ve avoided these situations more in the past year (it waxes and wanes), giving myself excuses such as “I’m tired”, “I’m busy” or worse being apathetic (“I’m not interested in connecting”).  This is a failure on my part.  Of course, it is worthwhile, it just take a bit more effort.  My hypothesis is that like most things, it’s a sort of like a muscle, the more you work on it the better you get.  So this is definitely something that I’m going to consciously work in order to reap the benefits of meeting and connecting with the people around me.

Rationality vs. Relating

One of the things that I definitely need to improve upon is communicating an idea that contradicts with the listener’s point of view.  When discussing an issue, sometimes I have a very clear idea about how to approach the solution but it may contradict, negate, or otherwise mismatch with my listener’s point of view.  My usual strategy is to just explain it rationally.  Sometimes this works, other times not so much.  Most people (myself included) feel slighted when someone brings up an idea that is dissonant with their world view.  It’s difficult to suppress that feeling and rationally look at a problem.  In those cases, sometimes I still push forward with my rational explanation strategy, a failure on my part as a communicator.  I think a better alternative is to understand where the other person is coming from, start from there and then lead them to my solution.  It’s much harder because you actually have to understand the other person.  It’s not natural for me but like the one above, I’m of the belief that the more I practice the better I’m going to get at it.

In a similar vein, when giving feedback to someone, no one likes to hear the feedback straight up.  A contrived but effective gambit is the compliment
sandwich: compliment, feedback, compliment.  The only caveat is that you need to be genuine with the compliments (I’m assuming the feedback is real).  It’s very unnatural but with practice I’m told it becomes much easier (so says my wife who is great at it).  The key here I think is still to work harder at understanding the person, that’s what communicating is about in the end isn’t it?


One of the things that I’ve learned is that good habits can go a long way to getting to where you want to go.  My current model is that most big accomplishments (e.g. learning a language, being an expert in a field etc.) are not a one time big effort but rather a bunch of small, consistent steps in the right direction.  Working at something day in and day out is pretty hard!  It’s a grind sometimes.  So habits make this process much easier.  They’re the default action you take, which means that you are much more likely to do them, automatically driving you in the right direction.  Anyways, here are some good habits that I’ve been picking up.

Best Hour of the Day

Following Charlie Munger’s advice, I give the best hour of the day to myself.  Now that I have a more regular schedule going to bed at a normal time (thanks to my wife), I can wake up relatively early.  At this time before I get ready for work, I work on my own projects.  For the past couple of years, this has been my technical blog (see above).  Of course, I don’t do this every day, sometimes I go to bed late and sleep in, other times I have early morning meetings but being a habit, it’s my default behavior.  Definitely something I want to keep up going forward.

Filling in Downtime

I’ve been learning Chinese and one my strategies is to use spaced repetition on a flashcard app on my phone.  Every time I encounter a new word, I add it to the deck and everyday when I have some downtime (usually during breakfast or waiting for the subway) I work though the day’s cards.  It actually is not the most efficient way to learn because I’m just casually going through the cards so I’m not using 100% of my brain power.  However, just by the fact that I’m doing it nearly daily (and with spaced repetition), it helps over a long period of time.  The most important part being a default behavior.

In a similar vein, I’ve also been trying to practice singing during miscellaneous tasks.  Now that I can tell (mostly) if I’m singing something wrong, I practice singing while cleaning, showering, waiting for the elevator etc.  It’s not focused practice but similar to the flashcards, it definitely helps supplement the dedicated practice sessions.  Just have more practice using my voice has been a big reason why I can progress with relatively few dedicated practice sessions (of course if I had more time I would want to have more dedicated practice sessions).


Sadly this year I haven’t spent much time reading books and actually two of the books in the list below I read over the Christmas break.  Definitely something I want to change for next year.  Here’s a list of the books I read this year and some commentary.

  • Intelligent Fanatics: How Great Leaders Build Sustainable Businesses (Ian Cassel and Sean Iddings): Nice short book describing some great lesser-known business leaders (e.g. Les Schwab, Simon Marks, John Patterson, Sol Price) and how they built their businesses.  The book doesn’t spend too much time on each leader and the story telling is a bit factual for my liking.  It’s an easy read and enjoyable but nothing too insightful.
  • How To Read A Book (Mortimer J. Adler): This is a serious book!  Originally published in 1940, it’s about how to get the most out of reading by applying active reading strategies.  I actually didn’t finish the entire book, got through roughly 3/4 of it.  But my main take away, that I’ve started doing, is to always read with a pencil in my hand!  Marking up books is a great way to help retain knowledge (even though it feels a bit wrong marking up a pretty book, definitely picked up during school when the teacher would scold me for this) and it allows you to go back and re-read the important parts that you missed.  Many times in the past, I’ve passively read something and not remembered it.  Although that can be useful in its own way, wouldn’t it be better if you remembered it?  Anyways, if you want to pick up some strategies for reading, I’d definitely recommend picking this book up.
  • Rational Optimist (Matt Ridley): This book’s thesis is very simple: despite all the terrible things going on in world today, it’s getting better!  He goes through a lot of history citing evidence of how things are getting better with the main idea that trade and specialization in human societies (so called “collective intelligence”) is the reason why we have been rapidly advancing.  And further the rapid advancements are the things that are solving humanity’s problems (e.g. over population, global warming etc.).  He urges us to continue trading and specializing and reject the idea that we must slow development down because the rapid pace of development is exactly what allowed us to solve the problems in the first place!  It’s a highly convincing book with a lot of historical evidence, definitely recommend it.
  • High Output Management (Andrew S. Grove): This is a book I just got before the break from my colleague.  The author is the late and former CEO of Intel.  It’s probably one of the most useful management books that I’ve read in a while because it’s not just business book fluff.  He actually goes into specific tactics that he has applied at Intel ranging from a model of how to think about your business “output”, to specifics on how to conduct 1-on-1s and meetings, to what a manager’s main duties are (“training” and “motivation”).  He peppers the book with lots of examples and specific situations.  It’s a great read for any manager.  It’s also short, so it’s easy to go back and re-read certain sections (or look up the notes you made in the margin, thanks “How To Read A Book”!).
  • The Tao of Charlie Munger (David Clark): This book is just a bunch of quotes by Charlie Munger.  It’s not very useful and I wouldn’t recommend it because if you’re a fan of Charlie Munger you would have read all of these quotes, if you’re not a fan, it’s definitely not a good way to learn about him.  I’m just a sucker for Charlie, so I’ll buy any book that might let me learn more about him.
  • A Man for All Markets (Edward O. Thorp): This is an autobiography by the great Ed Thorpe.  He’s not as well known as Claude Shannon but he’s made a huge dent in the practical application of mathematics in the background.  He’s infamous for working out the math to beat blackjack, he also ran a statistical arbitrage hedge fund in the 70s/80s and independently (probably prior) discovered the Black-Scholes option pricing model.  His returns at his fund were insane topping more than 20% annually for more than two decades, mind you with relatively little risk.  The interesting part of his thinking is that he was never interested in the money in both cases, the problem is what he enjoyed.  The application of the mathematics in both these domains were really just about experimenting to see if his math really worked.  This is evidenced by him writing books, not long after he validated the ideas, describing in detail all his methods.  He’s incredibly interesting person, definitely genius caliber.  It’s also an easy read but you can tell his story telling is not as polished as some other biographers.  This actually adds a bit of authenticity since he probably did write most of it himself.  Definitely recommend!
  • Fearless Salary Negotiation: A Step-By-step Guide to Getting Paid What You’re Worth (Josh Doody): This is a book I saw recommended by Patrick McKenzie a while back, so I bought it and had the e-book sitting on my Kindle for a while.  I decided to do a quick read of it over the break and I was pleasantly surprised.  All the information is the book is kind of “obvious” but also incredibly useful.  Salary negotiation is a hard topic because most employees will have only done it a handful of times while the HR people do it daily.  The information in this book balances this information asymmetry giving details on how the whole thing works.  It goes further to give you a step-by-step guide on how to approach the entire process, either negotiating a salary for a new job or trying to get a raise from an existing one.  Definitely recommend, it’s a short read and worth the probable increase to your salary by applying these techniques.

The Coming Year

2018 is going to be a busy year for me.  There’s still a ton of work to do at Rubikloud, lots of things that I still want to learn in machine learning, and a few interesting side opportunities that might pop up for me as the year progresses.  It’s a bit daunting but also exciting.  Here’s to good fortune in 2018!