Field Notes from Carbon Five

A blog to help you navigate the world of product management, development, and design.

Linden Melvin

Linden Melvin

Authorization and Authentication in GraphQL

Introduction 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

Shannon Croy

Shannon Croy

Recap: Running Remote Product Teams Fireside Chat

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

Sarah Port

Sarah Port

Writing ZSH Themes: A Quickref

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

Wil Wade

Wil Wade

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

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

Shannon Croy

Shannon Croy

Human-Centered Learning Loops with IDEO

Carbon Five San Francisco hosts Talk Nights and invites the community to join the conversation on how we can build better products together. This month we were joined by two guest speakers from IDEO, Kaitlyn Irvine, an Interaction Designer, and Nadia Surtees, a Design Researcher. Together, they discussed Human-Centered Learning Loops and some of their

Brandy Davis-Balsamo

Brandy Davis-Balsamo

Working with Guests: Seven Tips for Getting your Company Ready to Leverage External Firepower

Companies have been successfully partnering with consultants since the dawn of time. Think IDEO’s work with Apple to create the mouse or Microsoft’s work with IBM to create MS-DOS. Our nation’s competitive strength comes, in large part, from this openness to collaborate, to learn from each other, to move quicker, and to leverage outside strengths,

Prakash Venkatraman

Prakash Venkatraman

Cross-Platform Elixir Releases with Docker

While releases are meant to be self-contained executables, they still call out to native system libraries to do things like open TCP sockets and write to files. That means that the native libraries referenced at compile time need to be exactly the same as the ones on your target machine. Unless you can guarantee that your workstation and cloud are exactly the same, releases can seem like only half the promise of a stress-free deployment.

Eric Fung

Eric Fung

Migrating From Sprockets to Webpacker

Starting with Rails 6, Webpacker became the default asset compiler, replacing sprockets–better known as the asset pipeline. While the asset pipeline was a big step for its time in making it easy to package JS, CSS, and images, webpack has matured enough to do all of the above and more, due to modern JavaScript’s support

Rit Li

Rit Li

Running Multiple Versions of Postgres with Docker Compose for Local Development

Say we have Project X and Project Y that require Postgres 9 and Postgres 10 respectively. These projects aren’t using Docker to manage their Postgres dependency so it is up to each developer to manage this themselves. How do we get different versions of Postgres running simultaneously on our workstation without making any modifications to

Jon Rogers

Jon Rogers

Why Write Good Pull Requests?

Writing a good, clean pull request description gives us developers a chance to use words (not code) to explain why we are making the change, describe the problem this code is solving, and provide context around why we chose a particular implementation.

What can we help you with?

Tell us a bit about your project, or just shoot us an email.

Interested in a Career at Carbon Five? Check out our job openings.