In a fast-paced life, we often lose track of all accomplishments realized
2017 was particular because I decided to have a monthly objective in which would set me out of my comfort zone or put me in a path that is less traditional. For 2018, I decided to be less strict. Mostly because of a more challenging situation which was the balance between my demanding work at Netflix and the significant side project of working on my master degree. The degree of freedom was narrow, but still would not be an issue to work on having a fantastic year. While being at Netflix and being successful at a master degree in a domain that is unknown to me (machine learning) 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
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
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.
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.
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. The third book 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.
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
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. It helped to increase significantly the performance. For example, one use cases that the user was doing was taking above 1 minute 40 seconds. It takes now less than 10 seconds. Not only for particular scenarios the experience is faster, but it also improved quite a lot between the start and the end of the year. Better management of the React component, an increase of Selector (memoization) of data, and many tweaks 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
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
Finally, this year was