Mocking isn't evil, but avoid it anyway

Evan Nelson

Mocks vs fakes

Introducing Spirit

Morgan Tocker

This is part 2 of 2. See yesterday’s More Resilient Schema Changes at Scale post for an introduction.

More Resilient Schema Changes at Scale

Morgan Tocker

Because many schema changes in MySQL are blocking, the accepted workaround for many years has been to use an external tool such as pt-online-schema-change or Gh-ost. These tools both work...

From 30 Minutes Down to 10: Taming our Monolith's CI Build Times

Yissachar Radcliffe

How we reduced our monolith's CI build times down to 10 minutes

Poko goes multiplatform

Drew Hamilton

Poko is a Kotlin compiler plugin that generates equals, hashCode, and toString functions for annotated classes based on their properties. Inspired by Jake Wharton’s blog post on maintaining compatibility in...

Okio 3.5 has WASM

Jesse Wilson

Okio 3.5 adds support for WebAssembly (WASM).

Announcing SQLDelight 2.0

Alec Kazakova

After more than a year of development, we’re finally ready to release SQLDelight 2.0. If you’re a current user of SQLDelight you may be surprised to learn not a whole...

A stable, multiplatform Molecule 1.0

Jake Wharton

Molecule is a Compose-based library which we announced two years ago for managing application state. I’m excited to announce that today we are releasing version 1.0, its first stable version!...

Multiplatform image loading: Coil 3.0

Colin White

Building towards Coil 3.0 with a focus on Compose Multiplatform.

Native UI and multiplatform Compose with Redwood

Jake Wharton

Redwood is Cash App’s take on multiplatform mobile client UI with slightly different values.

Paraphrase: Type-Safe String Resource Formatting for Android

Patrick Tyska

Generate type-safe formatters for Android string resources with Paraphrase.

Flow testing with Turbine

Jake Wharton

Say hello to Turbine 1.0, our library for testing kotlinx.coroutines `Flow` and more.

Dynamic Kotlin with Zipline

Jesse Wilson

We want the web platform’s velocity for our other client platforms!

Cash App’s Summer of Kotlin Multiplatform

Jesse Wilson

We're doing a series of blog posts and open source releases.

Kotlin Multiplatform Money Formatter

Patrick Tyska and Terry Yiu

In this blog post, we’ll share how we created a money formatter library using Kotlin Multiplatform to enforce consistency in displaying money to customers across all platforms.

Cash Engineering Onboarding

Mohit Sarvieya Davy Li Brian Lee Isabel Fan and Jason Matthews

In this blog post, we’ll share how we created an onboarding program to help Cash App engineers quickly ramp up and be productive.

Minding your Handlers and Queues

Luis Cortes

Flaky tests are the absolute worst; getting rid of them is my favorite. Jesse Wilson

How We Sped Up Zipline Hot Reload

Yissachar Radcliffe

Zipline is a library Cash App has developed for fetching and executing code on demand in a mobile app. Developers write their code in Kotlin and it gets compiled to...

Announcing Multiplatform Paging

Veyndan Stuart

Multiplatform Paging is a library that packages AndroidX Paging for Kotlin/Multiplatform. It’s built to be a drop-in-replacement for AndroidX Paging, so extracting out shared pagination logic couldn’t be easier.

Formalizing our Engineering Principles

Nif Ward

Since I joined Cash in August 2021, we’ve undergone unprecedented levels of growth. Growth brings growing pains: the effects of missing organizational structure that become relevant at scale. With the...