Problematic Terminology in Open-Source

By on in Database, Development, Open Source

It remains a common practice in database systems today to refer to configurations where one database is a source of truth, and another database is a replica that follows the state of the source of truth database as a “master/slave” configuration.

Use of this term is problematic. It references slavery to convey meaning about the relationship between two entities. The term “slave” is used because one system is controlling the state of the other system.

Using these terms like this is cavalier. It downplays slavery and the massive human suffering it causes. By having an everyday use for the term “slave” we normalize the concept of having things called “slaves” and it desensitizes us to the seriousness of slavery. More importantly, the casual use of the term may be an unwelcome daily presence in the life of a person of color, for whom slavery has great personal significance. Continue reading …


Dyslexia vs Typography

By on in Design

Design has made leaps and bounds to accommodate for all types of visual, auditory, and physical limitations. However, there are some boundaries to what it can accomplish. One example of this boundary where design has not been able to bridge the gap is Dyslexia.

I was diagnosed with Dyslexia and Dysgraphia at the age of eight after three years of struggling through public school curriculum and having teachers say, “You should probably be held back.” It’s an issue that has shaped much of my opinion on design.

Every few months, an article appears in the news about a font that will help people with dyslexia read and “relieve” them of their symptoms; it is frustrating to say the least. What these articles fail to understand is the difference between legibility and accessibility. Let me explain why. Continue reading …


Product Management Resources for Designers

By on in Design, Product Management

Product Managers are awesome! They keep goals in mind and priorities at the forefront –
and when designers get to work with them, it’s a real treat. Clearly, there is a lot of overlap in skill sets, but sometimes you’ll find yourself on a team without a dedicated PM. So if you’re a designer in a position where you need to do a little PM’ing – you’ll want to have these skills.

For a primer on what a Product Manager is and does on an Agile team, check out this great resource. The role is a bit tricky – and as a designer, the work can feel uncomfortable at first because PM deliverables can seem much less concrete than design’s. But, if you can master the secret art of Product Management, you will be a much better designer for it. Continue reading …


Minimum Viable Process

By on in Process, Product Management

If I mention the word “agile” to you, a couple of rituals common to agile methodologies probably come to mind. Daily stand-ups and iteration planning probably top the list, and you probably think of other agile concepts like user stories and estimating their complexity with an arbitrary number of points. Continue reading …


A Proposal: Elixir-Style Modules in JavaScript

By on in Development, Elixir, JavaScript

Moving your code towards a more functional style can have a lot of benefits – it can be easier to reason about, easier to test, more declarative, and more. One thing that sometimes comes out worse in the move to FP, though, is organization. By comparison, Object Oriented Programming classes are a pretty useful unit of organization – methods have to be in the same class as the data they work on, so your code is pushed towards being organized in pretty logical ways.

Continue reading …


Lean Canvas as a Prioritization Tool

By on in Product Management

We <3 Prioritizing

In modern software processes, prioritization is at the core of what we do.

We prioritize because we don’t like waste. Waste:

  • Of human effort, which is disrespectful.
  • Of money.
  • Of time.

If you’re wasting one of them, you’re probably wasting all of them.

Prioritizing is variously simple, complicated, demanding, exhausting, and strangely emotional.

In this series, we introduce some tools and strategies that can help you successfully navigate prioritization on your product, at every level and every phase of product definition and development. Continue reading …


Safely Migrating from Paperclip to Active Storage

By on in Development, Rails

Active Storage was introduced into Rails version 5.2. It is a highly anticipated addition to handle integrations with asset management such as AWS S3. For a long time, the field has been dominated by outside gems, including Paperclip, which has been around longer than many people have been Rails developers. Now that Active Storage has been released, Paperclip is being deprecated, creating even more incentive to migrate if you weren’t already considering it.

I recently performed the migration from Paperclip to Active Storage on production. It felt a bit like transferring trains without stopping at a station. You’re setting up Active Storage, replacing the code, and performing a data migration that relies on the code you’re refactoring out from under you. Continue reading …


Using Strategy as a Prioritization Tool

By on in Product Management

We <3 Prioritizing

In modern software processes, prioritization is at the core of what we do.

We prioritize because we don’t like waste. Waste:

  • Of human effort, which is disrespectful.
  • Of money.
  • Of time.

If you’re wasting one of them, you’re probably wasting all of them.

Prioritizing is variously simple, complicated, demanding, exhausting, and strangely emotional.

In this series, we introduce some tools that can help you successfully navigate prioritization on your product, at every level and every phase of product definition and development. Continue reading …


How to Promote Psychological Safety on Your Team

By on in Culture, Everything Else

Psychological Safety is the shared belief that everyone within an organization can take risks without feeling insecure or embarrassed. Almost as simple as it sounds – it’s the idea that employees feel safe to do their best work.

When an organization prioritizes psychological safety it creates an environment that also promotes inclusivity. It ensures that everyone from different backgrounds, mindsets, and life experiences can share their thoughts or ideas and not be punished for them. Organizations that are struggling to retain employees or attract new and diverse talent should look at their processes for encouraging employees to take calculated risks without punishment. Continue reading …