Charlie Peters
Charlie Peters builds apps, backend systems, and developer tools, and writes about legible interfaces, durable software, and humane engineering.
Latest posts
On Testing
Notes on Agentic Coding
Up in the Air
Cis is Not a Slur
The Result Type
The Result type is a powerful tool for handling errors in a functional and composable way. It's origins are in Rust but it has since been adopted by many other languages, including TypeScript. The wrap and unwrap functions are used to convert between the Result type and other types in your codebase. The wrap function is used to convert a value of type T into a Result object, while the unwrap…
Debouncing Explained
Understanding debouncing
Throttling Explained
Understanding throttling
Crafting Routines
Tesler and Complexity
...
How to Be Productive in a World on Fire
But only if you must.
Reviewing Pull Requests Like a Human
Keeping your PRs friendly AF
Modern TypeScript Packages
A guide to creating packages for ESM and CJS with full type support.
Wait, I Thought I Knew That
I built a trivia app
The Basic Concepts
The most explanation of TypeScript basics
Why Type Safety
The deal with type safety
Twenty Twenty
Well, it's over.
Transitions
Everything is changing again, as it tends to do often.
Call vs Apply
Function.prototype.call() vs Function.prototype.apply()
Typed Reducer
Best practices with useReducer()
Maps & Sets
Not everything belongs in state.
Twenty Nineteen
2019 just walked off stage.
Hooks & TypeScript
React's new Hooks API is a lot of fun
On Reading Books
Reading tends to be the only real constant in my life. From year to year, career to career, season to season, there's always books to read followed by more.
Formik & React Testing Library and Screaming at a Computer for an Hour
Working with Formik and React Testing Library are great until you hit a wall
Self-Care Primer
Take care of yourself
Perfect Cup of Tea
A long journey steeped in adventure
Urgency vs. Importance
Deciding what's more important is difficult when every siren is going off
Technical Interviews, Explained
So you're about to go through an engineering interview
Dark Mode for Actual Users
Dark mode is cool and easier to do with CSS now, but hang on a second.
Weeknotes No. 3
Links and stuff that have been interesting to me.
Weeknotes No. 2
Links and stuff that have been interesting to me.
Weeknotes No. 1
Links and stuff that have been interesting to me.
Going Serverless
Using Hapi.js to migrate to a serverless architecture
Quitting Caffeine
Gonna go out a limb here and say I have had and still have some very modest level of caffeine addiction.
React Hooks and Suspense
Server-side React
Client side applications are great but they are not as awesome as they could be
Exponents
A how-to to growth
Small Updates
I removed the custom fonts and added a dark mode
I Just Can't with CSS Anymore
Okay, CSS. Like seriously. Come on
A Defense of Frameworks
The reality is having working in any framework that enables you to understand the underlying language it is implemented in, teaches you the language and good fundamentals and you gain more experience along the way
Sanitizing JavaScript Objects
Bi Design
Bearing witness to my desire and identifying as queer has led me to a fundamental truth: God is a creator, fully aware of the intricacies of His creation and not at all surprised by my desires
Function as Child
Functionality lives in the Component tree, and when you're declaring those components or searching for your component later, you're documenting your choices more clearly.
Kill Your IDE
Using a terminal versus GUI tools helped me really trim down my needs of what I'm doing with the code I'm working on and look more directly at the task I was doing. I keep finding that I compose with commands more than I'm trying to remember keyboard shortcuts or installing new plugins.'
In the Mouth of the Beast
...the message was to use React; you need a lot of other moving pieces to build an application. Turns out thats not true.
Mocking Data Quickly
Never use Lorem Ipsum
Your Life in Programming Languages
Your life in terms of programming languages
Building a React Component Library
Isolating UI to be the purest instance of that component often requires coordination but worth it in the long run.
Current Tools & Toolchains
We get attached to our tools, more often than not we spend 6+ hours a day in front a glowing rectangle interacting with the tools we choose in exchange of our livelihoods.