2019 Year-In-Review

Another year, another review! This is the third year (past reviews: 2018, 2017) that I’ve done this review and I think it’s an extremely useful exercise. The past year has gone by in a flash (although at times, it didn’t seem that way) and it’s always a good idea to take stock of things and reflect on the year.

If I had to give a theme for the year it would be perspective. While there have been many ups and downs this year, I’m starting to be able to “see the forest for the trees”. This is particularly true for my work at Rubikloud. Things that I would’ve in the past seen as “crises” are just another one of the regular challenges of a fast growing startup. Perhaps it’s because I’m clearly in my mid-30s or the fact that I’ve seen my fair share of “crises” at this point, but most problems aren’t as big as they initially seem in the moment. This is perhaps one of the most important realizations I’ve had this year that has been extremely beneficial to my sanity and lower stress levels.

With this new found perspective, I’m really optimistic about next year. There are so many great opportunities on the horizon, and I’m so grateful for all the amazing people — across all the areas of my life — that I get to work with. Here’s to 2020 with hopes of becoming a little bit wiser and a little less ignorant!


Instead of doing an “Accomplishments” section, I decided to just reflect on my major areas of focus for 2019 — good and bad. I’ll still include the “Failures” section below to call out specific issues that deserve special attention or that don’t quite fit here.


Colleagues: As with most years at a fast growing startup, Rubikloud has been quite the rollercoaster ride in 2019. It’s been one of our best years to date but it’s also been a bit of an emotional one too. Several long-time team members with whom I was very close with have left the business. It was definitely the right decision given their circumstances and career trajectory but it’s always hard to see close friends or colleagues leave. This is probably one of the most important lessons: business’ needs change, people’s needs change, and people enter and exit a business — I shouldn’t take it personally, this is the normal course of things. Obviously, just because someone isn’t working with you anymore doesn’t mean they are gone forever (you can and should keep in touch) but practically, it means you will see less of them.

The obvious flip side to this is that new people enter the business too! And I’m actually quite excited to work with many of the new team members who have joined recently. They bring fresh new perspectives and ideas which I’m excited to learn about. And, of course, it also brings a chance to deepen my working relationships with many of the existing team members who are also given new opportunities to shine.

Building Data Science Teams: On a separate organizational note, I think we’re really starting to hit our groove in building a good cross-functional data science practice. In last year’s review, I mentioned that I had some ideas about how to improve the data science work with cross-functional teams. It turns out most of these ideas didn’t quite work out exactly as planned. I think I correctly identified many of the challenges (such as cross-functional teams require a lot of work and specifying requirements for data science projects) but found out several other ones that I didn’t expect. Two big ideas that we’ve implemented:

  • Data science lead role: This is essential especially for cross functional projects. The lead’s main purpose is to align the project goals with the data science work. A larger portion of their time is spent doing non-technical work such as meeting with other stakeholders and translating that into work that individual contributors can do. I don’t think this is specifically a data science problem, but a problem with any function that is deeply technical. Others who are not specialists in the field will not be able to understand the technical subject matter and, more importantly, translate the overall project requirements into technical work. The opposite problem also happens too: a technical specialist builds something that doesn’t solve the underlying problem because they don’t get the right feedback. Sometimes you may get a “unicorn” data scientist who can do all of this but it’s more rare than you would think.
  • Data science research meetings: This second idea that is extremely important is to make sure your data scientists have an avenue to discuss and review their technical work. This is harder than it sounds. Code reviews that are common in software don’t accomplish the same thing. It requires deep discussion, often including white boarding to clarify the often abstract ideas of the solution. My best attempt at this is to mimic the research meetings that you find in graduate school: a senior researcher holds the meeting where team members are given time to present their results to date. The senior researcher’s job is not to tell the other members what to do but to facilitate the meeting by asking probing questions, clarifying the explanation of other team members, and occasionally suggesting new ideas. The big benefit besides helping the particular project along is that it also serves as a place for other team members to learn. Finding ways to grow the research ability of our team has also been something on my mind lately, and this is definitely a good passive way to do it.

Work-life Balance: And on a final note, I want to talk about work-life balance. I was able to maintain some decent balance throughout most of the year except for a period in the fall. During that time I was working evenings and weekends for about a month or so in order to try to get a project delivered. This was a pretty stressful time for me causing me to approach burning out. There were also a few knock-on effects on other parts of the company that I won’t get into. Luckily, I had pretty good support from my manager, the people team and my wife. We also have an unlimited vacation policy at Rubikloud, which has helped me decompress after the fact.

I will say that burnout is a pretty real phenomenon, and when you’re in a fast growing startup for five years, you’re going to brush up against it at one point or another. Reflecting back on my time at Rubikloud so far, I think many (but not all) of the times where I was pushing myself to meet a deadline were, in fact, necessary (given the situation). That is, I think we would have a dramatically worse outcome if we had not pushed through. Many will say that it if you planned properly then that would not have happened — I whole heartedly agree! But hindsight is 20/20. If I had my current experience, I probably could avoided some (but not all) of these cases. I suspect part of the reason why burnout is so common at startups is because of inexperience planning for the unknown situations that lay ahead (the other big reason is that you have terrible managers who just want to exploit their employees). I’ve made a lot of mistakes in my career but I’m learning from each one of them so I hope that there will be fewer and fewer of these situations.

However, the important point about these types of situations is that they need to be managed carefully. You can’t do it all the time and you need to give the affected team members time to recover. With a bit more experience under my belt, I’m a bit more aware of when I myself am starting to get burnt out. I’m also much more careful with my team to ensure that they don’t get put into that situation. Sometimes it’s easy to forget that we’re all just humans.

Adjunct Professor at Rotman School of Management

This past (calendar) year at Rotman my main accomplishments were around teaching, helping organize a couple small events and providing advice and guidance to a bunch of people. One thing that I’ve forgotten is how much fun teaching can be. The position I have of teaching AI at a business school (but to analytics professionals) is quite unique. Business school is much more focused on practical applications of things and less on theory. I really enjoyed trying to distill some of the fundamental concepts in deep learning down to their most intuitive points and eschewing most of the cruft that is usually taught in those types of courses (similar to my technical blog). Since it was a bit of a greenfield course, I was able to design it how I saw fit. In the coming year, I’ll be teaching a longer AI course with applications in marketing. I very much enjoy putting together the material and teaching but I must say that it’s a lot of work! Distilling complex ideas into its core components and then putting together informative material is hard! I’m enjoying my time at Rotman and a couple of potential opportunities are opening up for me to potentially teach in the other professional programs. It’s definitely an exciting opportunity with the only downside being that it does put a lot of additional strain on my free time. No rest for the wicked I guess.

Hobbies (Reading, Music and Learning Chinese)

Reading: On the reading front, I’ve definitely got into a good habit of reading a few books each quarter and blogging about them (Q1, Q2, Q3, Q4). I’ve finally got over my bad habit of reading everything the same way, and instead just (a) read what interests me at that point in time, and (b) read it in the way that I feel like reading it. When I write it out like that it seems obvious but for me it wasn’t so easy.

The first point is really about putting books down that I’m not in the mood for (a couple of which I mention in the blog posts above). Sometimes I feel “obligated” to read a book because it’s an important subject or because I bought it already. That’s a pretty big fallacy. You won’t get much out of a book that you are “forcing” yourself to read. You should especially follow this rule if you’re part-way through a book. My important takeaway was that I should stop as soon as possible so I don’t “lose momentum” reading, getting to that point where it becomes a chore. Reading is really about getting what you want to get out of the book.

On that note, the second point is really about reading it in a way that allows you to get what you want out of the book. For me that means two things (i) marking up the book with a pencil or pen to highlight and take notes on things that I want to remember and (ii) to skim or skip over parts that I don’t find interesting or necessary. Ever since elementary school, I’ve had an aversion to marking up books because the teacher said not to, but in fact it’s probably one of the most important things you can do to retain knowledge! The other bad idea I had was that all the words in the book are created equal — they’re not! I now freely skim over paragraphs, or even whole chapters which I don’t think are very important. It’s really helped me “keep momentum” and my interest up in the books that I’m reading. It also allows me to focus in and read more carefully the parts that I’m actually interested in. Sounds simple but it took me a while to get here and I’m loving it!

Music: I’ve been doing a pretty good job of having regular lessons with my guitar/vocal teacher (every other week or so) but I haven’t been doing a great job of diligently practicing between lessons. My progress has been slower than ideal but I think that’s okay since there are a bunch of other higher priority things that I’ve been focusing on. The aspect that I am the most proud of now is that, through my music lessons, I’ve really started appreciating music much more (because I understand a lot more of the fundamentals) and it’s become a regular part of my life. I regularly pick up the guitar to sing and play for fun and enjoyment. It really feels like my life is somehow richer because of it and isn’t that the best measure of a good hobby?

Learning Chinese: Learning fluent Chinese has been one of my on-and-off long term goals for a while now. This year (especially in the last quarter), I’ve skipped a lot of Chinese classes. My excuse (as always) is that there were higher priority things going on, which is true to some extent. However, I’ve made some incremental progress. I’m a bit more comfortable speaking now, a combination of being a bit more confident and having a slightly larger vocabulary. One realization that I came to is that I was doing too much indirect practice for my ultimate goal: conversing in Chinese. Examples of indirect practice were primarily around reading and writing. Next year, I’m going to try to get more practice speaking to family members, but also potentially experimenting with native speakers online to get some more convenient directed practice. Hopefully in next year’s update I can tell you all about the success I’ve had using this method.

Health and Fitness

I’ve been keeping up with weekly sessions with my personal trainer. Strength wise, I’m progressing at a slow pace but I’m fine with it. I’m at around 5 pull-ups which is a personal best. However, I’ve really dropped off in the back half of the year for my goal of going to the gym at least twice a week (including my training session). My excuse again here has been how busy I’ve been with my other jobs. However, in this case, it’s a pretty poor excuse because my health is way more important than any job that I have. The other side effect that I’ve been experiencing is dramatic tightness of my muscles. I’ve gathered that this is a combination of (a) working my muscles hard with my trainer, (b) ignoring rolling out or stretching before/after workout sessions and during the week, and (c) little or no dynamic physical activity during the week. This is really new territory for me where in the last five years or so, I’m the least active I’ve ever been. Of course, I’m trying to change that but making new habits takes time.

Recently, I’ve started to try to do at least a bit of stretching, rolling out or yoga every day. This is really to prevent the extremely unpleasant feeling of tight muscles. The other thing that I’m trying to do is engage my core all the time. My realization is that a lot of lower back pain is caused by a weak core. So it’s not so much as having good posture, but rather engaging your core so you don’t hurt your back. The side effect is good posture. At first, your core gets tired easily but the more you do it, the easier it should get. So far so good.


This section is going to be reserved for specific failures that I hope to learn from. It’s a natural tendency to hide your own failures but if you do you’re missing a great opportunity to learn from them. Worse yet, you may keep making the same mistake! Hopefully this section will help me with the ignorance removal process.

Goal Setting: This year I attempted to actually do a bit of goal setting for my personal goals (such as learning, health, and social relationships), using the OKR (objectives and key results) framework. It’s something we’ve been doing at the company since last year and I think it’s a very reasonable goal setting tool. For a couple of quarters, I was actually doing okay with it. However, when things got really busy in the fall, it basically dropped off the map and I stopped using it all together.

My big takeaway from it is that you really need to get into the habit of using it (like most things). It’s a useful tool, as long as you’re using it right. When I was using it, I checked it every week to update it, which was a good frequency. It didn’t magically make me do things that I wouldn’t have done otherwise, but rather reminded me to do things that I often forget about (like hanging out with friends) when things get busy. The other nice thing about it is that the act of creating goals makes you think hard about your priorities, which is always a useful thing. I might experiment with it again in the new year if things don’t get too crazy.

Health, Stress and Sleep: This is one area where I would rate myself poorly this year. Thankfully, I didn’t have any major problems or injuries this year but I definitely did a poor job staying healthy (at least for the back half of the year). As mentioned above, I haven’t been keeping up with my non-trainer workout sessions, and combined with the stress from the busy times at work, it has definitely put my body in worse shape.

The biggest fail in my mind though is really around sleep. At times, I’ve been having trouble sleeping through the entire night. I can usually fall asleep very fast but wake up after 4 or 5 hours in the middle of the night and have trouble going back to sleep. I’ve been experimenting with a lot of hypotheses as to why I’m waking up. They’re the usual things make the list: work, sedentary lifestyle, screens and caffeine. It’s clear that the main cause is work, however, it’s usually not just stress from crises (although at times that happens), it’s more the fact that I’m thinking about issues all the time (as you do when you’re at a startup). This is definitely one of the reasons why I find it hard to go back to sleep at night: my mind is still thinking through and trying to solve problems at 4 am. Part of the problem is that I actually enjoy thinking about these problems! Obviously, I do not enjoy getting very little sleep and feeling tired the next day though.

The thing that I did notice was that this sleep issue was a relatively new phenomenon in the past year or so, and I think it’s directly related to my lower fitness levels (and perhaps my age). So I’ve been telling myself to try to exercise more, which has been pretty unsuccessful. It’s a bit of a negative feedback loop because the most stressed you are, the more you want to relax on the couch, not run 5 km, but counter-intuitively, that’s the opposite of what you should be doing! Additionally, I’ve been cutting back my caffeine intake a bit, which I think is probably a bit of a secondary benefit. The mind and body are very much connected, and I’m pretty convinced that more exercise will really make a big difference to solving this sleep issue (I almost never have trouble sleeping through the night after a session with my trainer). I just have to find ways to make it stick.

Keeping in good health is very much about experimenting with techniques that work for you in the sense that you can get into the habit of doing it (most common techniques work pretty well if you can keep it up). The hard part is that often once you have something that sort of works, life throws a few wrenches your way like a new job, an injury, or just plain getting old. You just got to keep trying to find ways to stay healthy and stick to it.

Blogging: I’ve done a pretty poor job at blogging this year. On the personal side, I’ve been mainly writing about books I’ve read, which keeps this site up to date with at least quarterly posts. I’ve been satisfied with this frequency; I have less to write about nowadays on my personal blog. However, on my technical blog, I only put up 3 posts this past year. This is well below my goal of 2-3 a quarter (quite ambitious actually). I actually really enjoy learning and writing about things on my technical blog but my free time has mainly been filled up with an increased load at Rubikloud combined with preparation for teaching the AI marketing course at Rotman. The latter actually is in a similar vein to my technical blog: learning about AI and putting together material (slides instead of a post). However, the material isn’t state of the art techniques, but more common-place fundamentals. In retrospect, I’m not too disappointed with my lack of work on the technical blog, my prioritization of things this year has been about right. However, I do want to call it out because I sure don’t want to make it a habit of brushing it off.

The Coming Year

Looking forward to 2020, I’m quite optimistic. There are several exciting things going on in my personal life, my professional work at Rubikloud and Rotman look very promising, and my friends, my family and myself are in (relatively) good health. It’s hard to ask for more than this. I hope you have an amazing 2020 filled with laughing, learning, and good fortune!