Brendan Herger
 

 Blog

My rantings, ravings and things I’m working on.


 

Lessoned Learned As An Engineer At Uber

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

 

 
startup.jpg

tl;dr: My experience preparing for interviewing for, and accepting an ML job, along with some tips and tricks.

"Idle hands are the devil's playthings"

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

 

 
meeting.jpg

Project Management, an engineer's guide

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

Intro

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

 

 
 
whiteboard.jpg

Rocking Data Science Interviews

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

 

 

Democratizing Deep Learning, with keras-pandas

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

 

 
 
defaults.jpg

Cheat sheet: Deep learning losses & optimizers

tl;dr: Sane defaults for deep learning loss functions and optimizers, followed by in-depth descriptions.

Intro

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

 

 

Cheat sheet: Publishing a Python Package

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

Why?

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

 
readthedocs.png
 

 
 

One of the many reasons we care about model evaluation. Image courtesy the fantastic XKCD

Cheat Sheet: Linear Regression Model Evaluation

tl;dr: Cheat sheet for linear regression metrics, and common approaches to improving metrics

Intro

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

 

 

Cheat sheet: Keras & Deep Learning layers

Part 0: Intro

WHY

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

 
... designing deep learning architectures can be equal parts art and science...
 

 

Learning, by Teaching

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.

Intro

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

 
... As this time has helped them take ten steps forward into their career, it’s also helped me take ten steps forward in mine.
 

 

Detecting toxic comments with multi-task Deep Learning

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.

Background

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

 

 

Automated Movie Spoiler Tagging

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.

Intro

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


 
 

 
 
Given the seed smart phones are today s version of the, the algorithm completed the phrase with friend to the millions.

Given the seed smart phones are today s version of the, the algorithm completed the phrase with friend to the millions.

Deep (Shower) Thoughts

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