Designing Our Way Through Uncertain Times – San Francisco Design Week Recap

By on in Design, Events, San Francisco

We’re in a moment of unprecedented change.

The COVID-19 pandemic has forced many product designers to face a variety of new professional challenges. We’ve paused co-located work. We’re unable to see users and co-workers in person. We’re required to explore new ways of collaboration, all while navigating the ups and downs of today’s economy.

Furthermore, the changes caused by the pandemic aren’t the only powerful force shifting our society right now. The push for reforms around social justice are also reshaping our lives daily. These experiences, combined with a feeling of uncertainty, have created many new questions for designers to examine.

Continue reading …

Pivoting and User Research During a Pandemic

By on in User Research

Creating a consistent feedback loop with users through quantitative and qualitative user research is the foundation of any lean, user-centric product team.

Get your Free Guide to User Research

Help your team understand your users’ behaviors, needs, and motivations.

Download the Guide

We often invest the most in user research when the product roadmap is new and unproven. The early focus is on product-market fit. Early-stage questions to solve include:

  • Do the people we think have this problem actually have this problem?
  • How do they solve it now?
  • Is it painful enough a problem to change the way they are currently doing this?
  • Is this solution the one to solve this problem?
  • Will people pay for this solution? How much?

By the time you’re into the growth phase of a product or company, you have found product-market fit and are now asking questions about optimizing user experiences, creating more value for your users or testing out new solutions to reach more potential market segments.

Continue reading …

It’s Never Been Better to Get Started with Cypress Web Tests

By on in Development, JavaScript

If your project could at all be described as a web application, your UX pipeline would likely benefit from adopting Cypress. Beating out Selenium on speed as well as breadth of testing tools, Cypress provides automated testing of your website’s critical features in a matter of minutes.

A testing framework built on top of many familiar techs — Mocha, JQuery, Chai — Cypress can be a frustrating product because, though it looks familiar, it behaves in unfamiliar ways. But its powerful tooling means mastering this framework is well worth the effort.

Here are the most important things to know as you dive into Cypress.

Continue reading …

How to Deploy Elixir Releases with Ansible

By on in Development, Elixir, Ops

In my last post, I described how to generate a platform-specific Elixir release. Now, the only thing left to do is to put it on the world wide web.

To follow along with this post, you’ll need a few things:

  1. An IP address for a remote machine (preferably running Linux) you want to deploy your application to.
  2. An RSA keypair, with the public key placed on that remote machine. Read more about how to do this here.
  3. Ansible (on your local machine). Read more about Ansible here.

Continue reading …

Reflections in Go, for Cats

By on in Development, golang

Several months ago, I had a story requiring metaprogramming in golang. I wasn’t very familiar with reflections in Go, and the available docs and write-ups aren’t the best for me, since I’m a learn-by-example kind of person. Having come to Go (ha) as a Rubyist, the lack of generics left a little bit of a hole in my heart, but a stiff upper lip, I pressed on and learned about reflections. Since I had to write my own examples anyway, it made sense to clean this up and turn it into a blog.

Continue reading …

Shifting to A Work From Home Policy: A Mini Survival Guide for Your Company

By on in Process

Given the COVID-19 crisis, most companies that can have shifted to temporary work from home policy. While about a quarter of those companies are likely already adept at working remotely — at least to some degree. The rest are completely new to this way of working and it’s not an easy shift. I’d like to share a few tips from our experience working with remote-first companies and across distributed teams.

Continue reading …

Authorization and Authentication in GraphQL

By on in Development


GraphQL is growing in popularity because it allows applications to request only the data they need using a strongly-typed, self-documenting query structure that enables an API to deliver data that can evolve over time.

Unlike traditional REST APIs, GraphQL exposes a single endpoint to query and mutate data. Upon learning this, one of the first questions that comes up for many developers is: “How do I implement authorization and authentication in GraphQL?”

Continue reading …

Recap: Running Remote Product Teams Fireside Chat

By on in Process

Carbon Five has worked with a variety of clients across the globe and within our own five offices that require remote collaboration while maintaining a sense of camaraderie and team cohesion.

With a lot of teams transitioning to remote workforces, we opened up the conversation to share some of our best practices. We would love to hear what you are doing as well. Tweet us at @carbonfive to share any other tips and tools your team finds effective!

Continue reading …

Writing ZSH Themes: A Quickref

By on in Development

Customizing your terminal is a fun way to streamline and personalize your digital workspace. People are more productive when using tools they enjoy and tend to value things they made themselves at a premium, but, as with all technical adventures, it can also be a little tedious to track down all the relevant documentation. This tutorial assumes you’re using zsh as your terminal shell. If you’re not sure what shell you’re using, the following will print the default shell path:

$ echo $SHELL

Continue reading …

What Are These $%^&* Chores Doing in My Backlog!

By on in Process

Beyond Just Features and Bugs

Projects tend to have three types of “tasks” for developers to do: features, bugs, and chores. Features and bugs are mostly self-explanatory. Features deliver direct customer value. Bugs are features that are not working as intended. These two tasks focus on direct connections to the users. Chores provide indirect customer value. Indirect value can be hard to identify as it can come through a variety of paths.

Continue reading …