Blog
My rantings, ravings and things I’m working on.
My rantings, ravings and things I’m working on.
I’ve enjoyed many smiles, triumphs and lessons learned as an ML Engineer at Uber. Today is my last day at Uber, and I’ll start a new role at Stripe on Monday. With this in mind, I’d like to reflect on my time at Uber, and capture some “notes to self”.
In particular, I thought it’d be handy to focus on 3 questions:
What to keep?
What did I learn?
Any advice for my past self?
Read More
There’s no feeling quite like the first 100m, 1 mile, or 3 miles of a marathon. There’s an electricity to a group of strangers who have trained months for this day, woken up absurdly early, and are now corralled for a life defining event - joining the 1% of people who have completed a marathon.
I was fortunate enough to run the SF marathon in 2023. It was a fun and grueling 26 miles. In the roughly 5 months I spent working on distance running, I learned 3 things:
Anyone in decent health can go from moderate cardio to running a marathon in 18 weeks (if they’re stubborn enough)
There’s a lot of great guides out there. Almost too many..
It’s an incredibly fulfilling experience
There are lots of reasons to run a marathon; I did it as a way to re-discover the city I grew up in, and carve out some time to work through everything on my mind. Whether you’re doing it to cross off a bucket list item, celebrate a milestone or another reason, running a marathon is a unique chance to test your mettle and create space to improve yourself.
Through my process of training, I picked up a handful of tips and tricks that I really wish I’d known from the start:
Read More
tl;dr: My experience preparing for interviewing for, and accepting an ML job, along with some tips and tricks.
A few months back, I found myself in a tough place. I'd been teaching data machine learning for about a year, and really enjoyed helping other sgrow their machine learning skill set. However, I sorely missed building, and building data products in particular.
It was with this mindset that I decided to dust-off my interviewing skills, and see what the world had to offer.
Read More
tl;dr: Scrum is an approach (interface) to allow developers to quickly and efficiently build useful products. By following a few roles and meetings, your team can build more quickly and efficiently, without tripping over common project management shortcomings
Scrum is a common project management paradigm that allows software engineers to efficiently build software. Similar to building and using a CI/CD framework or micro-service framework, it allows software engineers to invest a bit more upfront, and reduce friction and reduce overall work.
Read More
tl;dr: A checklist of terms and concepts that commonly come up on DS interviews, and a jumping off point for studying
Interviews suck. Interviews are an inefficient and biased way to determine evaluate an person's skills and qualities, and data science interviews in particular tend test for wrote memorization. Fortunately, interviews tend to cover a relatively small and standardized set of concepts, which makes it easy to brush up, and bring your A-game.
Read More
tl;dr: keras-pandas allows users to rapidly build and iterate on deep learning models
Deep Deep Learning is transforming corporate America, and is still an area of active research. While deep learning used to be solely the realm of specialized experts using highly specialized code, the barrier to entry is rapidly falling. It's now possible for traditional data scientists to wring value out of Deep Learning, and Deep Learning experts to have a larger impact by creating code assembly lines (pun intended).
With this in mind, over the past few years I have written keras-pandas, which allows users to rapidly build and iterate on deep learning models.
Read More
These approaches are built on best in class approaches from practitioners, kaggle grand masters, papers, blog posts, and coffee chats
tl;dr: Sane defaults for deep learning loss functions and optimizers, followed by in-depth descriptions.
Deep Learning is a radical paradigm shift for most Data Scientists, and a still an area of active research. Particularly troubling is the high barrier to entry for new users, usually centered on understanding and choosing loss functions and optimizers. Let's dive in, and look at industry-default losses and optimizers, and get an in-depth look at our options.
Read More
Or: Notes to myself to make publishing a package easier next time
tl;dr: Notes and workflow for efficiently writing and publishing a python package
Publishing a Python package is a surprisingly rough process, which requires tying together many different solutions with brittle interchanges. While the content of Python packages can vary wildly, I'd like to focus on the workflow for getting packages out into the world.
Read More
tl;dr: Cheat sheet for linear regression metrics, and common approaches to improving metrics
I'll cut to the chase; linear regression is very well studied, and there are many, many metrics and model statistics to keep track of. Frustratingly, I've never found a convenient reference sheet for these metrics. So, I wrote a cheat sheet, and have iterated on it with considerable community input, as part of my role teaching data science to companies and individuals at Metis.
Read More
Deep Learning is a powerful toolset, but it also involves a steep learning curve and a radical paradigm shift.
For those new to Deep Learning, there are many levers to learn and different approaches to try out. Even more frustratingly, designing deep learning architectures can be equal parts art and science, without some of the rigorous backing found in longer studied, linear models.
In this article, we’ll work through some of the basic principles of deep learning, by discussing the fundamental building blocks in this exciting field. Take a look at some of the primary ingredients of getting started below, and don’t forget to bookmark this page as your Deep Learning cheat sheet!
Read More
tl;dr: Teaching Data Science is a humbling, impactful opportunity. I've helped a group of individuals leap forward in their career, and they've helped me leap forward in mine.
Four months ago, I joined Metis, a group that teaches data science to individuals and companies.
After a career of building startups, leading machine learning teams at a Fortune 100, and contributing to open source projects, I thought this role would be a cake walk. It wasn't.
Read More
tl;dr: Surfacing toxic Wikipedia comments, by training an NLP deep learning model utilizing multi-task learning and evaluating a variety of deep learning architectures.
The internet is a bright place, made dark by internet trolls. To help with this issue, a recent Kaggle competition has provided a large number of internet comments, labelled with whether or not they're toxic. The ultimate goal of this competition is to build a model that can detect (and possibly sensor) these toxic comments.
Read More
Comparing Character Level Deep Learning Models
tl;dr: I trained a model to determine if Reddit posts contain Star Wars spoilers. Simpler models outperformed more complex models, producing surprisingly good results.
I'll be honest. I've seen Episode VIII, and I don't really care about spoilers.
However, I thought it would be interesting to train a model to determine if a post to the r/StarWars subreddit contained spoilers or not. More specifically, I was interested in comparing a few different model architectures (character embeddings, LSTM, CNN) and hyper-parameters (number of units, embedding size, many others) on a real world data set, with a challenging response variable. As with so many other things in my life, Star Wars was the answer.
Read More
Teaching AI to have shower thoughts, trained with Reddit's r/Showerthoughts
tl;dr: I tried to train a Deep Learning character model to have shower thoughts, using Reddit data. Instead it learned pithiness, curse words and clickbait-ing.
Read More