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.

Postspage 3


Extensible, Single-Line Fizzbuzz in a Tweet

Yep, it's a fizzbuzz blog post! I can hardly believe I've gone this long without ever doing one.

I was thinking about hiring and what I would do if someone asked me fizzbuzz, and I think I would have used it as an opportunity to show off some engineering practices …


Rapidly Saving .jpgs in Photoshop

Cliffs notes: Now, whenever I hit F2 in Photoshop, I get a high quality jpg of my file saved to the same directory. No more "File->Save As" nonsense every time I want a static version of the image.

What/how/why: I was working on some product mock-ups this …


Engineering Practices in Data Science

Josh Wills wrote this excellent, pithy definition of a data scientist:

Data Scientists (n.): Person who is better at statistics than any software engineer and better at software engineering than any statistician.

It's certainly true that software engineering and data science are two different disciplines, and for good reason - they …


Getting Started With Python for Data Science

As the product manager at Kaggle I'm fortunate enough to hang around with some of the world's top machine learning experts. And working at a place that specializes in running predictive modelling competitions means that I inevitably got the itch to learn some of this stuff myself.

I don't have …


Tale of the Tape (The Indentation Apocalypse)

BRUCE "Emacs" BUFFER:: Now entering the Kill Ring in the blue trunks, with a reach of approximately three-quarters of an inch, hailing from the 9th spot in the ASCII table, it's TAAAABBBBBB!

BRUCE "Emacs" BUFFER: In the opposite corner, wearing white, you know him well, don't-call-him-32-he-prefers-hexidecimal-number-20...it's SPAAACCEEEEEE!



Four Fun Facts From Big Data
  1. The credit card industry's term of art for false positives in fraud detection is "insult rate". If you've ever swiped your card at a shop and had it declined, you understand why.

  2. A large auto insurance company has discovered that if a household owns two identical cars (same make, same …


A Very Painful Bug

I'll lead off this post by listing all of the various things I thought might have caused this bug, and related phrases that I Googled in the hopes that it will lead some poor soul chasing the same issue to this post, thus shaving 2-3 points off that person's long-term …


Juggernaut in Windows

Note: This is an old post, and no longer relevant as Juggernaut is no longer a thing. Just use socket.io directly.

I've fallen in love with Juggernaut.

Juggernaut gives you a realtime connection between your servers and client browsers. You can literally push data to clients using your web …


Communicating Performance Thresholds

I think visually, so here's a way I like to communicate performance thresholds. There are a bunch of dimensions that might make an application behave differently. Test against those dimensions and plot the thresholds of each one. Here are some that I made up, for a theoretical application.


The goal …


Building Software and Building Bridges

We have a problem. People can't get from one area of town to a neighboring area because there is a river in between and no road. So let's build a bridge.

Step 1: Requirements

We'll get detailed requirements from civil engineers and government officials, including environmental constraints, safety guidelines, traffic …


No Bugs != Quality

A low bug count is not a good indicator of quality software. Lack of typos and grammatical errors is not indicative of a quality book.

If your software has nagging "quality problems", driving the open bug count to zero probably won't be much help (not least because it only addresses …


Localization (or: Localisation) Tip

I just learned something from our documentation team: Try to avoid using gerunds in UI text because they are difficult to localize & translate. While they certainly aren't a challenge for great translators, I'm told they can be misinterpreted by mediocre translators - like the ones that outsourced translating services might use …


How to Improve Chrome Web App Adoption

There was big news in the browser world this month, as Google's Chrome browser eclipsed Firefox's market share, making is the #2 most popular browser in the world. Google's goals with regard to Chrome have always been clear. As Peter Kasting, a founding member of the Chrome team at Google …


DOET Shower

I stayed at a friend's apartment a few weeks ago. It is difficult to describe the decor, but if my grandmother and Master P were forced to collaboratively design an apartment, his place is what you might get.



Walls covered in paint made from melted silver, gold dragon faucet heads …