Recapitulation of 2018
Posted on: December 28, 2018
In a fast-paced life, we often lose track of all accomplishments realized thorough the year. Since 2017, I have written my year review. You can consult my last year review in this post. As mentioned in the introduction of my 2017 review, since the previous five years or so, everything keeps growing and improving in my life. Thanks to all the great people and opportunities that spawn from different initiatives I have been cultivating, 2018 follows the tradition of finishing the year at a higher bar than that year before.
2017 was particular because I decided to have a monthly objective is already an excellent yearly objective, I still believe that it should not be an excuse to accomplish more feats.
Let's get started with my 2018 year in review. First of all, I have continued to the goal of reading as much as I can. Since my move to California to work for Netflix, I must drive, hence cannot read as much. Nevertheless, I keep expanding my horizon by leveraging San Jose libraries' audiobook mobile application that allows borrowing each month a limited set of book. Not only it facilitates learning on different subjects; it increases my vocabulary and also to understand English at a faster pace. I decided to stop listening at the normal pace of 1x and moved to 1.25x this year. I relied on audio books for most of my reading, but I was able to consume paper books from school's curriculum books and one that I wanted to read (Principles by Ray Dalio). In the end, I consult more than 25 books. The complete list is available in this blog post which lists each title.
Complete 3 semesters (3 course) in 2018
I am still working slowly my master degree in machine learning at Georgia Tech. I have completed three courses on the ten that I must complete to earn the degree. It is time-consuming and harder than anticipated. Some classes are not very well organized with late details. Others have lectures that are not tailored to teach but to through on the wall as many notions as possible. Nevertheless, I am an autodidact and can find my way around. So far, I am a straight "A" student but I plan to reduce my involvement slowly which could result in lower grades -- I'm in peace with my decision. The last course was about machine learning and stock trading and it was very interesting. The curriculum of the master degree still interests me and being part of an official school force me to go way further than I would go on my own. The challenge is to fit the time between Netflix and my family.
Ended in second place in term of contribution on 967 students
On my free time, I created two public open source projects. I mostly have done the code between two school semesters and continued to contribute with unit tests, bug fixes during the following months. The main project is the Data Access Gateway, "DAG", which is a library that helps handling redundant HTTP request, cache the response in memory or in a persistent storage (IndexDb). The second open source project is a Chrome's extension that gives insight about how the DAG handles every request. I'm glad of this accomplishment because I never had an open source project that I started from scratch and kept improving in time. Also, the primary web application I am building at Netflix, the Netflix Partner Portal, uses the library.
In the storm of releasing the Netflix Partner Portal and finishing a semester, I had to create a 45 minutes presentation that I delivered in Croatia at Shift Conference. It was an amazing experience where a thousand people were invited. You can read the detail of the conference in my summary of my experience delivering my speech on how to increase your development velocity by using TypeScript in this blog post.
Myself on the stage presenting about TypeScript
In parallel to the presentation, I released my first TypeScript book. The book is covering all TypeScript features since the beginning up to the latest version. The reason I wrote this book was to have a single place with all the information about TypeScript. I plan to keep working on the book and to deliver future edition that will enhance the original format by adding the new features that the language offered in the future. The book will be an on-going project that I will revisit every year.
My first TypeScript book: Holistic TypeScript
Furthermore, a few months after the release of the book, I received an offer to write a guide about Typescript. Because I already had a lot of material prepared with the former book and the speech I delivered in Croatia, I decided to dive into this second writing. I have to say that it was a little bit of overreaching for me. I succeeded at the expense of some good night of sleep. Nevertheless, I am glad I published this second book on TypeScript I wrote this year is the gathering of all the blog post of 2018, something I have been doing for several years in a row. Let me tell you that this is a lot of writing for a single year and a personal record.
My second published book of 2018
Concerning Netflix, I am glad of many moments through the year. First of all, Netflix Open Connect Partner Portal got released. The version 2.0 of the application was having a hard time before I joined. I rebooted the system, and I delivered the web appliance which had many good wins. Mostly around performance where the system can accomplish several tasks in a fraction of the time. Another success is in term of easiness of use and in term of insight with the telemetry system. The latter spurred life into the whole fleet of our applications. The last year at Netflix went pretty fast, mostly because it was interesting and I had a lot of freedom to execute solutions the way I desired. The result was a strong sense of belonging which is very powerful because it increases the accountability and sense of importance.
Netflix Partner Portal: BGP Configuration
Concerning the work I produced at Netflix, the top highlights are:
- TypeScript is using beyond only the application I am actively working. I am glad that my teammates embraced typing their front-end code.
- Bringing insight to the application I am developing. Before my arrival, we were blind in term of what the user was using, or what time a particular piece of the system was taking. It was harder to debug and it was also very subjective in term of what is using. Now, it is easy to know where to invest time, or to improve the code or even just to figure out how the user achieved a bug.
- Performance improved quite a lot with the new code of the web application I built. I was replacing an old portal that was made in AngularJS. I decided to use TypeScript, Redux and React. I built an open source project to handle the fetching of data called Data Access Gateway. that I already covered. Also, a smarter bundling analysis, a reduction of third-party libraries and leveraging async importation were able to reduce by 30% the number of initial downloads.
- Better user experience. One goal was to have our user to be self-sufficient, to reduce the number of communication we have with them. I designed a user interface that provided constant feedback with a system of "what" is going on, "why" the data is in that shape and "how" to fix or improve the condition of the data. Many descriptive popovers, a reduction of information to the bare minimum and many other changes were put in place.
- Finally, I am starting an initiative around GraphQL to have a better story about fetching the appropriate amount of data from the backend as well as consolidating our backend and frontend entity. This latest project will be mostly conducted next year.
This year was also the first time I was spending that much amount of time at work. I had a crazy schedule to release Netflix Open Connect Partner Portal which leads me to go beyond my strict 40 hours per week that I have been able to maintain throughout all my previous years. That being said, I was still able to contain my hours in a reasonable amount compared to the average of Silicon Valley folks. For about five months, I had to give an additional 15%. With the high amount of side project, it was challenging but I was able to handle it. My trick was to stick to a well-defined schedule. In summary, it was looking like the following:
- 1h Working on my master degree (mostly lecture and reading in the morning)
- 8h work (bumped to 9h for the first 5 months)
- 45 minutes (include morning and afternoon) commute with audio books (self-improvement)
- 3h with the family
- 2-3h of side project (books, open-source projects, preparation conferences) but mostly school assignments
- 7-8h sleep
Since the release, I have been able to come back to 40 hours which is greatly appreciated for my sanity. The master degree is taking me more time that I was originally expecting. On average, I have to spend 20 hours per week which is challenging with a young kid. I can keep up without having to spend time during the weekend (most of the time) by doing everything once she sleeps. However, I had to brim over 4-5 weekends for a whole afternoon to complete assignments or to perform an exam. Thanks to my wife for these moments.
This year also was a critical one in term of deciding if my wife and I expand out family or not. We already have a daughter who was born the following year of our adventure in America. Initially, I was not thrilled with the idea of a second kid. However, my wife's dream was to have two children, and I realized that we are doing a lot of my dreams which my wife always been very cooperative. After thinking more than three years about it, I decided that it was the best time to move forward. Thinking forever about the perfect timing would lead to stagnation. After several conversations, we decided to move forward with the plan which will be completed around May 2019.
My daughter approves the idea of having a sibling
The recapitulation of this year is mostly positive. I can highlight failures in which I should particularly scrutinize to improve. For example, I have not done any physical exercise this year. I plan to go back to a low level of training gradually next year. A second failure was that I worked more time each week than expected. I target working a more reasonable amount of hour to avoid fatigue period which leads to having my patience going downhill. While the number of hours might not be astronomically high in Silicon Valley, it is still too much to enjoy my family and all the side projects I am carrying.
Finally, this year was awesome. Like the previous one and the one before an so on. I have been blessed and will continue to keep my options open for new challenges, opportunities, and possibilities to grow and expand my knowledge. In the last few years, I realized that having concrete dreams and aiming to jump on occasions is the key to enjoy an exceptional life.