The Sweet Spot
On software development, engineering leadership, machine learning and all things shiny.
What's the fuss about formal specifications? (Part 2)

In which we debug a production bug (loosely based on a real bug at Lyft) and check its fix in the TLA+ model checker!

What's the fuss about formal specifications? (Part 1)

What Math ✨ can bring to your daily toolbox of programming tools to write robust, concurrent programs: a light introduction to TLA+.

Consider consulting

What career move will give you maximal exposure to technologies, industries, and orgs? Why you should consider a stint in consulting as part of your career path.

Quarter Life Crisis

At 23 years old I decided to quit my first full time tech job and take a year off to figure out my life. Was it worth it?

Let's talk about the FAANG interview

If you've ever cruised Hacker News or Blind, you'll know there's an intense obsession with passing the interview loop at big tech companies like FAANG. This is a post for early-career engineers and those looking to break into the field. As someone who's failed SO MANY of these loops, I'm here to tell you to relax.

I believe in you

Struggling with the responsibilities of being a new manager, I received encouragement from an unlikely person. This next post is a short one. It's about the power of encouragement at the right time and place.

Overproduction and its discontents

I'm committing myself to an article a week on this blog while on paternity leave in early 2022. Today's topic is on how I'm recovering and reorienting myself after a disorienting 2021.

Expand Your Scope (Without Losing Your Soul) - A Staff Engineer's Guide to Career Development

So you've set your sights on a staff-plus title, or you're looking to grow in your role. How do you proceed?

What linguistics can teach us about building software with distributed teams

What can semiotics reveal about the hidden cultural frictions in distributed software development?

How now, sacred cow?

Sometimes, our most dearly-held beliefs and practices are the very things that keep us from succeeding in new leadership roles.

The Product Owner Engineer - The Four Product Hats

Cool, we've got swarms of empowered ICs working on their newly ideated projects. How do you keep the team holistically moving toward the right goals, without having the superpowers of a PM on hand? You improvise and hand out some hats.

The Product Owner Engineer - Engineers as Project Drivers

When individual empowerment is your radical idea, then you commit fully to it with the Engineer as Project Driver. All engineers, no matter their experience, are given the responsibility to take a project from start to finish and own the outcomes.

The Product Owner Engineer - The Idea Backlog

How do you teach engineers to think like PMs? You give them the awesome and scary responsibility of choosing their work. Our team learned how to think and prioritize strategically by collectively building an Idea Backlog where we dream up and prioritize impactful projects to tackle. Here's how it works.

The Product Owner Engineer: What if there were no PMs?

Can a team with a recently-departed product manager learn to survive on its own? How we built a bottom-up product development culture on my team at Lyft.

High Output Management for (Non-managing) Tech Leads

If you've worked in tech long enough, you'll hear praise for Andy Grove's High Output Management, oft-praised as a touchstone of technology management (Grove is often referred to as the "Father of the OKR"). A year or so ago, I got to read his book through Harrison Metal's General Management course. What can you apply from the book when you're a tech lead, and not actually a manager?

Integrating Personas in User-Centered ML Model Development

For all the toil that went into developing the pipeline and deep learning model for my ML baby monitor project, I discovered that my model didn't actually solve the problem at hand. This kind of gap exists in the real world of ML development as well, and there's a critical insight from the field of User-Centered Design that could be the key to bridging it.

TensorFlow for Tears (Or: Can Neural Networks Make Me a Better Parent?) - Part 3

Over a year ago, I wrote a couple of blog posts about how I trained a TensorFlow model on audio clips of my crying baby so I could get some insights into his sleep patterns and behavior. I distilled this experience into a PyGotham talk titled "Can Neural Networks Make Me a Better Parent?" and it reflects some extra maturity in my machine learning knowledge, as well as some hard-won parenting wisdom and experience.

My Biggest Three Mistakes as a Manager

It's been several years since I've come off of my former role as an engineering manager, and with enough humble introspection I've had several insights into the mistakes I've made, and how I'm integrating those learnings into my teams nowadays.

I choose XP

A discussion about why I enjoy working in the XP-school of Agile. (tl;dr: I enjoy working in a pull-based work stream. I like that pair programming, TDD and other best-practice batteries are all included.)

Tensorflow for Tears: Part 2

In which we train an TensorFlow model with the tears of my little one, then deploy it on a Raspberry Pi.