You’re reading Signal v. Noise, a publication about the web by Basecamp since 1999. Happy .

Dan Kim

About Dan Kim

Basecamp fanatic.

Hitting our stride with Android

Dan Kim
Dan Kim wrote this on 6 comments

Over the past few months, our newly minted Android team (Jamie, Jay, and myself) has been hard at work on some shiny new Android stuff. And while we can’t share it yet (soon, I promise!), we’ve learned a lot about how to rapidly prototype, explore, and most importantly ship these new ideas within Basecamp.

Like any new team, it took us a bit to find our groove. But in the past eight weeks, we’ve really hit our stride. Now we’re moving quickly and making great progress, without causing ourselves a lot of anxiety or creating undue risk.

So I wanted to share a bit about the strategies that have been working for us. I hope these can help other Android (and even non-Android) product teams out there.

Here’s what we do…

We ship internal builds to the Basecamp team every two weeks.

We scope most of our work into two week cycles of design, programming, and testing (excluding QA). Some of the work might be carryover from a previous cycle (like a design exploration), but the programming is from scratch.

Having two week cycles puts us into a shipping mindset that encourages focus and discipline. Issues can’t linger — we have to make quick (smart) decisions. And we have to be ruthless about cutting scope down to what’s shippable.

Of course some ideas will take longer than two weeks to finish. If we decide to tackle those, there is one criteria: they can’t be exploratory, they need to be well-formed, solid ideas. If something is going to spread out over a few builds, then it has to be worth the investment.

We pick a theme for our build cycles.

Very early on we wrote up 5-6 big themes that we wanted to focus builds around. While these themes changed over time, the idea has stuck and has been an invaluable part of our process.

Every internal build now goes out with a theme that gives everyone a 1-2 sentence idea of what they’re going to get. For example, we might theme a build as “Get to things faster on every screen”. These themes achieve two important things:

  1. It broadly sets the Android team’s development goal — the goal we should measure our work against every few days.
  2. It gives everyone else at Basecamp a nice tl;dr of what to expect. When someone picks up our build, they should be nodding their head in agreement with the theme. If not, then we’ve missed the mark and need re-evaluate what we’ve done.

We kickoff right after our last build ships.

Two weeks isn’t much time to plan, design, program, test, and ship. So right after a build goes out, we spend an hour or so going over our open themes, bugs, and considering where we are in the big picture. Then we pick a theme, assign ourselves work, and get cracking.

The discussion itself is very fluid, and is driven by a variety of factors – technical considerations, overall progress, design ideas, and even logistics like vacation schedules. For example, Jamie is going on his month long sabbatical in July. That was a signal to Jay and I that we should spend as much time as we can now on design executions, and leave architecture and plumbing for July.

We balance low-level programming work (not as much fun) and UI work (more fun) as best we can.

We suffered from this imbalance a bit early on. We spent our first couple builds firming up our foundation and working on our testing tools and suite.

This was all good and necessary, but we started to feel a little stuck. Even though it wasn’t true, it felt like we weren’t making great progress because it was harder to see the fruits of our labor. Perception can be reality, sometimes.

So we started balancing our themes better. We started taking more shots at UI work that felt more rewarding, while never ignoring our foundation.

Over the last few builds, we’ve done a better job of balancing these, and it’s really showing in the quality of our work and the happiness of our team.

We involve our QA team early and often.

The QA team comes in right after we ship. The sooner we have quality eyes on major areas, the better off we are, period. Our QA team does a great job identifying not only bugs, but also big picture UI and product considerations that could impact one of our next cycles. These are often things we don’t notice because we’re too close to the work day to day.

We’re rigorous about shipping.

Even though our self-imposed two week deadlines are arbitrary, we respect them. We close our to-dos, write release notes, and bring in QA. If we’re going to ship, we’re going to ship like we mean it.

We keep our progress visible.

This sounds obvious, but we keep our to-do lists updated and we share heartbeats regularly with everyone at the company. This not only helps manage the day to day, but it helps to communicate a clear picture of what we’ve been up to. Everyone feels free to jump in and give us direction, offer new ideas and advice, and even simply say a few words of encouragement!

We recognize there will be cold streaks.

Sometimes we’ll absolutely fly through stuff, and other times it feels like we can barely type. It happens to everyone. We respect our shipping deadlines, but know that everyone hits a cold streak now and again. We encourage each other to keep at it and to ship as best we can.

We plan for the future a little bit at a time instead of all at once.

We don’t excessively plan, but we do spend 30 minutes here there considering our next few cycles. The idea is to not get distracted from shipping our current build, yet recognize the value of organic conversations and ideas to the bigger picture. It’s important not to lose sight of the end goal, and doing this a little bit at a time helps with that.

There is one important footnote to all of these strategies: the biggest factor for success is the makeup of our entire team. Jamie and Jay are great at what they do. And our designers, programmers, support team, writer, and video producer are all great teachers and listeners — we’re lucky to have them backing us all the time.

Put that all together, and we know we can create something great for our customers. Stay tuned!

What our desks look like - 2015 edition

Dan Kim
Dan Kim wrote this on 31 comments

Nearly three years ago, Nick posted about what our desks look like. It was a fun little peek into how people work and what they like to keep close by. But a lot changes in three years, so we thought it’d be fun to revisit our setups.

Since Nick’s post, a bunch of new folks have joined our team from around the world, and some have even brought new people into the world!

Some have moved into new homes or to new locations, and some are always on the go.

One has called an Airstream home for months, while others have been forced to move…err, “relocate due to circumstances” the deepest, darkest corners of their homes (aka, the parents).

These pictures give you just a small glimpse into our team—one built on a wonderful mix of cultures, interests, and personalities. Having such a diverse team is one of the greatest benefits of being a 100% remote company, and it’s a privilege to work with such incredible people.

So, without further ado…

Andrea (Chicago, IL):


Admire someone? Write them an email, you might be surprised.

Dan Kim
Dan Kim wrote this on 11 comments

Last week I attended the Digital PM Summit in Austin (Basecamp was a proud sponsor of the event!). There were a lot of great speakers, but the one I really wanted to see was Mike Monteiro. I’ve admired Mike’s work from afar for many years because it’s so honest and direct.

I watched Mike’s entire talk – What Clients Don’t Know (and Why It’s Your Fault) – and enjoyed it thoroughly. It was so great, I wanted to say thanks—it’s the least I could do for something I liked so much. I looked through the crowd for a while, but was never able to find him.

But I still wanted to say thanks, so I took a shot and sent him an email, fully assuming he wouldn’t read it. I kept it brief – I introduced myself, let him know that I’ve admired his work for many years, and thanked him for a great talk.

Later that morning as we hung around the lobby, Mike walked up to me and said hello. We shook hands, and he mentioned he got my email and said thanks for that. The whole interaction was maybe 30 seconds, and I probably made a fool of myself.

But my foolishness aside, I got to meet someone who I admired. All it took was the simple act of saying thank you in an email.

This isn’t a unique story, either. Before I started working at Basecamp, I would occasionally email Jason – just to say hello and to thank him and the team for Basecamp. Eventually those individual emails turned into conversations. And those conversations ultimately turned into my dream job.

Our friend and current CEO of Highrise, Nate Kontny, has written about a similar story. He’s cold-emailed hundreds of people over the years. And while most have been ignored, some have started some really important conversations (like the one that led him to become the CEO of Highrise!).

So if you admire someone, want to say thank you, or just want to strike up a conversation, don’t be afraid to send a nice email. All the headlines keep declaring that email is dead, but it absolutely isn’t. Let your ideas, genuine gratitude, and personality shine in an email. You might be surprised what it leads to.

The Great M&M Taste-Off

Dan Kim
Dan Kim wrote this on 23 comments

We spend a lot of time in Campfire chatting and debating—it’s our virtual water cooler. Recently one particular debate stuck out that had to get settled…

What’s the best tasting M&M on the market today?

Left to right: Our office frog presiding over the event, Peanut M&Ms, M&Ms, Dark Chocolate Peanut M&Ms, Peanut Butter M&Ms, Reese’s Pieces (for contrast, and because we love E.T.)

After careful consideration, an esteemed panel of six judges voted on their favorite. By the narrowest of margins, Peanut Butter M&Ms claimed the throne. The votes broke down as: (3) Peanut Butter M&Ms, (2) Peanut M&Ms, (1) Dark Chocolate M&Ms.

What do you think—are our judges crazy? What other M&M’s should have been included? How did the Peanut Butter M&M disrupt a decades-old market of traditional M&Ms? ;)

Next up: Twix v. KitKat

Going Rogue With Basecamp

Dan Kim
Dan Kim wrote this on 18 comments

The last company I worked for was huge – roughly 550x the size of Basecamp! Not surprisingly, we had every “enterprise” app in the book. You know, the ones with features that make the procurement department happy, but make actual users miserable.

I’d been a longtime Basecamp user before I got there, so I was keen to get our team using it. I knew from experience that a small team, even in a huge company, could do great work together by using it.

So I started lobbying, pitching, selling, and borderline begging to get a Basecamp subscription. But nobody would listen – it wasn’t on the magical “approved vendor list” (Don’t get me started on what a racket that is!)

Confining myself to the dark ages of enterprise apps didn’t sound like much fun. So as desperation set in, I took a gamble – I signed up for Basecamp anyway. Ask for forgiveness, not permission, right? Within minutes we were setup and no one was the wiser. Until now. ;)

It’d be fair to ask, “why take a risk like that, hacking around the system?” Believe me, it wasn’t because I enjoyed breaking the rules. It was simply this: doing good work was important to me. That meant keeping our team of fifteen people (not a thousand) focused and happy. It meant that the software we used 100 times a day had to be easy, even enjoyable. Procurement-selected software was never going to be that.

That got me wondering. I can’t be the only person who’s gone rogue to use Basecamp, right? I bet there are a bunch of you out there who’ve done the same, bending the rules to use Basecamp when you weren’t really supposed to. And I bet that makes for some great war stories.

So let’s hear them! If you’ve got such a story, shoot me an email at with [ROGUE] in the subject line. Tell us how you’re using Basecamp under the radar, why you’re doing it, and how it’s going. We’ll read them all and share the good ones with everyone – 100% anonymously, and with your permission only of course!

It’s so humbling to hear about our loyal customers going out of their way to use Basecamp. So to all our customers – rogue or otherwise – thanks for trusting us with the things that are important to you. We love how much you love Basecamp, and we’ve got some exciting times ahead of us!

Show us how #WorkCanWait and win a night out on us

Dan Kim
Dan Kim wrote this on 10 comments

A couple of days ago we poked fun at Microsoft’s #GetItDone campaign. Microsoft depicts Office 365 as the perfect tool for working in as many awkward situations as possible – your morning bathroom break, happy hour with friends, or at your kid’s soccer game. It was just too hard to resist.

But why should 37signals have all the fun? We should all be challenging the silly idea of working sunrise to sunset, and have a laugh while we’re at it. So let’s see what you’ve got!

Follow the steps below and create your own versions of #WorkCanWait. The best entry will win a night out at your favorite local restaurant on us.

  • Download the images and write your best headline encouraging people to enjoy life instead of working all the time.

We’ll accept entries through Friday, and announce a winner next week. For inspiration, here are a few entries that have caught our eye so far. Good luck and have fun!

Via @ambersawaya:

Via @darth_lightyear:

Via @turnislefthome:

Via @scotthaneyhello:

Via @willyleeks:

Switching to Windows Phone for 30 days (then switching back to iOS after that)

Dan Kim
Dan Kim wrote this on 6 comments

I admit it – I’m a technology nerd who loves playing with the latest and greatest. But often that’s really all it is – playing. I’ll mess with something for a few hours, make a snap judgement, and move on.

Recently I started to wonder why I’m so quick to judge products. They all have nuances and subtleties. They all have real, dedicated, smart people behind them. There’s no way I can truly understand all of that in three hours.

On top of that, it’s kind of a waste of time. Spending a couple hours here and there without learning anything meaningful (or finding a great product) is a bummer.

So I’m trying something new. I’m going to experiment with fewer products for longer stretches of time. When I pick up some new tech, I’m going to live with it, all-in, for 30 days. I’ll completely switch from an existing product to a new one.

I’ll consider a variety of switch-related questions. Why am I dissatisfied with a current product? What’s exciting or interesting about the new product? How hard or easy was it to switch? And ultimately, was it good enough to keep me?

First up…

Windows Phone vs. iOS

I switched my Verizon service to a Nokia Lumia 928 for 30 days. I took all my calls on it, took pictures of my kids, logged into all my accounts, downloaded a bunch of apps, used Skydrive instead of Dropbox, and put my iPhone on the shelf.

It was eye-opening – Windows Phone is really good and deserves a look from everyone. In many ways it tops iOS with:

  • A dedicated camera button (especially handy if you have kids). Pressing and holding a dedicated button to launch the camera, then half-pressing it to focus the shutter is really great. And the photos themselves looked great too.
  • Great Skydrive integration. Any photos or videos you take are automatically uploaded via wifi as full resolution files. Dropbox on iOS does something similar when your location changes, but Skydrive worked better for me.
  • Apps that work together instead of being sandboxed. Open the music app, and you’ll see your last played songs from Spotify and Pandora. Open the camera app, and a variety of lenses and filters are available to you. Context to what you want to do (listen to music, for example) is given priority over specific apps.

And yet all that said, iOS still won out. Nitpicks and all, iOS has become extraordinarily mature over the last 6 years. It has a huge universe of great apps, incredibly useful services like iMessage and Airplay, and perfect hardware integration. So I didn’t end up switching, but I learned a ton about what Apple could be doing better.

A few others in the hopper…

Picturelife vs. Aperture/iCloud

Picturelife is a secure, online vault for all your photos. It syncs up a bunch of sources (Aperture, iPhoto, Instagram, Facebook, etc.) so you have a wonderfully consolidated view of all your photos that’s always accessible. Ever want to see a picture from 2001? It’s there. I’m about a week into it, and it looks really promising – especially because it’s so easy to find embarrassing old pictures of friends and family!

Twitter’s official client vs. Tweetbot

I’m a loyal Tweetbot user on both Mac and iOS. But the official Twitter clients are interesting – they’re clear, simple, and fast. They’re not as featured-packed as Tweetbot, but maybe that’s a good thing. They display ads, but maybe the new conversation view is worth it. This experiment starts today, so we’ll see.

Misfit Shine vs. Fitbit Zip

To be fair, circumstances forced this switch – I lost my Fitbit! But that’s a valid reason to consider a switch. If I was perfectly satisfied, I could have simply bought another Fitbit. The Misfit Shine started off as Kickstarter project to make a better wireless activity tracker, and it’s elegant and simple. That’s proven to be both good and bad early on. We’ll see how it goes for the next 30 days.

So these are just a few examples, but the idea is the same throughout – for me to really learn the good, bad, and ugly of a product, I have to spend a lot of time with it. Best case, I’ll find a really great product. Worst case, I’ll have learned a lot – and that’s time well spent.

My observations about teaching and learning programming

Dan Kim
Dan Kim wrote this on 6 comments

Over the past 6 months, I’ve had the unique opportunity to observe a wide range of programmers – students, teachers, and world-class experts.

I was curious if there were any patterns and characteristics that made for successful programming teachers and students. My goal was simple: to make myself a better teacher and a better student, so I could help others too.

Here’s what I’ve found so far.

Great programming teachers…

…point students in the right direction, but don’t give out all the answers.

They coach students to be curious and independent – to search for their own answers. They let students stumble and rewrite code a few times. They let students discover valuable patterns, problem solving techniques, and the sheer joy of shipping something that works.

…are encouraging, but never critical.

They give praise when students write great code, and offer suggestions for refactoring clunky code. They give pointers and offer direction, but never criticize a line of thinking.

…promote writing as little code as possible.

They will direct students away from complexities and toward simple, elegant solutions. The fewer lines of code, the better.

…are patient and remember what it’s like to be a beginner.

They remember that everyone was a really bad programmer at some point and needed help (including themselves).

Great programming students…

…learn how to learn.

They don’t just look for answers, but look for patterns and techniques. They search for root causes by breaking down problems. They use Google and Stack Overflow constantly.

…talk less, listen more, and observe.

They realize they can learn a ton by just watching how their teacher solves problems, communicates, and teaches others. They literally watch and learn.

…tend to move more slowly, and are thoughtful in their analysis.

They take the time to think about a problem, craft smart questions and succinctly explain the issues they’re running into. They get better and better at embracing slow time.

…keep their code tidy.

Messy code is often the result of messy thinking. Having neat code makes it easier for others to help them, and as a result, they learn faster and understand more deeply.

…are persistent.

They are absolutely relentless in the belief that they can solve any problem (and usually do). Hours or days can go by with little or no progress, so it’s crucial to have this mindset.

…have a “ship it” attitude.

They set reasonable goals against relatively short time frames. They recognize that momentum is critically important because it provides the feeling of accomplishment and energy to keep pushing forward.

…start coding when all else fails.

There are so many places to get stuck – syntax, concepts, gems, libraries, tools, books, tutorials – the list is endless. They realize the sooner there’s real code, the sooner they’ll have something to react to, adjust, and make better.

And great programmers…

…never stop learning or teaching.

How we - the Kims - use Basecamp at home

Dan Kim
Dan Kim wrote this on 11 comments

For many years, long before I joined 37signals, my wife and I have been using Basecamp to manage our personal lives. Recently I noticed we topped 1,000 discussions. That seems crazy even to me, but it really shows how incredibly useful and versatile it is.

Most people probably think of Basecamp as a tool they use at work to manage their projects. But for my wife and I, daily life is like one big personal project. And with twin boys just over a year old, life is more hectic than ever. Basecamp helps us organize the chaos of our longest-running project.

So how do we use it?

Really, just like any other project would. For example:

  • If there are groceries to buy or errands to run, we add a to-do in Basecamp and assign it. Things get done and checked off.
  • When the boys have a checkup with their doctor, we write up a brief recap so we can always remember what happened and how they’re progressing. Any associated files – bills, notes, height and weight measurements – all go in the same thread.
  • Any important emails like tax bills, a product recall, car repairs, etc. get forwarded into Basecamp. No more searching through thousands of emails to find the few crucial ones.
  • Events, big or small, are tracked in the calendar. This lets us discuss a specific event, and cross link it with other discussions, to-dos, etc.
  • We use text documents to keep track of things that change frequently over time – stuff we have in our attic, gift cards that we haven’t used yet, and even menus we created for parties.

Sure, we’re pretty organized now, but it wasn’t always like that. After a few stressful situations where information got lost, we knew there had to be a better way.

Now we’re never really concerned about forgetting. We don’t panic about trying to remember what happened and when. It’s a little strange to say, but we have a sense of calm because we know where everything is – in Basecamp.

So what’s the real benefit of doing all this?

Put simply, using Basecamp at home means that the mundane parts of daily life are stashed away and don’t need to be discussed in person.

Like many couples, my wife and I both work. We’re together as a family for maybe a few hours a day. We want that time to be spent talking about stuff that really matters – how friends and family are doing, work happenings, and other more interesting, fun stuff.

Spending time at the dinner table discussing all the things we need to do is a waste of time. So we don’t do it. Instead, we focus on each other and our kids, and not the noise of daily life.

Got an interesting use of Basecamp?

So that’s my story. But that’s just one semi-creative use of Basecamp outside of work. And now with Basecamp Personal, I’m hearing about even more great uses, like coordinating a sports team, keeping friends connected, and even managing a rental property.

If you couldn’t tell, I’m a huge Basecamp nerd, so I really love hearing about how people use it in creative ways. If you’ve got an interesting story about how you use Basecamp, drop me a line at and let’s chat.

Hi, I’m Dan.

Dan Kim
Dan Kim wrote this on 22 comments

Hi everyone—my name is Dan Kim, and I’m incredibly honored to introduce myself as the 37th signal! I joined the team on June 3, and I’ll be helping to build a brand new product, Know Your Company.

Ever since I started using Basecamp in 2007, I’ve admired 37signals. Like many of you, I’ve followed their work closely. I’d nod my head in agreement as I read SvN posts, watched videos, or read their books. They’ve consistently valued simplicity over complexity, thinking instead of talking, shipping over planning, and working remotely instead of commuting. It soon became my dream to work at 37signals.

It certainly wasn’t easy trying to make my dream come true. I had applied for positions a couple times before, but my skills didn’t match up well. Even though I have a decade of experience in web development and programming, I was rusty. Over the years I had transformed from a programmer to a manager. I couldn’t build from scratch anymore. I couldn’t ship anything by myself. That scared the living hell out of me, and so I needed to make a change.

And that’s when I discovered The Starter League. It’s a three-month, in-person program that teaches beginners how to design, program, and ship web apps, right here in Chicago.

I’m a recent grad myself, and it’s changed my life. I enjoyed it so much, I stuck around as a teaching assistant to help mentor others. And my work there helped me strike up a conversation with Jason, which led to a couple lunches, sharing some ideas, a successful trial project, and officially being hired.

But like many others, my career has had its ups and downs. I’ve seen the inner-workings of a wide variety of companies. Some were as big as 45,000 and others as small as 2. I’ve seen the good and bad of every possible company culture—startups, agencies, consulting, corporate, you name it. So it’s hard to express how happy I am right now to be surrounded by an amazing culture, learning from some of the best designers and programmers in the world.

And I’m thankful for all of it. Each experience has helped me realize and respect how important a person’s work can be to their happiness. That’s why I’m so excited to work on Know Your Company. We want to help small business owners build and sustain great companies that people love working at. That’s an incredible mission and challenge that I can’t wait to explore.

On a personal note, I live out in Chicago’s Northwest Suburbs, so I’ll spend some of my time in the office hanging out with these awesome folks. The rest of the time I’ll be working remotely at home, where I can annoy my incredibly patient wife Julie, watch our twin boys Andrew and Jonas grow up, and walk our super cool dog Parker.

Finally, and most importantly, I want to send a big, heartfelt “Thank You” to all of my friends, family, and colleagues who have helped me to get here. I couldn’t have done this without you.
All the best,