I'm Chris Clark, the CTO and co-founder of Grove Collaborative. Over the years I've written a number of articles about software, technology, and teams.

Posts

 

04/09/2022
Guidepost - Business Value

We write code to deliver business value. We should therefore select solutions where most of the investment is going into the differentiated bits that drive business value.

This means we want to write more code that is only relevant to Grove (because it uniquely solves our business problems) and less …

 

04/09/2022
Guidepost - Getting to Production

We’ve always prioritized getting to production frequently. Lots of goodness flows from shipping early and often. The problems associated with shipping too frequently are so much easier to fix than the problems of shipping too infrequently.

When releases are infrequent, there is a natural tendency to “shrink to fit …

 

04/09/2022
Guidepost - How Long Should Software Last?

At each stage of the business, there is a correspondingly appropriate length of time you should plan for your code to last - the horizon of the software’s utility. In the very early stages of a start-up, code may only need to last a few days. “We’ll try it …

 

04/09/2022
Guidepost - Scaling Principles

Distributed systems are hard. We should exhaust many options before the solution is “do something distributed”. This is also why we are fine creating services, but are not advocates of “micro services”.

Similarly, in most cases we should exhaust vertical scaling before moving to horizontal. It’s almost always less …

 

04/09/2022
Guidepost - Services & Monoliths

Monoliths are not inherently problematic. Perhaps they are even good! Close coupling is the evil to avoid. With good design, monoliths can avoid tight coupling. Services can also be a valuable tool for achieving this. But the purpose of decreasing coupling is to decrease overall complexity. Therefore a service that …

 

04/09/2022
Guidepost - Technology & Language Selection

There is value in consistency, and fungibility (e.g. the extent to which a developer can work on multiple projects). There’s value in better bus factors.

Therefore, there is a high bar for selecting a new technology that the team doesn’t know.

At some level, programming languages are …

 

04/09/2022
Guidepost - Testing

The primary value of great tests is that it allows developers (especially those who didn’t write the original code!) to refactor. With tests at your back, you can refactor with confidence. Without the ability to refactor, our velocity will slowly decrease to zero.

We love automated testing. If you …

 

07/23/2021
Adventures in Candy Land

I play Candy Land occasionally with my two boys (the six year old gets it much more than the three year old). It has the strange property of involving both zero skill and zero agency. There are absolutely no decisions for the player to make at any point; the outcome …

 

06/28/2021
Explorations in The Card Game SET®

SET is a classic pattern-matching card game that's been around since the 1970s, but really took off in the 90s. It hits all the right marks for a great game casual game; easy to learn, works for any number of players, you can play for 5 minutes or for hours …

 

02/04/2017
A Simple Trending Products Recommendation Engine in Python

Our product recommendations were boring. I knew that because our customers told us. When surveyed, the #1 thing they wanted from us was better product discovery. And looking at the analytics data, I could see customers clicking through page after page of recommendations, looking for something new to buy. We …

 

11/20/2016
How to Buy Expensive Software Part 1: Vendors & Demos

Some days it seems like all I'm good for is buying other companies' software.

It's a little ridiculous. I get 5-10 emails a day pitching some SaaS solution. You probably get them too. Recognize any of these subject lines?

  • Christopher, do you have 15 minutes to connect about my previous …

 

11/19/2016
Photography & Journalism with Darcy Padilla & Julian Cox - Opening Remarks

On November 17th, I chaired an event at the de Young Museum related to the opening of the exhibit Danny Lyon: Message to the Future. It's there through April 30th, 2017 and I encourage anyone in San Francisco during its run to see it. Danny Lyon is a remarkable photographer …

 

08/12/2016
Actually Understanding Timezones in PostgreSQL

Timezones are the worst. We should all just live in UTC, reasonable sunset hours be damned. And learning about timezone implementation details is incredibly boring and esoteric1, so most developers are not inclined to figure out what the hell is actually going on until they really need to. Like …

 

07/30/2016
Eight Surprises During My First Year as a Father

I have a 13-month-old son named Dashiell (pronounced Dash-uhl, and I'm sorry in advance to schoolage Dashiell, whose teachers will all say "Dah-sheel?" on his first day). He's awesome. I mean...I'm not super objective, but even so, he's definitely a good dude. We're going to keep him.

Most of …

 

07/12/2016
Zero Downtime Rebrand

Noah Smith and I gave this presentation at the San Francisco Django meetup in March of 2016, shortly after we rebranded ePantry to Grove Collaborative. Here's how we pulled it off.

first-screen Welcome folks!

first-screen That's us

first-screen We rebranded on March 8, 2016. Grove is an aspiration brand that speaks to our …