About the Author
Avatar photo

Rachel Walker

Rachel has worked in software for 9+ years as a developer and a team lead. Her work has primarily been Java-based, but she has also worked with a variety of web frameworks. She has a background in migrating legacy monolithic applications to web frameworks and microservices. When she isn't writing code, she is likely working in her vegetable garden with her dogs or losing sleep thinking about the social construction of time measurements.

How to Prevent Retry Storms with Responsible Client-Side Retry Policies

Rachel Walker Architecture, Articles, DevOps, Industry Relevance Leave a Comment

A retry storm occurs when large numbers of client applications retry failed requests simultaneously, spawning additional traffic that overwhelms already unstable systems.

While much of outage prevention rightly focuses on backend systemsโ€”load balancers, API gateways, circuit breakers, and queuesโ€”client-side retry policies play a critical but often overlooked role in system resiliency. Preventing retry storms requires treating client-side retry behavior as a core part of system resiliency.

In this article, weโ€™ll explore how retry storms form, how client applications unintentionally amplify traffic, and what development teams can do to implement safer, smarter retry behavior.

Zod + React Hook Form + TypeScript

One Source of Truth: Deriving Required Fields from Zod

Rachel Walker Articles, JavaScript, React, TypeScript 2 Comments

TL;DR: Struggling to keep form validation and UI in sync in your React app? Hereโ€™s how I used Zod and React Hook Form together to define a single source of truthโ€”driving both runtime validation and required field indicators in the UI. The Problem: When Validation Drifts from UI Iโ€™ve been writing forms for as long as Iโ€™ve been writing codeโ€”and …

Handling Time in Software Development

Recording & Communicating Time in Software

Rachel Walker Articles, Programming 2 Comments

When I first started writing software to handle time, I went into it with a naive perspective that it couldnโ€™t be that hard. After all, itโ€™s just time, and Iโ€™ve understood how that worked since elementary school! It took my first daylight savings time transition to disabuse me of that notion. I began daydreaming that one day all systems would fully run on UTC and people would adapt to that as a standard.

No more writing code to handle time zones in different regions. No urgent time zone library updates to account for new government legislation around daylight savings time. Being able to add and subtract time without having to account for crossing time zones…

It sounded great to me at the time, and sometimes when Iโ€™m neck-deep in tricky code, I feel that way still. In calmer moments though, Iโ€™ve learned thatโ€™s not a philosophy that serves me. When I talk to people about my birthday, a holiday, or give vague time measurements like โ€œtwice a dayโ€ or โ€œfirst thing tomorrow,โ€ Iโ€™m not speaking to them about timestamps. Iโ€™m conveying an idea that just happens to involve time. Time isnโ€™t just a number; it is communication that is tied to our days and nights and the lived human experience.

A good software product handles, records, and displays time accurately. A great piece of software captures, stores, and displays time and date information in a format that conveys the full idea to the intended recipients. Good software works; great software communicates.

Unlock the Power of Collapsible Text in Flutter

Flutter Essentials: Strategies for Collapsible Text in Flutter

Rachel Walker Articles, Development Technologies & Tools, Flutter, Mobile, Tutorial 1 Comment

As a mobile developer, I have had to create a lot of listing pages. The content, styling, and layout may all differ, but structurally, they are the same. When I first started using Flutter, I was immediately impressed by how fast they are to stand up. Nearly out of the box, the ListView and the Card work extremely well and support a wide variety of devices and use cases with no additional styling – all while remaining extensible.

With this in mind, when I needed to create a listing page that displayed variable lengths of pre-generated text that could be expanded and collapsed, I was not particularly concerned about the complexity of the task. However, I very quickly realized that Flutter is less optimized for handling large blocks of text than it is for displaying lists. I quickly encountered unexpected complexities that I had to manually account for. In this post, Iโ€™ll walk through the basic structure and explore which components can be used for solving this problem and creating collapsible text in Flutter.

Automating Flutter Deployments: Configuring CircleCI

Automating Flutter Deployments: Part 3 – Configuring CircleCI

Rachel Walker Articles, Automation, CI/CD, Flutter, Mobile 1 Comment

Recently, Iโ€™ve worked on automating some internal processes for building and releasing Flutter applications. Part of this effort included utilizing Fastlane with a Continuous Integration/Delivery platform to build and deploy the app. This blog post will outline the process I followed to run the build on CircleCI after I had configured Fastlane to build and deploy the application from my local machine.