8 min read

2021 Year in Review

Made it so far. Again.

For many (including me), 2021 has been about coming to terms with pandemic related challenges (see article on why we feel tired all the time, surge capacity) and finding ways to balance work and personal/family life.

If you felt really tired this year or felt you weren't at your best, hang in there, you are not alone!

In the midst of all that, there are many things to be thankful for and other things that just didn't pan out (in academic speak ... future work 😊); and that's what this post is mostly about. I have written a few end of year reflections (see here); as I mentioned in last year's reflection, the goal for 2021 was to "love, live, stay healthy and do my best".

What Got Done this Year?

Some things I got to make progress on:

Contributions to Cloudera Machine Learning

I was fortunate to work with an incredible team, help build out and ship the Applied Machine learning Prototype (AMPs) catalog feature for the Cloudera Machine Learning (CML) platform. For many users (with beginner - intermediate machine learning expertise), getting started with ML (and a new platform) can be daunting. While there have been huge strides in democratizing machine learning (e.g., frameworks like tensorflow, pytorch, hugginface, automl, ml platforms and pipelines etc), these users still frequently have questions related to two areas:

  • i) best practices in solving problems with ML (e.g., how do I frame my business problem as an ML problem? what model should I use? how do I train and evaluate the model? etc.)
  • ii.) how to use available platforms (e.g., how do I run a training job? how do I specify a model endpoint? how to spin up a web application to consume this endpoint in CML?).

The AMP feature aims to address these issues for users of CML using an examples approach. AMPs are end to end ML example projects that can be deployed with one click directly from the CML platform. Each example encodes best practices for solving problems (e.g., responsible AI practices) with ML, and they tie closely with the platform abstractions, also encoding best practices on using the CML platform. Learn more about AMPs at this blog post.

I worked on designing the user experience for this feature, implementing the front end (React) and building out several end to end ML examples in the catalog and enabling cross company collaboration/contribution.

Improving Handtrack.js

New handtrack.js demo page.
New handtrack.js demo page.

I built handtrack.js a while ago as an easy to use library for hand detection/tracking entirely in javascript. It has been long overdue for an update. Previous version has limitations I wanted to address (was trained on a limited dataset, detected only a single class, had accuracy issues). A summary of updates:

  • Curated a new dataset of 6000 images (mostly from recordings of myself/friends/fam), with new hand labels (open, closed, pinch, point, and face). I used Azure ML studio to quickly label the dataset (the AI Assisted data labeling feature is great!).
  • Trained a set of models with improved accuracy and extended the library to support for multiple model sizes (small medium large).
  • Built out a web application to demonstrate the entire project. I quite enjoyed working on this and learning to really apply tailwindcss.

I am thankfulf or all the people who have used Handtrack.js in their projects (84k monthly hits on JSDeliver).

SignVer - A library for Signatuve Verification

Tasks that comprise the automatic signature verification pipeline and related machine learning problems.
Tasks that comprise the automatic signature verification pipeline and related machine learning problems.
Example results using Signver in signature cleaning.
Example results using Signver in signature cleaning.

Andrew Reed and I ran some experiments on offline signature verification. We wrote about some of what we learned here: , and wrapped some of our findings into a python library - SignVer, available on Github .

There is still quite a bit to be done.

Career Update

As the saying goes, all good things must come to an end! I have been incredibly fortunate to work with many wonderful people at Cloudera over the last 3 years. It has been an incredible learning experience to work with such a passionate group of individuals at Cloudera Fast Forward labs!

In October, I started a new chapter at Microsoft Research (research software engineer working with the Human AI Experience group). I am excited about this role, as it brings me back to my research roots (PhD work in user behavior, HCI) and benefits from my recent work at the intersection of HCI and applied machine learning. I look forward to learning and contributing to the incredible list of responsible AI efforts at Microsoft.

Talks and Community

I participated in a few talks and community events.

I also did a few 1:1 mentoring sessions.

Personal - Exploring Balance

One thing I realized at the start of the year was the need to be more deliberate in finding ways to "recharge" or switch off. This is something I haven't typically done. The number of weekends I spent on work (official and side projects) went down, and weekends where I focused on family went up. Overall, I feel really good about this update and hope to keep exploring ways to navigate this balance even better.

I also started learning to draw with Sketchbook and hoped to complete 1-2 drawings each month. I didn't get very far, but managed 4 drawings using tutorials. Judge for yourself 😊.

Drawing 4/4. Illustration of a landscape using sketchbook.
Drawing 4/4. Illustration of a landscape using sketchbook.

I also did spend quite a bit more outdoor activities with my little boy.

What's that in the sky papa?
What's that in the sky papa?

What Didn't Get Done this Year?

Just as some things worked out, some didnt:

  • End to End ML Examples: I'd hoped to curate a set of at least 3 end to end examples for Machine Learning projects and iteratively improve them both as a personal learning project and to contribute learning resources for the community. So far, I only got to start out with one.
  • Writing: I had hoped to write monthly blogposts (12 posts total), 12 associated newsletter issues and perhaps publish a research paper or two. This year I managed about ~8 posts and 4 newsletter issues. Zero published papers 😅.

Naturally, these things will make for good future 2022 work 😊.

I wrote (less) 'code' this year. P.S. LOC is not a 'good' metric for productivity.
I wrote (less) 'code' this year. P.S. LOC is not a 'good' metric for productivity.

Cheers to a Better New Year Ahead!

Similar to last year, there are no grand set of goals or aspirations for 2022. Hopefully, I get to do a bit more in 2022; more research (1-2 papers?), more writing (monthly posts?) more community work (~6 talks?), learn a new framework/tool (e.g., Unity3D), explore hobbies (exercise, drawing, photography?) and maintain a healthy work/life balance. At least, I'll try.

Cheers everyone, you made it to the end of the year. You did great, you are awesome, you are appreciated, you rock! Happy New Year!

P.S. If you have written a year in review, please share with me; I have enjoyed reading the reflections of others (loved Eugene Yan's reflection) as they navigate work and life.

Interested in more articles like this? Subscribe to get a monthly roundup of new posts and other interesting ideas at the intersection of Applied AI and HCI.

RELATED POSTS | personal, reflections, year-in-review

Read the Newsletter.

I write a monthly newsletter on Applied AI and HCI. Subscribe to get notified on new posts.

Feel free to reach out! Twitter, GitHub, LinkedIn

.