Book Review: Thirteen Reasons Why

Writing was invented to enable easy sharing of knowledge. Fortunately, unlike sharing food or sharing an apartment, sharing knowledge does not take knowledge away from you. It should not affect you in any other way. There should not be side effects.

However, putting something down in writing forces you to think. And that, does have side effects.

Just like in quantum mechanics – one can’t observe a phenomenon without altering its state. – yes, I’m bad at making quantum mechanics analogies.

I’m mostly writing this post… for the sake of getting the book out of my mind, so I can sleep tonight.

trw

It’s dark. Dark. Dark. Dark.

It’s the story of a teenage girl, Hannah, who, for a variety of reasons building one upon another into a huge snowball, ended up committing suicide.

The narration follows Clay, who has a secret crush on Hannah, as he listens through a series of cassette tapes left by Hannah before she kills herself, in which she tells her story, as she sees it. Each tape corresponds to someone in her life, and what they did to contribute to her death. The tapes are sent to everyone on the list, including Clay.

The tapes went from fairly innocent and funny, the teenage girl date-y sexy stuff, to things that are much much scarier. Her tone also gets progressively darker as the story goes on. She remained humorous throughout the entire ordeal, which is pretty cool… the transition from light¬† humour to black humour.

One can tell that the author is not very experienced – the writing is not terribly sophisticated, which, in a way, is good because it makes the book a very easy read, and I don’t really want to spend ages reading this book (because of how heavy it is).

On the other hand, the premise of the story is pretty cool, and while the realization could have been a little more impressive, it’s good enough to generate some momentum to keep the story going.

Some people call the plot suspenseful, and I find that very interesting. It’s made clear in the very beginning how the story is going to play out, with the story just showing the reader the way there, so that’s definitely not the suspenseful part. In fact, there is really no suspense, or Disney moments, in the story. One event follows another, then another, then another. But I find there is another kind of suspense – the unconscious expectation that something good will happen to save the girl. We are all used to plots like that – most movies or popular novels have good endings, for the simple reason that people like to read/watch good endings, and books and movies with good endings sell better.

This one doesn’t. In the beginning, the author promises the reader to deliver a tragedy, from beginning to finish, and he followed through on that promise. That is pretty cool. Rationally, did I really think there will be a good ending? No. I just wasn’t able to convince my unconscious mind to think the same way.

Overall, for 3 hours of time and $10.99, I would recommend it. It’s different from most books I’ve read, and quite refreshing.

First Month at Work – Do I Smell Something Burning?

1092759_10151759193869840_865391330_o

3 weeks ago, I started working at Avigilon. I wouldn’t say I was terribly excited about returning from Europe to go to work, but still, it turned out quite well.

If you haven’t heard, Avigilon is one of the (or the?) fastest growing tech company in Canada, having IPO’ed less than 2 years ago at $4, and is now at $18. I thought it would be interesting to try working at an exploding semi-startup instead of a big well-established company like NVIDIA.

It’s definitely different. Very low overhead operation, with all extremely talented people.

For example they just got an HR department couple months ago apparently, when they were at around 200 employees (doubling every 1.5 years or so). How do you run a 200 people company without an HR department? I’ll probably never get to find out. The HR people that showed me around were REALLY nice, like, nicer than regular HR niceness. Maybe they will become less nice once they are more experienced?!

Benefits are OK. Pretty standard. Nothing really stands out, but also not terrible like NVIDIA (a 7000 people office with no gym… really?). No cafeteria, which is slightly annoying, but being in the middle of Yaletown means finding food is not really a problem. Finding CHEAP food is a bit of a problem, but making full time engineering salary makes it slightly less of a problem =P.

Coworkers are nice and very helpful, but the work is quite intense.

It’s definitely one of the most complicated codebases I have worked with. Plenty of templates, crazy inheritance hierarchies, different types of smart pointers, and thousands of classes. Lot’s of abstraction and polymorphism. I’d say it’s pretty clean, and people really know what they are doing.

As an aside, from what I heard, out of the people that have already been through resume-filtering and test-filtering (there’s a written test) that they interviewed, they only end up hiring about 1 in 5. Pretty happy that I made it.

On my first day, my supervisor drew me a class diagram of the subsystem I’ll be working on first. I have never seen someone draw UML diagrams that fast.

20-30 classes, plenty of abstract base classes and complicated dependencies, and inheritance chains 6-7 classes long, in about 15 minutes, while explaining and answering questions the whole time. Impressed.

My first task was to port someone’s big change (20+ files) on an older system to a new system, that is being majorly re-architectured and re-written at the same time, while I was trying to figure out the code structure. I would spend couple hours figuring out how a big subsystem works, and then be told that it actually won’t exist any more once he pushes his latest re-architecturing changes into the master repository, and that I have just spent hours integrating changes into the part of the code that’s going down the drain. That’s fun.

It’s nice to finally feel challenged at work, and be learning new things instead of just applying things I already know over and over. A lot of opportunities for exploring, and things to get creative about. Happy.

Working on this kind of projects require a very different set of skill compared to working on things like school projects, where you can be intimately familiar with all parts of the program you are working on. In large scale developments like this, no one is intimately familiar with more than a few percent of the code, and they still have to be able to contribute effectively. It’s something I am getting more and more comfortable with, and this time, it only took me about 1 week to get more or less up to speed (vs 1 month at Capcom, where I had my first insane-codebase experience)! Need to be able to recognize many design patterns, and be able to guess (correctly) how things work just by looking for those patterns. It’s something they don’t teach in school, and I don’t think they really can, but it’s very useful.

People wise, it’s a very work-intensive place and people don’t joke around or even talk much, which is an interesting departure from the kind of work environments I’m used to, but I think I’m getting used to it.

Management definitely has significant amount of presence. There’s a pretty well-defined management structure, and I’m not too sure if I like that, but it clearly works for the company.

Also a lot of PM, almost to the point that you’d be spending more time creating tickets and coming up with time estimates, than actually writing code. That’s pretty annoying, but at least they are nice people.

Now the fun part – the run club I just joined. There are about 20 HR, sales, finances, and marketing people… and about 3 engineers. I don’t know if it’s because engineers are too busy to exercise, or not many of them can run 10 km :P. It’s also interesting that it’s mostly girls (they are INTENSE!), when the engineering department is about 98% guys (I’m PRETTY sure that’s not due to discriminatory hiring practices). Nice.

Overall, pretty happy! ¬†Don’t know what’s my next step, yet. I want to go back to school to do masters in CPSC some time. Not for financial reasons – I’m pretty sure I won’t be able to get the money back, but because there are so many interesting things in CPSC that I’ve yet to explore. Maybe in couple years? In the mean time, I’ll have some fun here!