Various thoughts about leadership, software engineering, data science, and building tools to help people with data.

There is no such thing as a flaky test

“Is that failure a flaky test? — We can ignore that failure, it’s a flake — Let me rerun these; that’s a flake.” everywhere that I’ve worked; every team I’ve worked with; I’ve heard these or similar.1 When I was earlier in my career this felt reassuring and calming. The test failed, but it’s ok! It sometimes just does that, click re-run and move on. Simple! But it also left me unsatisfied: I couldn’t ever stop that nagging voice in my head from asking “but why? ...

You are wrong + you ought be sorry about it


How acknowledging when you're wrong is the secret weapon to building better teams

Nobody is infallible: we all find ourselves in circumstances where we are wrong about something. This can take a number of forms: plain wrong on the facts; misunderstanding the context of a situation and proposing something that is not fit for purpose; the world changes out from under you, and what was once right is no longer. Of course everyone tries to minimize being in this situation — but what you do when you find yourself there says a lot about you as a leader and can have a huge impact on the team that you’re leading. ...

4 tricks to be a more efficient data scientist

Since transitioning from an academic background to doing data science in industry to leading teams of data scientists, I’ve learned all manner of exciting things. I’ve also had many ☕️ chats (recently more virtual than in person)1 with people who want to get into data science who ask me what skills they need to join the field. There’s no dearth of pages, blog posts, etc. about all the skills that some people think are needed for a successful interview or career in data science. ...

Introducing {dittodb}

Today {dittodb} was released on CRAN. It is designed to make testing database connections easy, reliable, and even fun. There are already a number of packages that facilitate HTTP-based external services (eg {httptest}, {webmockr}), but there haven’t been good solutions for testing against databases. {dittodb} is designed to solve that: It works by recording (and editing if needed) database interactions as fixtures and then uses those fixtures for automated testing. ...