
The Calm Company (our next book)
It’s about time for something new. What follows is the introduction to our next book The Calm Company. We’re working on it now, and will be shopping to publishers soon for publication later this year…

Behind the scenes: How we built Review Apps
GitLab's Head of Product shares an inside look at iterating on one of our latest features

Common Rails Idioms that Kill Database Performance
Many of the most common ActiveRecord idioms produce SQL which doesn't scale well as your dataset gets larger. In this article I discuss three of the worst offenders and offer work-arounds.

How To Spy on Your Ruby Methods
Ruby has a built-in tracing system which you can access using the TracePoint class. Some of the things you can trace are method calls, new threads & exceptions. Why would you want to use this? Well, it could be useful if you want to trace the execution of a certain method. You will be able […]

Safe monkeypatching

On upcoming immutable string literals in Ruby
Today I checked one of the solutions made by our Junior Rails Developer class student. As part of the course they make Rails apps but also learn from smaller code examples delivered by exercism.io. I found there an opportunity for him to learn more about a few things...

Everyday Git: Search the git log from the command line
Your project's git log can tell you stories, but you have to know how to look for them. Here's how I explore a code base's history, using built-in command line tools.

The books I read in 2016
At Basecamp, we have a monthly automatic check-in called What are you reading? It’s a great way to discover new books by recommendation of what your colleagues are reading, but it’s also a great way…

Event sourced domain objects in less than 150 LOC
Some say: "Event sourcing is hard". Some say: "You need a framework to use Event Sourcing". Some say: ... Meh. You aren't gonna need it.

How a Discovery Sprint Can Help You Launch a Better Product
Over many years of experience and numerous projects delivered to our clients, we have learned that a good product idea and execution aren’t enough in today’s world. To succeed, you’ll need to answer critical business questions through research, design, prototyping and testing – all this with a user-centered approach in mind. So we introduced Product Discovery Sprints, a series of workshops based on Google Design Sprints. Read more and learn how a product discovery sprint can help you launch a better product.